jola.dev logo

jola.dev

Archives
Log in
Subscribe
September 8, 2026

August Newsletter

The August roundup of content from https://jola.dev.

Can't really claim this is going out late anymore, this is just the normal time range for sending the monthly newsletter now. August has been busy, 11 blog posts, and lots of open source projects. Some of the highlights were releasing an early version of my Elixir atproto OAuth client library (Github mirror) and the cove.town experiment in atproto self-hosting, that's maybe turning into community infrastructure. With a few general Elixir posts on that, and a tiny bit of thought leadership.

Blog posts

Limited output is a feature - Great startups don't win because they write more code, they win by doing things differently, creating new markets, finding new approaches, and innovating.

Latch - an Elixir atproto OAuth library - Introducing an Elixir library for building client applications using atproto OAuth, following Elixir best practices. This is already in production on a few sites, and working well so far!

No cost, no value - Why generating code makes it meaningless, why writing code by hand has value, and why toil is a critical part of the human experience. I've been enjoying writing code by hand because it is satisfying in a way that having an agent do it just isn't for me.

Taking control of your atproto account - Atproto's decentralized design means that you own your identity, but without a way of proving your ownership, that doesn't mean much. Setting a rotation key on your account means you can always recover it, even if the server it lives on goes down.

Self-hosting your PDS - A little guide on running your own atproto (Bluesky) Personal Data Server. This is the thing your account data lives on. I use tranquil-pds, a community project with some cool extra features like account delegation.

Self-hosting and Tangled - Tangled is a Github competitor that already has a growing user base, and is built to match the decentralized nature of atproto. This means you can self-host your own git repo server and workflow runner, so let's do that!

Migrating to the new Tangled knot2 - Follow-up on self-hosting Tangled's knot component, the git repo server, migrating from the old knot1 to the new knot2 implementation.

Self-hosting an atproto container registry - atcr.io is an atproto container registry, this write-up shows how to set up your own self-hosted registry component.

Speeding up a Phoenix LiveView web app with a CDN - Adding a CDN often means putting it in front of your site, but with LiveView's websockets that's not always straightforward. Here's a short recipe for how to integrate a CDN with Phoenix and get 80% of the value for 20% of the effort.

cove.town, atproto self-hosted self-hosting - Putting together all the atproto self-hosting guides, cove.town is a self-hosted self-hosting setup, all on the protocol.

Cluster singleton pattern - Running a single global process in Elixir is not an ideal design, but sometimes the right call. Doing it in a clustered environment can trigger some weird edge cases. I share a recipe for how to deal with it, and a scary story about a production issue from the past!

See you next month

I've been having a lot of fun working on a little link aggregator site on atproto, similar to bubbles.town. It's my first experience building a proper AppView, subscribing to Jetstream and labelers, and publishing a lexicon. Atproto is the most exciting technology around and I hope to see a lot more interesting apps show up!

Please feel very welcome to find me on Bluesky at @jola.dev and let me know what you think.

Don't miss what's next. Subscribe to jola.dev:
Older → July Newsletter
LinkedIn
jola.dev
Bluesky
Powered by Buttondown, the easiest way to start and grow your newsletter.