Build Log #6: Lessons from 30 Days Solo with AI

Thirty days, one person, an AI co-pilot, and a live platform at the end. Here's what I actually learned — no productivity-guru framing, just honest observations from the trenches.
Lesson 1: AI is a 10x Multiplier on Clear Thinking (and a 10x Multiplier on Confusion)
When I knew exactly what I wanted — the data model, the API structure, the component hierarchy — DeepAgent was extraordinary. Describe the schema, get the Prisma models. Describe the page layout, get the React components. Describe the API contract, get the route handlers. The translation from "clear intent" to "working code" was faster than I'd ever experienced.
But when my thinking was fuzzy — "I want some kind of dashboard that shows... stuff" — the AI would cheerfully build something elaborate that was precisely wrong. Not because the AI failed, but because I hadn't done my job as the architect.
The takeaway: AI doesn't replace thinking. It amplifies whatever quality of thinking you bring to it. Spend twice as long on the design, half as long on the implementation.
Lesson 2: Schema-First Development Saves Everything
The single best decision of the build: designing the Prisma schema before writing any UI code. Every model, every relation, every field type — thought through upfront.
Not perfectly, of course. The schema evolved — we added models, added fields, adjusted relations. But the structure was right from the start, and that meant every new feature slotted into a coherent data model instead of fighting against ad-hoc tables.
By the end: 70+ tables, and the schema is still clean. That's not an accident — it's the compound interest of upfront design decisions.
Lesson 3: The 80/20 of AI-Generated Code
Roughly 80% of the code in this platform was AI-generated. But that doesn't mean 80% of the effort was AI-handled. The distribution:
- 90% correct on first try: CRUD operations, form components, API route boilerplate, Tailwind styling, TypeScript interfaces
- 70% correct: Complex data transformations, chart configurations, authentication flows
- 50% correct: Domain-specific logic (energy market calculations, financial formulas)
- 0% correct without human input: Business decisions, UX priorities, content strategy, architecture trade-offs
The pattern: the more domain-specific or strategically important something is, the more human involvement it needs. AI handles the "how". Humans handle the "what" and "why".
Lesson 4: Dark Mode is Not Optional (and It's Harder Than You Think)
We shipped dark mode from week 1. We broke dark mode by week 3. The GLB-010 saga: blog post text invisible in dark mode, card backgrounds clashing, gradient overlays that looked great in light mode and terrible in dark.
The fix was systematic: replace every hardcoded colour with theme-aware CSS variables. bg-card instead of bg-white. text-foreground instead of text-gray-900. text-muted-foreground instead of text-gray-500.
The lesson: if you support dark mode, test it on every page, every component, every state, continuously. Not as a one-time audit at the end. Not "I'll fix it later". Every PR, every new component.
Lesson 5: Scheduled Tasks Are Your Platform's Heartbeat
A content platform without automation is a blog that slowly dies. The scheduled tasks — intelligence collection, content synthesis, market data updates — are what make this a living platform rather than a static site.
But each task is a potential failure point. In 30 days, we encountered:
- RSS feeds going offline (handle gracefully, log the error, continue with other sources)
- LLM API returning malformed JSON (add retry logic, improve JSON extraction)
- Rate limits on external APIs (implement backoff, reduce batch sizes)
- Stale data from broken pipelines (add staleness detection, alert on age thresholds)
Each failure made the system more resilient. By week 4, the pipelines were robust enough to run unattended. But getting there required encountering (and surviving) every failure mode.
Lesson 6: Context Loss is the Real Cost of AI Development
Working with AI across multiple sessions means context gets lost. The AI doesn't remember what you decided yesterday, why you structured the database that way, or what the long-term vision is.
Our solution: obsessive documentation. .project_instructions.md as living memory. Session handover documents. Decision logs with rationale. Backlog files with detailed specs.
This documentation isn't just for the AI — it's for me. When I return to a feature after a week of working on something else, the docs tell me why I made those choices, not just what I built.
The meta-lesson: good documentation is even more valuable when your development partner has no long-term memory.
Lesson 7: The Real Cost
People always ask about cost. Here's the honest breakdown:
- Hosting: Abacus.AI provides generous free tier for database, hosting, and app server management
- AI development credits: Significant but not astronomical — comparable to what you'd spend on a freelance developer for a few days
- External APIs: Mostly free tiers — Elexon API (free, no auth), CoinGecko (free tier), Carbon Intensity (free), Yahoo Finance (free tier), x.ai Grok (API credits)
- Time: ~200 hours over 30 days. This is the hidden cost. AI makes development faster, not effortless.
Could a team of developers have built this faster? Yes. Could they have built it for less total cost? Probably not. The sweet spot of AI-assisted solo development is that the cost is primarily time, not money.
Lesson 8: Ship, Then Iterate
The hardest lesson for a perfectionist: shipping something imperfect is better than perfecting something unshipped.
The platform launched with known issues. The GO_LIVE_BACKLOG.md had 20 items on day one. Some pages had layout quirks on mobile. Some data pipelines had edge cases. Some components had any types that should have been properly typed.
None of that mattered as much as having a live, working platform that real people could use and give feedback on. Every issue found in production was an issue that wouldn't have been found in a staging environment.
Build fast. Ship rough. Fix forward.
