aicore: Shipping software from a train with a few words and a Raspberry Pi
Over the past few months I started exploring AI coding agents, and piece by piece I've created a setup where I can now ship on my phone, from an ICE train over their flaky WiFi, going from idea to running software in a couple of hours. Here's how I got there.
At first, AI wasn't what I thought it'd be
To be honest, when the "AI revolution" hit after OpenAI released chatGPT, I was majorly annoyed. Which is ironic as AI was what first got me interested in studying computer science. I even have a Ph.D. in machine learning.
Looking back, I think there were two aspects that really put me off: the hype and the inaccessibility. I don't think I have to explain the hype. OpenAI did a horrible job of overselling AI.
The other issue was that initially, playing the game meant to build foundational models, and that seemed completely out of reach for anyone but the big tech companies. Eventually open weight models and cheap APIs were going to change that.
In any case, AI was here but then again it wasn't. Where were interesting use cases that actually worked? When would we cut through the marketing BS?
First hints of a use case that actually works!
Fast forward to summer 2025. A friend of mine insisted that I should look into AI coding assistants. He said "you of all people need to know how to work with that! And you should try Claude Code!"
I still remember the very first edit I made. My side project fedistats was running for more than a year but lately I was getting complaints for loading the fontawesome icon set from its CDN. After the 20th of every month, icons didn't show anymore because I exceeded my traffic quota.
I told Claude Code to look into it, and it migrated to the icon set from bootstrap, which was something that would've taken me several days. I was impressed. I wanted to commit the changes and then saw that Claude had also edited the data privacy page that mentioned that the icon set was downloaded from an external site, so they theoretically would be able to track users.
I was shocked! Today I understand better what happened. Claude was probably first doing a grep for "fontawesome" and then going through all those files and just ended up adjusting the data privacy page as well. At the time it felt like pure magic. I was hooked!
I understood that something significant was happening. This was something that worked! Something that removed one of the biggest obstacles for me to keep making progress on a side project: needing to remember where I was to continue. Before, even if I had the time I would often not start because I'd look at the clock and see that I only had half an hour and I knew it'd take at least 15 minutes to find my bearings again.
In AI, there's this concept of "embodiment", essentially agents that live in an environment with which they interact (often three dimensional worlds with some amount of simulation of physical effects). Some researchers believe that embodiment is essential for truly creating AIs, and they showed how robot like creatures can learn to walk only with reinforcement learning (looks super clumsy BTW).
I believe coding agents is one version of embodiment for LLMs. Suddenly, what the LLM generates matters. You can't just hallucinate your way through a codebase. The edits you make have consequences you have to deal with, and this feedback loop will make AIs more reliable and just plain better at what they do!
Removing all the friction to optimize the loop
Now, a couple of months later I'm in deeper than ever. I scaled down fedistats (it was a great project, but too costly given the - ahem - total lack of visitors), but created an AI-driven learning app, an Instagram clone for my family, an AI-driven text adventure, migrated all my various blogs into a new repo and wrote a "headless CMS" on which I'm typing this right now.
I went through several cycles of having an idea on my way back from work, talking with Claude on the app about a project idea, discussing architecture, features, then having him ("it"?) write everything to a SPECS.md file, dropping this into Claude Code at home, debugging for 30 minutes (it's not perfect... yet) and having a running prototype before I went to bed!
How I interacted with Claude also changed significantly. Initially, I was running it in an IDE, looking at the edits it wanted to make to approve them. But increasingly, I found myself trusting Claude more and more. Seeing the diffs scroll by gave me enough of an idea what it was trying to do. I only looked at code when it got stuck and I needed to figure out what was going on.
It started to feel like a restriction to have to be back at my private laptop to work on it. If you know it'll just take a couple of minutes, why not do it right there when inspiration strikes?
I started looking for ways to reduce the friction even more. Piece by piece, I built my own "cloud IDE" infrastructure using existing technology and pages out of the CI/CD playbook - on a raspberry pi in my living room. If you're interested I can give you all the details, but the result is what mattered: I could now start a thought on my phone and come back to running software. I could create while on the train through the bundled 5G based Wifi of the Deutsche Bahn. In a world where webpages are easily megabytes of data and we watch tiktok videos while on the subway, I only needed to get a couple kilobytes of characters over the wire and I was rolling.
So what did I actually discover?!
So what did I get for removing all the friction of the process? I now have a persistent Claude Code session that I can access from all of my devices wherever I am, and I can conversationally create software and immediately see the result from anywhere as long as I have a few bars of network from my phone.
Because it's always there, at my fingertips, creation also becomes more ambient. I don't need to block time, I don't need to find a place to plop down my Macbook. When I get an idea and I have five minutes, I can start with a few words, and get back to it whenever I need to.
To give you one recent example: On Jan 1, while I was on the bus to visit some relatives, I had this idea to write a small script that scans my dev projects and automatically maps subdomains to the right ports via a reverse proxy. I discussed the idea with Claude in the app, and got a vision of how it could work, then had Claude create a SPECS.md file with the information what to build. On Jan 2, on my way back, I worked on it on the train Wifi, letting Claude Code implement it in golang, it worked, I set up the DNS entries, all that, while still on the train! Then I thought this was interesting enough to open source it, so I added a LICENSE, a README, and made the github repo public. (STILL on the train!)
I've started calling this approach "aicore": using AI to collapse the flow from idea to running software. But it's not just about the AI - it's about creating the infrastructure that lets that happen. The tools become an extension of intent. All it takes are a few words typed into your phone and you get running software.
I'm still trying to figure out what this actually means. AI is at the core, but the setup I found is just as important. Almost all of my interactions are conversational, no context switching, no "let me quickly ssh into that server". Coding agents are powerful, but to really unlock their potential you need to create structures that really let you focus on the core.
I'm aware that my situation is an outlier, but I also cannot ignore the extreme cognitive dissonance that I get when I look at work. Delivering features doesn't take hours. It takes weeks. Sometimes months. And that's not for a lack of trying.
What's different? It's just one person. It's just side projects. I don't have to align with anybody. I'm not on a team with other people who need to work with the code. I can make decisions myself. My side project work is much less constrained than any software team.
And yet. There's something here. Let me know what you think!