Building From Scratch With AI
Claude and tools like it allow you to build what you want to build with minimal friction.
The Teardown
Thursday :: November 14th, 2024 :: Approx. 5 min read
👋 Hi, this is Chris with another issue of The Teardown. In every issue, I cover how we interact with technology that powers our day-to-day lives.
What’s that?
It’s that personal finance app I discussed way back in January. I wrote about a series of ideas for the year rather than resolutions. Building this app was one of my ideas, #7 to be exact:
This idea probably sounds silly. Sure, I could use one of the many budgeting and transaction tracking platforms to accomplish the goal. Or, I could rely on time-tested software that fits almost all needs - Excel.
But I find myself somewhat displeased with both options. Most of the major sites focus on transaction categorization. A spreadsheet cannot, without some other programming and plumbing, import and automatically categorize transactions. And, I’m not achieving the higher-level budget scenario flexibility I want with something like Mint (RIP) or YNAB.
In conclusion, I’m going to build my own app. It will take a while. But it will be a fun learning experience. And ultimately, if I’m pleased enough, I’ll release it as a simple SaaS app in the spirit of Indie Hacker.
I didn’t load this week’s calendar with career-oriented meetings as I am traveling out of the country. So, I spent some free time experimenting with code automation tools.
My goal was simple: build a basic working tool without writing code.
How? Claude.
No Major Prerequisites: Just Build It
I’m looking back at this week’s effort in awe and feeling a small sliver of fear.
Code exploration formed the foundation of my career. I ingested lots of knowledge and honed skills that provide me with a technical head-start at age 22.
My first forays into Matrix-colored syntax and language happened in high school. My dad was in a mid-career MBA program and working with Microsoft Access. Anyone could construct quasi-enterprise applications and databases using Access.
So, like a normal high school kid, I picked up an Access cookbook and started messing around. I could drag and arrange a button on the screen, make it do something, and then pump my fists when it worked. And I was always fascinated by structured visual design. My career path was once architecture.
There was gobs of trial and error in learning to code in the late 90s and early 2000s. Some good but often nascent resources existed on the web. Programming and computer system books were still popular. So, of course, I bought a book too.
But I had to write the code myself, for the most part. No one or thing was going to do it all for me. The various software wizards and templates didn’t often produce full-blown applications.
Claude and tools like it destroy that dynamic. You can build a complete application without writing a line of code. Without learning to write a line of code.
A few questions swirled in my brain when I showed a few friends what I was doing:
Is it good or beneficial that I can build quite a lot without knowing much?
Does Claude replace or negate the need for junior software employees?
Do we need to build this fast or with so little friction?
With those questions in mind, I jotted some notes about the build experience.
Awe-Inducing Observations
Claude Sonnet 3.5 (paid) constructed code in an efficient manner. The platform responded to my initial three-sentence prompt without much fanfare. The resulting UI worked right away.
The platform understands many platforms and languages and flexes to accommodate different opinions. Claude first produced an app using React, an ecosystem built and used by Facebook. I asked Claude to instead use HTMX and Python (for the nerds). It rewired the app and interface in minutes, producing a near-working version.
Claude was best with clear requests but understood the vast majority of my prompts. I nudged it to change interface elements, add fields to the app’s underlying database, rework functionality, and fix its errors. It did.
The last bit was what produced the most magic. Claude constructed code with several bugs as I added and changed the app. Those bugs went right back to Claude with prompts like "help me fix it." The fix often worked right away. Claude also suggested and combined two different solutions to resolve one thorny problem.
Areas For Improvement
Claude isn’t some immortal code god (i.e. typical Silicon Valley engineer). It can and will respond to prompts with code that doesn't work as requested. That sort of gobbledegook slows you down. You have to test as you iterate. That’s an area of continual improvement for humans, too.
Prompts, contextual responses, and code blocks jam up screen space. You need a careful eye on what you're looking at and copying or pasting elsewhere.
Claude seems to rewrite rather than reuse code, but by design. When I asked the platform to change something in my app, it live-scribed code to the screen. Then I asked for complete files to ensure I wasn't injecting mistakes into the code-base. It wrote each word of over 800 lines of code to the screen. I’m not sure if there is a better experience; remember that it’s a prompt-response LLM based on predictions.
Claude’s Pro plan limits your prompts after extended use. It’s not yet clear if there’s a combined time and prompt limit. But the limit roadblocks extended flow-states. At one point, I had to wait "until 5pm" to keep going.
So, you might think: can a tool like Claude destroy the job of a junior person? Of an inexperienced person? An offshore resource? It’s possible, yes.
Claude seems to be the candidate to take over commoditized requests. Those, today, might live with a junior or offshore resource.
I’ll build more and come back with a part 2 on this effort.