Building a Blog with Claude 4: An AI Development Adventure

LiveView

June 28, 2025

The Challenge Begins

It started with a question that’s been nagging at me for months: Can AI really build a complete, production-ready web application? Not just generate some boilerplate code or fix a few bugs, but architect, implement, and deploy an entire system with modern best practices.

I decided to find out.

Armed with skepticism and a detailed 190-line XML specification, I threw down the gauntlet to Claude 4. The challenge? Build a single-user blog website from scratch using Elixir, Phoenix LiveView, Svelte, and deploy it to the cloud with hot code reloading. Oh, and make it secure with two-factor authentication. And style it with a specific color palette. And make it responsive. And… well, you get the idea.

I fully expected to be debugging AI-generated spaghetti code within the first hour.

The Research Phase: First Impressions

What happened next caught me off guard.

Instead of diving straight into code generation, Claude 4 did something I didn’t expect—it went into full research mode. For the next 20 minutes, I watched it systematically search the web, pulling information from:

  • Phoenix LiveView documentation and community forums
  • Elixir subreddit discussions and Stack Overflow threads
  • YouTube conference talks and tutorials
  • GitHub repositories with similar tech stacks
  • Deployment platform comparisons

It wasn’t just reading docs. It was synthesizing knowledge from multiple sources, looking for patterns, best practices, and real-world implementation examples. This felt less like prompting a chatbot and more like watching a senior developer do their homework.

The Pivot: When Plans Meet Reality

Then came the moment that really impressed me.

Claude 4 had been planning to use Fly.io for deployment, as specified in my original prompt. But during its research, it discovered something crucial: Fly.io doesn’t support Elixir’s hot code reloading feature. This was a hard requirement in my spec.

Rather than blindly following the prompt or trying to work around the limitation, Claude 4 stopped, researched alternatives, and proposed switching to Gigalixir—a platform specifically designed for Elixir applications with full OTP support.

It presented a detailed comparison:

  • Fly.io: Better scaling, global distribution, but no hot reloading
  • Gigalixir: Elixir-native, supports all BEAM features, includes hot upgrades

This wasn’t just following instructions anymore. This was problem-solving.

I gave the green light to pivot to Gigalixir, and we were off to the races.

The Implementation Sprint

What followed was the most systematic software development session I’ve ever witnessed from an AI:

Foundation First (30 minutes)

  • Created GitHub repository with proper SSH setup
  • Generated Phoenix project with LiveView and PostgreSQL
  • Configured development database and verified server startup
  • Set up Tailwind CSS with the exact Catppuccin Mocha color palette

Security Implementation (45 minutes)

  • Generated Phoenix authentication system
  • Implemented full TOTP two-factor authentication
  • Created QR code generation for authenticator apps
  • Built backup code system for account recovery
  • Integrated TOTP verification into login flow

The TOTP implementation was particularly impressive. Claude 4 didn’t just add a basic library—it built a complete 2FA system with:

  • Server-side QR code generation using SVG
  • Backup code management
  • Secure session handling
  • Recovery mechanisms

Content Management (25 minutes)

  • Created Post model with markdown rendering
  • Implemented automatic slug generation
  • Added tag management system
  • Built excerpt auto-generation
  • Created publish/unpublish workflow with timestamps

The Testing Reality Check

Here’s where I expected things to fall apart. AI-generated code usually works in demos but breaks when you try to test it.

When we ran the test suite, several tests failed—exactly what I expected. But Claude 4’s response surprised me again.

It immediately identified the issues:

  • Post management routes required authentication
  • Test fixtures needed proper user associations
  • Auto-generated timestamps were conflicting with hardcoded test data

The fixes were surgical and correct. Within 15 minutes, we went from failing tests to 129 passing tests. No debug sessions, no trial and error—just systematic problem identification and resolution.

What Impressed Me Most

Three things stood out during this development session:

1. Research-Driven Development

Claude 4 didn’t just generate code based on its training data. It actively researched current best practices, compared options, and made informed architectural decisions.

2. Adaptive Problem Solving

When the Fly.io limitation emerged, it didn’t try to force a square peg into a round hole. It found a better solution and explained the tradeoffs clearly.

3. Testing Consciousness

The AI didn’t just write features—it ensured they were properly tested. When authentication broke the test suite, it understood the problem domain well enough to fix it correctly.

What Still Concerns Me

I’m not ready to hand over the keys to the kingdom just yet. While impressive, this was still a relatively straightforward CRUD application. Questions remain:

  • How would it handle complex business logic?
  • Could it debug production issues?
  • Would it make good architectural decisions for larger systems?
  • How about performance optimization and scaling challenges?

The Current State

After 2 hours of development, we have:

✅ Complete authentication system with 2FA
✅ Content management with markdown support
✅ Beautiful Catppuccin-themed UI
✅ 129 passing tests
✅ Production-ready PostgreSQL setup
✅ Tag management and content organization

The foundation is surprisingly solid. Not just “demo-quality” code, but something I’d actually be comfortable deploying.

The Adventure Continues

We’re not done yet. Still ahead:

  • Svelte integration for rich interactions
  • Infinite scroll homepage design
  • Tag filtering and search
  • Deployment to Gigalixir with hot reloading

Will Claude 4 maintain this level of competence as the complexity increases? Can it handle the nuanced UX decisions required for a great user experience?

Stay tuned for the next chapter of this AI development adventure…


This blog post was written during the development of this very blog system. Meta? Absolutely. Exciting? You bet.