Having a big mouth is at times one of my character flaws, so a while ago I made a few resolutions:

If I say I will do something, I should always follow through.

If I get the urge to complain about something, I should work on a solution.

Not long after I couldn’t help myself while talking to a friend:

“I want a new system shell that is small, fast, good for scripting, and also supports things like closures, exceptions, first class functions, a module system , a …”

Some time later I began work on Janet Shell using Janet as a base to build from and I think now is a good time for a mini retrospective.

What is done:

A shell that I use day to day on Nixos that ticks my boxes and works pretty darn well.

Cross platform support on at least Linux, FreeBSD and OpenBSD. I expect Mac will work easily, if it doesn’t already.

A few people using janetsh as their preferred shell.

A website (linked above).

What it has taken:

Luck that someone did so much amazing work building Janet, clearly Janet Shell would not be possible without it.

2 Weeks of near full time work. (Thousands of dollars investment at market rates).

157 git commits.

The help of some great supporters.

What needs to be done for a 0.1 release and beyond:

More hours of use to find issues, more test cases.

Macos CI testing.

Polish polish polish.

Documentation and support for new users.

A new stable release of the janet programming langauge I can refer people to.

Getting the first stable release packaged for multiple operating systems.

Marketing and reaching the right people.

Closing thoughts

Even though I clearly lost money to build Janet Shell, I am very happy to have created something I can use daily.

To relieve some of the expense, I was able to create a sponsorship link on the janetsh github page and was even lucky enough to get my very first sponsor (Thank you, I can’t express how happy that made me). This makes me optimistic for the future of sustainable open source development and makes me want to donate to other independant software projects I use.

As always, feel free to give it a try (and let me know how it goes), or you can wait a short while (weeks?) for the very first release.

Thank you for reading.