I stopped building apps with Claude Code. Now, Claude Code IS the app.
Source: Dev.to
Building Apps with Claude Code
I was building apps with Claude Code. Development was fast. I was excited. Then it hit me: we just got the internal combustion engine, and I’m using it to build a faster horse carriage.
As someone with a backlog of things to manage, I wanted to build apps to improve my quality of life—track my expenses, log my Jiu‑Jitsu mat time, monitor my sleep. Claude Code made development fast, so I started building.
But while writing the code I had a reality check. All I really want is to record data and have AI analyze it. I don’t need pretty buttons or flashy dashboards. I’m the only user. Why am I polishing a frontend? Why am I worrying about deployment?
The speed didn’t eliminate this fundamental question. What I wanted was to record data consistently, have AI interpret it, and get feedback. The frontend was never a requirement.
So I thought: Why not just do it all inside Claude Code?
What I Did Instead of Building an App
-
Create a folder
mkdir my-life cd my-life -
Launch Claude Code in that directory.
-
Install
skill-creatorfrom skills.sh.
It lets you create new skills on the fly. -
Create a
/deep-interviewskill and ask it to query my true motivations.- At first it asked one‑dimensional questions.
- I told it that this would only reaffirm the version of myself I wanted to be and asked it to dig into specific past examples instead.
Claude then interviewed me properly—my values, decision‑making patterns, personality type. The results went into
me.md(personality type, motivation structure, recurring behavioral patterns). The interview took about 30 minutes. -
Feed it my side‑projects – why I wanted them, the context in which they started.
The deep interview resumed, some projects were naturally dropped, and for others I was advised to focus solely on completion. -
Discover a comfort‑zone pattern – I was building things but never announcing them.
The AI pointed out that releasing something means being evaluated, which is outside my control, and that my developer ego was avoiding that. The advice was simple: the outcome is uncontrollable anyway, so just release. -
Expand to my financial life
- Downloaded recent transaction history as a CSV from my bank app and uploaded it.
- Prompted Claude to organize the categories.
- It initially tried to do this in Markdown (inefficient), so I had it install SQLite.
- Told it not to set categories from the start, but to review transactions one by one and create adaptive categories.
After analyzing 600+ transactions, I asked it to write a report in the tone of a kind financial advisor, pinpointing household spending patterns and offering constructive prospects for future financial goals. My wife loved it.
-
Add tools to record everything else – sleep patterns, weight management, etc.
Replacements for apps I had tried and abandoned (often due to clunky interfaces or my own laziness) were added one by one. -
Store structured data in SQLite and unstructured data in Markdown.
Everything converged into a single directory:~/my-life/ ├── me.md # Who I am (Mission, Values, Personality) ├── now.md # What I'm doing right now ├── projects/ # Things with an end ├── goals/ # Things I want to achieve ├── practices/ # Things without an end (Workout, Writing...) ├── data/*.db # Structured data (Finance, Workout, Sleep, Weight) ├── context/ # Budget, Transaction logs ├── sessions/ # Conversation logs per session └── CLAUDE.md # Operations manual for ClaudeNo React. No API server. No deployment pipeline. Just files, SQLite, and an AI that can read, write, and reason about it all. That’s everything.
The Moment I Felt the Difference
The more context I gave this project about myself, the deeper Claude Code’s responses became. Sometimes I asked Claude what else it wanted to know about me, and conversely, I asked what patterns I had that I wasn’t recognizing.
A concrete pattern I uncovered
When a project is about 95 % complete, I suddenly get a new idea and want to drift toward that.
Typical completion avoidance.
The deep interview revealed this pattern. Knowing it, I created a skill called /escape95. It checks conditions like:
- “Are you trying to add a new feature when it’s already deployable?”
- “What was the original goal?”
If the pattern is detected, Claude intervenes.
Example
I brought up a shiny new project idea. Claude looked at me.md (completion‑avoidance tendency), checked projects/ (two unfinished projects), and said:
“No. Finish the existing projects first. This is your pattern. Let’s talk after you finish what you have.”
The AI told me “No.” Not because of a content policy, but because it understood me—cross‑analyzing my personality, behavioral patterns, and current state—and made a judgment for me.
What app does this?
Does Notion say, “Don’t make another page”? Does Todoist cross‑reference your personality type with your project status? Each app only sees its own data. When everything lives in one directory, the AI can see the whole picture and reason across it.
And this isn’t a task manager. When a session ends, a log remains, recording even the emotional flow of the day. I started this project a few days ago; early session logs were full of anxiety (“Is this the right direction? Will this work?”). The current session logs are filled with clarity. The change over just a few days is remarkable.
A Car That Changes Its Own Tires Based on the Terrain
The essence of this tool is that it is not a finished product. Whenever I need something, I add a skill, and the tool itself changes.
- If I need a ledger, I create a skill.
- If I need calendar integration, I attach an MCP.
- If I want to track a new habit, I add a table to the DB and create a skill.
- If I need intervention in my behavioral patterns, I make that a skill too.
It feels like riding in a car that changes its own tires and engine as the terrain shifts. No app can do this. Apps are confined to the use cases imagined by their creators.
- Last week it was a finance tool.
- This week I added behavioral intervention.
- Next week it could be something I haven’t thought of yet.
Projects like Clawdbot started from a similar philosophy, but you’re still customizing within someone else’s framework. Here, there is no such ceiling.
I Dropped All Other Projects
After creating my‑life, I stopped developing all side projects related to personal tracking. I no longer needed them. No matter how great a SaaS comes out, I don’t want to give up the joy of using this tool that holds all my context and considers the whole picture.
I realized — what if this were a SaaS? It would be terrible. 90 % of the utility I feel would vanish. What I find useful isn’t a sleek GUI; in fact, the GUI distracts from the essence.
What’s useful is:
- Talking directly in natural language with an AI that holds all the context.
- Being able to change the tool itself when needed.
Instead of building a SaaS, I wanted to use Claude itself as the app. I wanted to access it from anywhere.
- At first, I ran Claude Code in
tmuxand SSHed in from my phone. It worked, but it was clunky. - Eventually, I built a WebSocket relay server so I could access it directly from a web browser.
Now I can talk to the tool that knows my finances, projects, goals, and patterns from anywhere.
Looking Back
I was using Claude Code to build apps. Then I realized Claude Code itself was the app all along — not a tool for making the product, but the product itself.
That raises a harder question: Did I ever need the app in the first place? The frontend, the deployment, the authentication — all of that was scaffolding for something that a directory of files and an AI could already do.
What I needed wasn’t Software as a Service. It was Claude Code as a Service: an AI that has all my context, accessible from anywhere. That’s it.
I’m not saying all GUIs should disappear tomorrow. But I do think that the tech layer — which is ultimately just an interface between data and humans — is going to get much thinner than we expect.
It’s a strange feeling as an app developer, but I don’t want to go back.