Website as Workshop?

A Workshop is a place for iteration and deepening skills and understanding. This site is a place where writing about my learnings to make technologies that solve problems in life.

  • The wishlist palace is an app for simply sharing and coordinating lists for birthdays and other gift giving occasions

How to Build an LLM Editorial Pipeline for Fiction Writing

I have been working on a serial fiction project called Applied Yarns (the site is not up yet as of this writing but I wanted to post here about how I’m setting up some aspects of it) where I want to publish some fictional works. The first world I plan to explore there is Vvell, which soon I hope you’ll read about on the appliedyarns site. I have lots of ideas but I don’t really have time right now to publish daily or even weekly updates and for me, the biggest hurdle is time spent doing editing. I find it possible to generate a block of about 1000 words within the world in a relatively short session but I don’t have time to polish and edit it during the same day given my work and family obligations. ...

July 13, 2026

LLM Productivity

This is a non-static page for describing how I am thinking about using LLMs. Harness When you start working with language models to generate code, you want whatever is produced to work. This requires some additional harnesses that both guide the agent and also give the agent a way to verify what it is doing. The tools that were helpful for humans are mostly useful for agents as well. They may require a bit of editing and changing of format to be more useful for an agent than a human. ...

Last updated: July 4, 2026

May 2026

Spring is in full swing though it already feels like summer I wrote about setting your bluesky handle to be a domain you own. I’m trying to increase my presence on Bluesky and one of the hip things seems to be to set your handle according to a domain that you own. I’ve been a user of Porkbun for a while so I got the domain jsph.online which currently redirects to my personal GitHub page. I think the online TLD is cool. ...

May 31, 2026

Ideas About How to Get People to Use a Free Wishlist App

Free app? no users? I like it’s pretty well documented around the internet bubble I live in that it’s difficult to get new users for an app if you don’t have an established audience. This is true even when you give it away for free and perhaps freeness works against user acquisition also. One way I think you can get more users of any software is to better refine the problem that it solves. This is an iterative activity and I wanted to share a new feature I’ve added to wishlist palace that I think improves the user experience and is more realistic about users who will actually make an account on that site. ...

May 28, 2026

How to set your Bluesky handle to a Porkbun domain

Why bother with a custom handle Bluesky lets you set your handle to a domain you own, so instead of @yourname.bsky.social you get something like @yourdomain.com itself. It’s a nice way to tie your social presence to something you already control or just to feel like you are satisfying your childhood notions of L33t or just because your own domain is really cool. For me I just wanted to seem cooler to people on Bluesky but maybe this is not something that will actually accomplish that goal. ...

May 27, 2026

April 2026

After launching [wishlistpalace.com] at the end of last month I had some things to learn about how to secure my VPS that is running that site so I did some minimal research which I wrote up in How to Protect Your New VPS. I plan to do monthly dev log updates on what I learn and what has shipped and will post them in the logs section of this site. I’ll also send out an email with these updates. ...

April 30, 2026

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