❔ About
Back in 2019, while trying to send notifications for a personal (Arduino MKR WiFi 1010
) IoT project :
Less than a year ago, I started to look forward 3d printing and Arduino, wondering how to create useful things with the little knowledge I had, and also, serverless, I mean only by relying on SaaS services so I can only focus on my part and deploy production ready services. Idea Genesis This year th
linkedin.com
Well... I felt the need to send sms
... and used IFTTT to achieve this... but also discovered Twilio ... and started to follow them on social medias.
😮 The post that teased me
Then... one day.. I discovered that blog post :
Explaining step by step how to build from scratch a Java Client to send sms
based on :
Twilio SMS
API : "API that helps you add robust messaging capabilities to your applications."
SDKMAN!
: "a tool for managing parallel versions of multiple Software Development Kits"
JBang!
: "edit and run self-contained source-only Java programs with unprecedented ease."
picocli
: "a mighty tiny command line interface"
Finally I saw the conclusion :
Even better I saw the following tweet :
I was mesmerized by the simplicity and started to think...
🤔 "One day, we will implement this at the office"
🔭 Start dreaming
Since that day, I neved stopped dreaming about the opportunity to create such a cli
❣️
I mean... like....
Discover & share this Movie Trivia Schmoedown GIF with everyone you know. GIPHY is how you search, share, discover, and create GIFs.
giphy.com
🍀 The opportunity
Then one day the opportunity came : my Team was in charge of creating a new batch that should :
✅ Use our internal sms
API
✅ Send sms
in a batch mode while taking csv
as input
That was it, we had the opportunity to create something clean and cool around the sms
experience :
We would create a nicely, efficient and well designed cli
🤗
🚀 Straight to the MVP
📜 cli
guidelines
First, we wanted to build a userexperience around the cli
to make it also as much user-friendly as possible.
Therefore we started to learn more about cli
design best practices :
Then this site which is an amazing set of dedicated resources:
👉 You can folllow the underlying repo :
A guide to help you write better command-line programs, taking traditional UNIX principles and updating them for the modern day.
Command Line Interface Guidelines
An open-source guide to help you write better command-line programs, taking traditional UNIX principles and updating them for the modern day.
This is the source code for the guide. To read it, go to clig.dev .
Join us on Discord if you want to discuss the guide, or just chat about CLI design.
Contributing
The content of the guide lives in a single Markdown file, content/_index.md .
The website is built using Hugo .
To run Hugo locally to see your changes, run:
$ brew install hugo
$ cd <path>/<to>/cli-guidelines/
$ hugo server
To view the site on an external mobile device, run:
hugo server --bind 0.0.0.0 --baseURL http://$(hostname -f):1313
License
This work is licensed under a
Creative Commons Attribution-ShareAlike 4.0 International License .
✨ Finally... the first sms
Finally, our first MVP was up... from the terminal :
to the mobile phone :
🛤️ Roadmap
Next steps are :
Refactoring for better performances
Reporting features
Implement csv
send mode in batch
cli
packaging using JReleaser
to ease its distribution (Docker
, Homebrew
, Macports
, native,...)
🍿 Demo
Finally we could manage go get a new experience.
Discover below the software in its very early stages :
VIDEO
🔖 Resources
📑 SMS APIs
🐦 Twitter accounts worth following 🥇
Stay tuned for more 😊.