Blogging in Lisp



Submitted by Bill St. Clair on Tue, 22 Nov 2022 13:49:32 GMT

I retired in November of 2020, because my brain wasn't working. I sat in front of my computer, but nothing happened. Since I'm entirely reliant on my muse to write code, my mother had just died and left me some money, and my social security was enough to live on, I decided to retire.

Two years later, my brain has come back, and I'm writing code every day. Elm code, for my Mammudeck web application, a Tweet-Deck like multi-column interface to the Mastodon Client API. I still execute arithmetic in my Emacs *scratch* buffer, but my Lisp addiction is currently in remission (he said, while typing in a window put up by his Lisplog server).

Mammudeck is a Progressive Web App (PWA), meaning that you can save it to your home screen on a phone or tablet, and save it as a native desktop application from browsers that support that (I've confirmed that in Brave and Chrome).

I've been using Mammudeck for the Fediverse since shortly after it worked well enough for that. I started it on July 4, 2019. With all the new Fediverse denizens, fleeing from Twitter (which I find to be a lot more fun under Elon Musk), I'm finally working on the Account Dialog, so I can see new user profiles and easily follow them or add a column to track their posts.

Once I finish the account dialog, which still needs to display posts, followers, and following, I'll resume work on the DynamoDB backend.

Mammudeck stores state, including OAuth tokens, in the browser's LocalStorage database, but that is seen only by one browser. I use it on my iMac, iPhone, and iPad. The DynamoDB backend will enable sharing state between ALL of your browsers, so changes made in one will be automatically synchronized with the others.

My PWA philosophy is for my web servers to serve only as the source of the code. No other communication is done with them, except for games, which require a place to hold state and communicate between the players. I write those servers in Elm, and run them on the server under Node.JS. Hence, I will NOT be in the shared state database business. Users who want that feature can pay Amazon for the privilege.

Mammudeck is open source. There's a link at the bottom of its home page, to its GitHub repository. If you're interested in helping out, and can illustrate competence in writing Elm, let me know, via the email link at the bottom of this page.

The Web Apps section of my home page ( has a bunch more Web Apps that I've written over the years. All but "Two-Factor Authenticator" and "Conway's Life" are written in Elm. I haven't done the magic to turn most into PWAs. Ask if you want one packaged that way. It's not difficult.

I'm loving writing the code I want, and nothing else, in my retirement.

Add comment   Edit post   Add post

Previous Posts:

Lisplog still works!
Why Elm?
OAuth2 and Mastodon
ZAP Meme
stackoverflow April Fools 2019
Image Sizing in elm-ui
How do I run elm-test in Elm 0.19?