The Non-Coder's Stack: Tools I Actually Use
Developers have strong opinions about their tech stacks. React vs Vue. TypeScript vs JavaScript. Vim vs everything else. I have no opinions about any of this because I don't write code.
Here's what I actually use to build and ship products, and why each tool earned its place.
The core tools
Claude Code (CLI)
This is where 90% of building happens. Claude Code runs in my terminal and can read, write, and edit files directly. I describe what I want, it builds it, I review and iterate.
The key feature: it has persistent context. I've built a library of custom skills (reusable prompts) that encode my workflow preferences, quality standards, and project conventions. When I start a session, it already knows how I work.
Cost: Max plan subscription. Worth it if you're building daily. The overnight autonomous work alone would justify it.
GitHub
I use GitHub for two things: keeping a history of my work, and triggering deployments. When I push code to the repository, Render automatically deploys the updated site.
I don't use branches, pull requests, or code review. It's just me. A single main branch with descriptive commit messages is all I need.
Cost: Free tier.
Render
Static site hosting with auto-deploy from GitHub. I push, it deploys, the site updates. No servers to manage, no build pipelines to configure.
I chose Render over Netlify and Vercel because it was the first one that worked when I tried it. That's genuinely the level of evaluation I did.
Cost: Free tier for static sites.
VS Code
I open VS Code to look at files sometimes. I don't really edit in it. Claude Code does the editing. But it's useful for seeing the file tree and occasionally checking what something looks like.
Cost: Free.
Obsidian
All my project documentation, research files, and session notes live in an Obsidian vault. It's a local markdown editor with graph view and backlinks. My entire project structure is also my documentation structure.
Cost: Free for local use.
The occasional tools
Streamlit
For data-heavy projects where I need charts, filters, and interactivity with real data processing (not just display), Streamlit turns a Python script into a web app. My family finance dashboard uses it.
For simpler visualisations, I use Chart.js in plain HTML. The decision point: if it needs to process data on load, use Streamlit. If the data is pre-processed, use HTML.
Cost: Free (runs locally).
Gemini
I use Google's Gemini for visual design. It generates React component code from UI descriptions, which I then hand to Claude Code to adapt into my project. It's a cross-AI workflow: Gemini designs, Claude builds.
The Stackless website's neo-brutalist design came from a Gemini-generated React component that Claude then converted to my stack.
Cost: Free tier.
What I don't use
No frameworks (React is in one project, but I don't understand it). No package managers. No TypeScript. No Docker. No databases. No testing frameworks. No linters.
My projects are static HTML/CSS/JS files that you can open by double-clicking. Data lives in JavaScript files loaded via script tags, not fetched from APIs. Everything runs locally with zero dependencies.
This is deliberate. Every dependency is a thing that can break. Every build tool is a thing I don't understand. Every framework is a thing that will need updating. Plain HTML works in every browser, runs from the filesystem, and will still work in 10 years.
The anti-pattern that works
Developers would look at my setup and cringe. No tests. No type safety. Inline styles in some places. Global variables in data files. Script tags instead of module imports.
Here's why it works for me:
- Zero build step. I change a file, refresh the browser, it's updated. No webpack, no compilation, no "npm run build".
- Zero dependencies. Nothing to install, nothing to update, nothing that breaks when a library releases a new version.
- Portable. I can copy my project folder to a USB stick, open it on any computer with a browser, and it works.
- AI-friendly. Claude Code can read and edit plain HTML/JS files perfectly. The more complex the stack, the more the AI struggles with configuration, imports, and build tool quirks.
Cost breakdown
Monthly cost to run everything:
- Claude Code Max: the subscription cost (this is the only paid tool)
- GitHub: free
- Render: free
- Obsidian: free
- VS Code: free
- Domain (stackless.tech): a few pounds per year
Total: one subscription and a domain name. Everything else is free.
When to add complexity
I'll add tools when a real problem forces me to, not before. If I need a database, I'll add one. If I need server-side processing, I'll use Streamlit or a serverless function. If I need real-time updates, I'll figure that out then.
But I won't add complexity because someone on the internet says I should. The stack that ships is better than the stack that's theoretically correct.