First Principles

 

NOLITE TE BASTARDES CARBORUNDORUM

If you've been following along with my LinkedIn feed, you may have spotted that I've started using Claude Code to clone a site for an art gallery in Chicago.  If you haven't been following along, well, I've started using Claude Code to clone a site for an art gallery in Chicago.  Previously, I'd already started cloning the site by (AI code-complete) hand.  The site is currently built from Square's website builder offering, while the new version uses my preferred stack (Astro, TailwindCSS, AlpineJS, and Cloudflare Workers).  

In my hand-coded iteration, I'd made it as far as fetching items from Square's inventory system and creating the index page.  That work took me about 10 hours.  In the Claude Code iteration, I'm requiring it to use my preferred stack, and it performed the work in about the same time.  That is to say, between creating the appropriate Claude.md file, which sets a framework for its usage, creating specifications for each coding session, allowing it to generate code, and reviewing the code it generates, the effort has clocked in around 10 hours.

I've since instructed it to create a dynamic landing page for each artist in the inventory system, and that's taken another 2 hours.  At this point, my Claude Code effort will deviate from my hand-coding effort because I'm abandoning the latter (unless I get really bored and want to recode the same thing again), so I can't give any more 1-1 comparisons, but I suspect I'll start to see significant productivity gains.  

In addition to creating those landing pages, it also added JavaScript for the mobile version that displays a fly-up menu displaying all categories for artist media and individual artist pages.  If I had to guess, given the complexity, I believe that effort would've taken me about 4 hours.  I expect that as I go along, I'll get more efficiency gains too, as I understand the codebase better and grow more confident in writing session specs for the bot [Late breaking update: I added an about page by hand, which took 15 minutes and created a dynamic item landing page.  Each took about 15 minutes, so the gains do seem to be accelerating.]

When I started my Coastal Chicago venture 2 years ago, I wanted to use AI to help me design and write a mock travel site.  The tools at the time were ok, but I quickly realized I wasn't going to get huge efficiency gains, much less write the equivalent of Expedia as a proof of concept with AI boosting my productivity.  

Claude Code has improved that outlook significantly.  I still don't think it's the panacea or the apocalypse that the hypsters are promising, and I'll address my reasoning in upcoming posts, but I'd be lying if I didn't find what it's built so far to be impressive.

As usual, I'm building in some constraints to help me measure and understand the effort.  I don't anticipate making any money off this experiment (I'm starting to realize just how horrible I am at business, because this seems to be the primary theme for all my business ideas), so I'm capping my budget at $50/month: 

  • In order to use Claude Code, I need the Claude Pro plan, which is currently set at $20/month ($23 with tax).  
  • My GitHub plan with tax is about $5.
  • That leaves me $22 a month for further development tooling and platform costs.  I don't expect the Cloudflare costs to be high, given my low traffic usage and their generous free tier.  So I have some budget to play with shiny toys if I spot one.
From a product design standpoint, I've got a few more constraints:
  • The agent needs to write code using my preferred stack of Astro, TailwindCSS, AlpineJS, and Cloudflare Workers.
  • The agent needs to maintain test coverage (It suggested 80% coverage.  I concurred.)
  • The site will have page content generated by a content management system or a reasonable facsimile of an admin site.
  • The site will pass a reasonable accessibility audit.
  • The site will pass a reasonable security audit.
  • I will consider the project an unqualified success if I can complete the effort in 50 hours or fewer.
I'm fairly confident I can complete the initial requirements in 50 hours (referred to as "code complete" or "feature complete").  The rub will be in determining if I can engineer a production-ready system in 50 hours.  Calling something "code complete" is a bit of a running joke in software.  Code complete often means that about 10% of the real work is done, and the hard effort to engineer a safe, scalable system remains.

I'm at an advantage here in that most of the difficult work is handled via the Square APIs, but the project isn't trivial, so I need to make sure I'm not falling into the trap of thinking it is and missing some bus-sized engineering gaps. 

[Programming Note: Going forward, I'm going to make the effort to write shorter, more frequent posts.  I have a tendency to procrastinate if I don't think a post will reach my expected 1K word quota or need to create an image to accompany it.  I'd adhered to the word quota under the guise of assuming longer content drove engagement and improved SEO.  If it does, I'm doing it wrong, so I'll just go with what's easiest and not stress about appeasing Google or the numerous AI bots.

I like the idea of attaching an illustration to every post, but that slows me down.  I'll still add illustrations, but I won't make it a 1-1 match with my posts.

I also think I'll start moving new content to my own home-rolled blog site.  I like writing content in markdown, and Blogger doesn't give me that option.  If I do, I'll just start with the new content and link back here for the archives, so you don't need to make any changes to your setup if you bookmark my page.

Finally, I may write a bit more original content in LinkedIn to drive engagement there as well (which I believe also drives engagement here - it's all very Ouroboros-y), because doesn't everyone crave anonymous validation?  If I post the content there first, I'll preface that it's a repost here, in case you're following along on both channels.

TLDR; - some presentation changes, and (probably) more frequent, shorter content, but no major disruptions.]
    
Until next time, my human and robot friends.

Comments

Popular Posts