Vibe coding local first personal apps in mid-2026

frabcus1 pts0 comments

Vibe coding personal apps in mid-2026 - Francis Irving

Skip to content

Vibe coding personal apps in mid-2026

13 August 2026

There are a few mobile apps that I&rsquo;ve wanted for a while, and that are relatively<br>speaking just for me.

Toucan Music showing artwork

Places - When people recommend restaurants or cafes to me, I&rsquo;ve for a long time put them in<br>a Google Maps list. It&rsquo;s annoying in various ways, for example the page zooms out when you<br>select the list. And I don&rsquo;t like keeping my data locked into a free service.

People - I&rsquo;m face blind, and struggle to remember people I haven&rsquo;t met quite a few times.<br>This is especially noticeable networking in a metropolis. The idea is to help me<br>remember who people are, and train me with spaced repetition to learn their faces.

Music - This one I made impulsively in the last week. Like many others, I&rsquo;ve<br>long wanted to organise<br>albums in folders on Spotify. After a quest to switch back to buying MP3s, which failed<br>because it got too complicated, I made a custom Spotify player instead.

So over the last month or so I vibe coded Toucan<br>(choose &ldquo;local only&rdquo; to just play with it, any data you put in will stay in your browser).<br>For what it is worth, the source code is here.<br>But I&rsquo;m not really proud enough of it to say it is a &ldquo;release&rdquo; - more on that below.

Architecture

The apps I describe above need to work on mobile and sync data to web to use them on<br>desktop. The usual way of doing this would be to make your own personal<br>software-as-a-service with its own web server and database, and then also a mobile app.

This felt a bit much - clunky, excessive and not very scalable. I&rsquo;ve<br>long been a fan of what is now called the local-first software movement.<br>The idea is that data is primarily on each device, with a standardised sync server to get it<br>between them. This makes operations extremely fast, as they just act locally. Syncing<br>happens in the background. Think something a bit like Dropbox, but for data in databases.

Some of the data is quite private - particularly people&rsquo;s faces, but even their names on<br>restaurant recommendations. So I prefer syncing to my own server hosted at an<br>excellent local ISP.

I was disappointed to find there isn&rsquo;t standard personal data sync server software - I was<br>hoping for something at least as modestly popular as Nextcloud.<br>Which you likely haven&rsquo;t heard of, but is a self-hosted file syncing server (and more).

In the end Fable and I went for Yjs which is the most popular<br>local-first protocol. I wanted a simple server that just writes to a SQLite database (so I<br>could do hosting and backups very easily). Fable found the obscure<br>Hocuspocus, which is simple and does<br>the job (alas it turned out its format is opaque and binary inside the database file, but<br>that&rsquo;s another story).

I spent a while wondering if I could write the UI in Rust but<br>in the end went for simple and made a Javascript progressive web app (PWA).<br>When installed on my Android phone (via Chrome, for some reason it doesn&rsquo;t work in Firefox), it is just as good as an actual app. The web version and the mobile version are the same code<br>and work just the same. Even with LLM coding agents, that saves a lot of hassle.

Basic process

Toucan Places at a coffee shop

I did most of this on the £18/month Claude plan, using mostly Opus. Fable helped with a<br>bunch of initial planning, but I&rsquo;m not sure it made a lot of difference. Several of<br>those decisions were bad anyway, and were refactored later.

My processes are commonplace by this point in LLM coding. There&rsquo;s a plans/ directory<br>where anything large gets designed first. I edit it, make decisions, then clear the<br>context window and tell the agent to implement the plan.

If something is a significant UX or design change, I ask Claude to make an artefact with<br>different options for the design in it. These are surprisingly high quality, especially<br>after a few iterations.

I manage bugs and tasks in a simple to-do file.<br>The agent ticks them off when it has done them, then I QA them and delete them.

Most of these tasks are under a heading &ldquo;Polish&rdquo;. That&rsquo;s because I have to give a lot of<br>product and UX detailed feedback. I take note of them while I&rsquo;m using the apps as I go<br>about my day. Dozens and dozens of items for each app. This is a major reason I think this<br>is hard to scale to anyone right now - see below.

I&rsquo;m stubbornly not upgrading to a more expensive AI coding plan. I&rsquo;ve lots of other things<br>to do, and quite liked being stopped by the 5 hour window, as this is addictive .<br>Later on I learnt you can type !sleep 3h (or whatever) when you run out of tokens, and<br>press Ctrl+B to background it (otherwise you get a 2 minute timeout). Claude will wake up<br>hours later, and carry on with its limits reset, even if I&rsquo;m not around.

Making it do a good job

Bespoke snapshot testing...

rsquo data coding apps server local

Related Articles