Zigtoberfest Mascot

Running your Company on the Command-Line with Zig, LaTeX, Git, and ZAP⚡!

02:30 PM • Duration: 45 Min

Once upon a time, many decades ago, I founded a company. Being a programmer, I wrote a command-line tool to manage clients, and produce beautiful PDF offers, invoices, and (FAX – yes, THAT many decades ago 😆) letters, using nothing but sed, awk, bash, and pdflatex. Assigning incremental IDs on a per-year basis, calculating taxes and the likes was all done with these basic command-line tools. The results were beautiful but the software itself was so brittle, that I wasn’t even able to get it to work anymore, following my own PDF-documented procedure, starting with its well-documented init command.

Now, many decades later, I am again founding my own company. And I still like the charme of “running it on the command-line”. This time, though, I wanted to do it properly. So I wrote fj -- The Commandline Company, my fjnance tool that’s quickly accessible with both index fingers on the homerow of the keyboard 😊, in Zig. It manages a private Git repository for all my clients, rates, offers, letters, and invoices — and lets me create these documents quickly, editing billable items in my beloved NeoVim editor.

Once it became usable, I got tempted and added a serve command to it. So now I have the option to even use it through the browser. And yayyy, do I love that new dashboard! 😊

Along the way, I learned a lot of little things about building command-line tools in Zig, then web-enabling them, from parsing command-line arguments, to the joy of noreturn, to how hard it can seem to print its own version.

In this talk, I want to present my learning-journey, with fj as example.

About Rene

Hi, I’m Rene, also known as renerocksai. I love programming in Zig and do all sorts of stuff with it. I’m also in the lucky position to have been able to use Zig for both fun AND profit (aka “in my job”) – at the same time 😊 yayyy – for a few years now. I like sharing that joy in my talks.