โ About
Back in 2019, while trying to send notifications for a personal (Arduino MKR WiFi 1010
) IoT project :
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....
๐ 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 :
cli-guidelines / cli-guidelines
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 usingJReleaser
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 :
๐ Resources
- Twilio on RapidAPI
- Twilio Blog
-
#twilio
on DEV.to
๐ SMS APIs
๐ฆ Twitter accounts worth following ๐ฅ
-
Matthew (he/him) :
@MaximumGilliard
-
Ben Firshman :
@bfirsh
-
Carl Tashian :
@tashian
-
Eva Parish :
@evpari
@twilio
@picocli
@jbangdev
@jreleaser
Stay tuned for more ๐.
Top comments (2)