Building ArchLab: My Journey to Daily Architecture Practice

The Inspiration

As a software engineer constantly making architectural decisions, I realized I was learning system design the hard way - through production failures and post-mortems. I wanted to practice architectural thinking daily, like developers practice algorithms on LeetCode, but nothing existed for system design.

I tried sketching architectures on paper, but without feedback, I never knew if my designs were sound. That's when I decided to build ArchLab - an AI-powered platform where I could practice real architectural challenges and get intelligent feedback.

What I Learned

Building this taught me that progressive learning beats overwhelming analysis. My initial approach gave users too much feedback at once. The breakthrough was implementing the "hint system" - giving focused, single-aspect guidance that builds understanding incrementally.

I also discovered how challenging it is to make AI give accurate, honest feedback about architectural diagrams rather than hallucinating complex patterns that don't exist.

How I Built It

  • Frontend: React with HTML5 Canvas for the interactive drawing interface
  • AI Integration: Claude API with carefully crafted prompts for architectural analysis
  • Canvas Engine: Custom drawing system with snap-to-grid, element selection, and text editing
  • Kata Database: Curated real-world challenges across different domains and difficulty levels

The Biggest Challenge: Building a Strict Analysis Engine

The most difficult part was preventing the AI from pattern hallucination. Early versions would identify "microservices architecture" and "API gateway patterns" when users drew a single box labeled "web app."

My solution involved:

  • Explicit constraint prompts: "ONLY identify patterns that are ACTUALLY VISIBLE"
  • Progressive validation: Cross-referencing claims against actual diagram elements
  • Conservative fallbacks: Smart default analysis based on component count and types
  • Reality checks: "If only one component exists, don't assume complex distributed patterns"

This required dozens of prompt iterations and extensive testing to ensure the feedback was honest, accurate, and genuinely helpful rather than impressive-sounding but wrong.

The result is an analysis engine that guides users truthfully through their architectural journey, building real understanding rather than false confidence.

Built With

  • bolt.new
Share this project:

Updates