SEO and LLM Discoverability for Phoenix Web Apps

How I set up SEO and LLM discoverability for my Phoenix app I recently shipped the discoverability layer for Wish List Palace, a free wish list app for coordinating family gift giving. This post covers everything I put in place: standard search engine SEO, structured data, and the newer llms.txt standard for getting picked up by AI tools and training crawlers. I hope people stumble upon this site. People who for whatever reason have a need for it, but I also definitely didn’t want to buy ads or try to exploit SEO. The wishlist app space is already super crowded so I don’t think any of those strategies would help much but making it easier for crawlers and LLMs to understand what the app is and what it does was the goal. ...

April 15, 2026

Github Actions for Phoenix App Deployment to Hetzner

Recently I started hosting wishlist palace on a Hetzner CX23 VPS (that has 4 GB of ram and 2 vcpu). At work usually I package software into a container before deploying it. One of the reasons I chose Elixir and Phoenix as the tech stack for wishlist palace is that I wanted to try out mix releases which prepare binaries. OS and chip architecture Originally I was just going to compile on my local machine (A thinkpad T480) and upload to the server. But this didn’t work because the VPS I had provisioned was running ubuntu 24.04 LTS and my local machine is on EndevousOS (a flavor of Arch by-the-way). So rather than local build and push, I opted to get claude to build a series of github actions that would build on a worker that was running ubuntu. This had the added benefit of basically completely setting up a basic CI loop so that when a release is cut we build a new binary and deploy it on the server. ...

April 10, 2026

How to Protect Your New Vps

I was very intimitaded about using a VPS outside a VPC my web apps. I had never used a stand alone VPS without some kind of walled garden around it. At work everything is usually behind a VPC. And I have always worked with awesome security people to double check things! I don’t have to worry so much about bots or people constantly trying to exploit my service (of course we follow guidence from our excellent security colleagues). But when you turn on your new VPS it immediately can be discovered and bots will immediately try to exploit vulnerabilities. ...

April 3, 2026

How to Use Augmented Coding to Build a Web App

I recently launched wishlist palace which is a web app to help share information with friends and family about birthday lists and christmas lists. This app is my first exploration into using Augemented coding (which is a term I prefer over vibe coding). When I first heard of vibe coding, I wasn’t particularly interested in engaging with it as a mode of production I use myself. I enjoy the problem solving aspect of software engineering and at face value much of that process falls into the lap of the LLM when doing vibe coding. And it’s not only the solution of the problem at hand that is of interest to me but directly engaging and phrasing that problem in the formalisms of programming languages scartches an itch in the same way I image poets feel when they want to express themselves in poetry. The trouble with the situation we (as tech folk) are in now is that the terms (like vibe and augmented coding) are highly overloaded and are used to described vastly different development cycles from the one shot prompt of 100 words attempting to get a polished app to the very detailed prompt to obtain the 10 line fix you requested in a few hundred words. ...

March 29, 2026

Setting up a hugo static site hosted with Porkbun

Content generation This is a static site generated with hugo with the PaperMod theme. I wanted an easy to use static site generator. I considered Jekyll and believe it to be a good choice for static sites. There seemed to be slightly more themes I liked with hugo so I went with that. That’s a pretty superficial choice but I also don’t plan on hacking on the site generation itself so I was agnostic to the Go versus Ruby choice. ...

March 23, 2026