Back in 2019, while trying to send notifications for a personal (Arduino
MKR WiFi 1010) IoT project :
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 :
SMSAPI : "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 :
Matthew (he/him) ❤️@maximumgilliardThat tweet can be run directly by jbang to send you an SMS:
1/ Have a Twilio account (twilio.com/try-twilio)
2/ Export these env vars:
S=<your account Sid>
T=<your auth Token>
To=<your cell number>
Frm=<your twilio phone number>
jbang <URL OF THAT TWEET> twitter.com/MaximumGilliar…20:20 PM - 27 Jul 2020Matthew (he/him) ❤️ @MaximumGilliard//DEPS com.twilio.sdk:twilio:7.54.1 import com.twilio.type.PhoneNumber com.twilio.Twilio.init(System.getenv("S"),System.getenv("T")) https://t.co/H56vowlqYz.api.v2010.account.Message.creator(new PhoneNumber(System.getenv("To")),new PhoneNumber(System.getenv("Frm")),"🐴").create()
I was mesmerized by the simplicity and started to think...
🤔 "One day, we will implement this at the office"
Since that day, I neved stopped dreaming about the opportunity to create such a
I mean... like....
Then one day the opportunity came : my Team was in charge of creating a new batch that should :
✅ Use our internal
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
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.
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
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
Finally, our first MVP was up... from the terminal :
to the mobile phone :
Next steps are :
- Refactoring for better performances
- Reporting features
csvsend mode in batch
JReleaserto ease its distribution (
Finally we could manage go get a new experience.
Discover below the software in its very early stages :
Matthew (he/him) :
Ben Firshman :
Carl Tashian :
Eva Parish :
Stay tuned for more 😊.