See It In Action

Interactive Demos

See The Architech in action with these step-by-step demonstrations.


Demo 1: 60-Second Hello World

Watch a complete project go from nothing to running in 60 seconds.

Terminal Output

$ architech new my-app --genome hello-world
 
πŸš€ Creating new project with genome: hello-world
πŸ” Resolving genome...
βœ… Resolved genome: hello-world
πŸ“ Source: local-marketplace
πŸ“Š Complexity: simple (3 modules)
⏱️  Estimated time: ~30 seconds
 
πŸ” Validating Genome
   Checking project configuration and dependencies
βœ… Completed in 3ms
 
πŸ“‹ Planning Execution
   Analyzing dependencies and creating execution plan
πŸ” Building dependency graph for 3 modules
βœ… Dependency graph built successfully
  πŸ“Š Nodes: 3
  πŸ”— Total dependencies: 0
 
🎯 Executing blueprint: Next.js 15+ Base Setup
  ⚑ Running command: npx create-next-app@latest...
  βœ… Next.js installed
 
🎯 Executing blueprint: Shadcn UI Components
  πŸ“„ Creating src/components/ui/button.tsx
  πŸ“„ Creating src/components/ui/card.tsx
  βœ… Shadcn UI configured
 
🎯 Executing blueprint: Welcome Screen
  πŸ“„ Creating src/app/page.tsx
  βœ… Welcome screen added
 
✨ Project created successfully!
 
πŸ“¦ Next steps:
   cd my-app
   npm install
   npm run dev
 
🌐 Your app will be running at http://localhost:3000

Time: 45 seconds from command to running app


Demo 2: Before & After - The Power of Generation

Before The Architech

Setting up authentication manually:

  1. Research auth libraries (30 min)
  2. Read Better Auth docs (60 min)
  3. Install dependencies (5 min)
npm install better-auth @better-auth/nextjs
  1. Create auth config (45 min)
// src/lib/auth/config.ts - 120 lines
// Manually write all configuration
  1. Create API routes (60 min)
// src/app/api/auth/[...all]/route.ts - 80 lines
// Handle all auth endpoints
  1. Create auth hooks (90 min)
// src/hooks/use-auth.ts - 200 lines
// Wrap with TanStack Query
// Handle sessions, login, logout, etc.
  1. Create UI components (120 min)
// src/components/auth/LoginForm.tsx - 150 lines
// src/components/auth/RegisterForm.tsx - 180 lines
// src/components/auth/ProfileEditor.tsx - 200 lines
  1. Connect database (60 min)
  2. Test everything (90 min)
  3. Debug issues (60 min)

Total time: ~9 hours
Lines of code written: ~800 lines
Risk of bugs: High


With The Architech

Setting up authentication:

architech new my-saas --genome saas-starter

Time: 10 minutes (mostly npm install)
Lines of code written by you: 0
Lines of code generated: ~800 lines (same functionality)
Risk of bugs: Low (battle-tested patterns)

What you got:

  • βœ… Complete auth config
  • βœ… All API routes
  • βœ… TanStack Query hooks (Golden Core)
  • βœ… Beautiful UI components (shadcn/ui)
  • βœ… Database integration
  • βœ… Full test coverage
  • βœ… TypeScript types
  • βœ… Error handling

Time saved: ~8 hours and 50 minutes


Demo 3: The Golden Core in Action

Without Golden Core (Inconsistent Patterns)

Developer A's data fetching:

// Uses fetch directly
const [products, setProducts] = useState([]);
 
useEffect(() => {
  fetch('/api/products')
    .then(res => res.json())
    .then(setProducts);
}, []);

Developer B's data fetching:

// Uses SWR
import useSWR from 'swr';
const { data: orders } = useSWR('/api/orders', fetcher);

Developer C's data fetching:

// Uses TanStack Query
import { useQuery } from '@tanstack/react-query';
const { data: users } = useQuery({
  queryKey: ['users'],
  queryFn: fetchUsers
});

Result: Three different patterns, three different behaviors, inconsistent caching, hard to maintain.


With Golden Core (Consistent Everywhere)

All developers use the same pattern:

// Feature 1
const { data: products } = useProducts();
 
// Feature 2
const { data: orders } = useOrders();
 
// Feature 3
const { data: users } = useUsers();

All generated by The Architech:

  • Same TanStack Query pattern
  • Same caching strategy
  • Same error handling
  • Same TypeScript types
  • Same testing approach

Result: Predictable, maintainable, composable code.


Demo 4: File Structure Comparison

Generated Project Structure

my-saas-app/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/                      # Next.js App Router
β”‚   β”‚   β”œβ”€β”€ (auth)/
β”‚   β”‚   β”‚   β”œβ”€β”€ login/
β”‚   β”‚   β”‚   β”œβ”€β”€ register/
β”‚   β”‚   β”‚   └── profile/
β”‚   β”‚   β”œβ”€β”€ (dashboard)/
β”‚   β”‚   β”‚   β”œβ”€β”€ teams/
β”‚   β”‚   β”‚   └── settings/
β”‚   β”‚   β”œβ”€β”€ api/
β”‚   β”‚   β”‚   β”œβ”€β”€ auth/[...all]/    # Better Auth routes
β”‚   β”‚   β”‚   β”œβ”€β”€ teams/            # Teams API
β”‚   β”‚   β”‚   β”œβ”€β”€ payments/         # Stripe webhooks
β”‚   β”‚   β”‚   └── users/            # User API
β”‚   β”‚   β”œβ”€β”€ layout.tsx
β”‚   β”‚   └── page.tsx
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ ui/                   # shadcn/ui (40+ components)
β”‚   β”‚   β”œβ”€β”€ auth/                 # Auth components
β”‚   β”‚   β”œβ”€β”€ teams/                # Team components
β”‚   β”‚   └── layouts/              # Layout components
β”‚   β”œβ”€β”€ features/
β”‚   β”‚   β”œβ”€β”€ auth/                 # Auth feature
β”‚   β”‚   β”‚   β”œβ”€β”€ hooks/            # TanStack Query hooks
β”‚   β”‚   β”‚   β”œβ”€β”€ stores/           # Zustand stores
β”‚   β”‚   β”‚   β”œβ”€β”€ types/            # TypeScript types
β”‚   β”‚   β”‚   └── schemas/          # Zod schemas
β”‚   β”‚   β”œβ”€β”€ teams/                # Teams feature
β”‚   β”‚   └── payments/             # Payments feature
β”‚   β”œβ”€β”€ lib/
β”‚   β”‚   β”œβ”€β”€ db/
β”‚   β”‚   β”‚   β”œβ”€β”€ schema/           # Drizzle schemas
β”‚   β”‚   β”‚   └── client.ts         # Database client
β”‚   β”‚   β”œβ”€β”€ auth/
β”‚   β”‚   β”‚   └── config.ts         # Auth configuration
β”‚   β”‚   β”œβ”€β”€ stripe/
β”‚   β”‚   β”‚   └── client.ts         # Stripe configuration
β”‚   β”‚   └── query/
β”‚   β”‚       └── client.ts         # TanStack Query setup
β”‚   β”œβ”€β”€ hooks/                    # Shared hooks
β”‚   └── stores/                   # Shared stores
β”œβ”€β”€ __tests__/
β”‚   β”œβ”€β”€ unit/
β”‚   └── e2e/
β”œβ”€β”€ .env.example                  # Environment template
β”œβ”€β”€ drizzle.config.ts             # Database config
β”œβ”€β”€ next.config.js                # Next.js config
β”œβ”€β”€ tailwind.config.ts            # Tailwind config
β”œβ”€β”€ tsconfig.json                 # TypeScript config
β”œβ”€β”€ vitest.config.ts              # Test config
└── package.json

Files generated: 150+
Lines of code: 8,000+
All yours to modify: 100%

Every file is readable. Every pattern is consistent. Every line is production-ready.


Demo 5: Generated Code Quality

Example: Generated TanStack Query Hook

File: src/hooks/use-products.ts

/**
 * Products Data Hook
 * 
 * Auto-generated by The Architech from Drizzle schema
 * Follows Golden Core pattern (TanStack Query)
 */
 
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
import type { Product, InsertProduct } from '@/lib/db/schema';
 
// Query keys for consistent caching
const productKeys = {
  all: ['products'] as const,
  detail: (id: string) => [...productKeys.all, id] as const,
};
 
/**
 * Fetch all products
 * 
 * @example
 * ```tsx
 * function ProductList() {
 *   const { data: products, isLoading } = useProducts();
 *   if (isLoading) return <Spinner />;
 *   return products.map(p => <ProductCard key={p.id} product={p} />);
 * }
 * ```
 */
export function useProducts() {
  return useQuery({
    queryKey: productKeys.all,
    queryFn: async (): Promise<Product[]> => {
      const response = await fetch('/api/products');
      if (!response.ok) throw new Error('Failed to fetch products');
      return response.json();
    },
    staleTime: 5 * 60 * 1000, // 5 minutes
    gcTime: 10 * 60 * 1000,   // 10 minutes
  });
}
 
/**
 * Create a new product
 */
export function useCreateProduct() {
  const queryClient = useQueryClient();
  
  return useMutation({
    mutationFn: async (data: InsertProduct): Promise<Product> => {
      const response = await fetch('/api/products', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify(data),
      });
      
      if (!response.ok) {
        const error = await response.json();
        throw new Error(error.message || 'Failed to create product');
      }
      
      return response.json();
    },
    onSuccess: () => {
      // Automatically invalidate cache to show new product
      queryClient.invalidateQueries({ queryKey: productKeys.all });
    },
  });
}
 
// βœ… Full TypeScript typing
// βœ… JSDoc comments
// βœ… Error handling
// βœ… Cache invalidation
// βœ… Consistent pattern
// βœ… Production-ready

Notice:

  • Professional code comments
  • Full TypeScript typing
  • Error handling built-in
  • Following best practices
  • Ready to use immediately

Demo 6: Execution Timeline

Genome: saas-starter (15 modules)

00:00 - Command entered
00:01 - Genome resolved (local-marketplace)
00:02 - Dependency graph built (15 modules, 0 conflicts)
00:03 - Next.js base created (create-next-app)
00:35 - npm packages installed (332 packages)
00:40 - Drizzle ORM configured
00:42 - Better Auth set up
00:45 - Stripe integration added
00:50 - TanStack Query configured
00:55 - Zustand stores generated
01:02 - shadcn/ui components added
01:15 - Auth feature generated (12 components)
01:30 - Teams feature generated (15 components)
01:45 - Payments feature generated (18 components)
02:00 - Testing suite configured (Vitest + Playwright)
02:10 - ESLint + Prettier configured
02:15 - Sentry monitoring added
02:20 - Docker + Vercel deployment config
02:30 - Final validation
02:32 - βœ… Generation complete

Total: 2 minutes 32 seconds

Compare to manual setup: ~40 hours of work


Demo 7: The Headless Pattern

Changing UI Libraries Without Touching Logic

Start: SaaS with shadcn/ui

File: src/features/teams/components/TeamsDashboard.tsx (shadcn version)

import { useTeams } from '../hooks/use-teams';  // ← Headless hook
import { Button } from '@/components/ui/button';  // ← shadcn
import { Card } from '@/components/ui/card';
 
export function TeamsDashboard() {
  const { data: teams } = useTeams();  // ← No UI dependency
  
  return (
    <div>
      {teams?.map(team => (
        <Card key={team.id}>{/* shadcn Card */}</Card>
      ))}
    </div>
  );
}

Switch to Material-UI: Only change imports!

import { useTeams } from '../hooks/use-teams';  // ← Same hook!
import { Button, Card } from '@mui/material';  // ← MUI instead
 
export function TeamsDashboard() {
  const { data: teams } = useTeams();  // ← Unchanged!
  
  return (
    <div>
      {teams?.map(team => (
        <Card key={team.id}>{/* MUI Card */}</Card>
      ))}
    </div>
  );
}

What changed: 1 line (import statement)
What stayed the same: All business logic, all hooks, all API routes, all database code

Time to swap entire UI library: ~1 hour (just components, no logic)


Demo 8: Code Ownership - You Control Everything

Generated File with Annotations

// src/features/auth/hooks/use-auth.ts
// ↑ YOU OWN THIS FILE - Modify freely!
 
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
// ↑ Standard libraries you already know
 
import type { User, LoginData } from '../types';
// ↑ Generated types from your feature contract
 
/**
 * Hook to get current user session
 * 
 * CUSTOMIZE: Add caching strategy, add optimistic updates, etc.
 */
export function useSession() {
  return useQuery({
    queryKey: ['session'],
    queryFn: async (): Promise<User | null> => {
      const res = await fetch('/api/auth/session');
      if (!res.ok) return null;
      return res.json();
    },
    staleTime: 5 * 60 * 1000,  // ← CHANGE THIS if you want
  });
}
 
/**
 * Hook to login
 * 
 * CUSTOMIZE: Add 2FA, add remember me, add rate limiting, etc.
 */
export function useLogin() {
  const queryClient = useQueryClient();
  
  return useMutation({
    mutationFn: async (credentials: LoginData) => {
      // ← ADD YOUR CUSTOM VALIDATION HERE
      const res = await fetch('/api/auth/login', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify(credentials),
      });
      if (!res.ok) throw new Error('Login failed');
      return res.json();
    },
    onSuccess: (user) => {
      // ← ADD YOUR CUSTOM SUCCESS LOGIC
      queryClient.setQueryData(['session'], user);
      queryClient.invalidateQueries({ queryKey: ['user'] });
    },
  });
}
 
// βœ… No magic
// βœ… No black boxes
// βœ… Just clean TypeScript
// βœ… Modify anything you want
// βœ… YOU OWN THIS

This is not vendor lock-in. This is code ownership.


Demo 9: Error Messages That Help

Example 1: Genome Not Found

$ architech new my-app --genome sas-starter
 
❌ Genome not found: "sas-starter"
 
πŸ” Searched in:
  βœ— local-marketplace
  βœ— npm-package
  βœ— custom-local (none configured)
 
πŸ’‘ Did you mean one of these?
  β€’ architech new my-app --genome saas-starter
  β€’ architech new my-app --genome saas
  β€’ architech new my-app --genome full-saas
 
πŸ“– Available genomes:
  β€’ hello-world
  β€’ saas-starter
  β€’ blog
  β€’ ai-app
  β€’ web3
  ... and 1 more
 
πŸ“‹ List all genomes:
  architech list-genomes
 
πŸ› οΈ Or use a file path:
  architech new /path/to/my-genome.genome.ts

Notice: Helpful suggestions, fuzzy matching, clear next steps.


Example 2: Missing Prerequisites

$ architech new my-app --genome saas-starter
# ... generation starts ...
 
❌ Error: Database configuration required
 
πŸ’‘ Action needed:
  1. Sign up for database (free tier available):
     β†’ Neon: https://neon.tech
     β†’ Supabase: https://supabase.com
  
  2. Get connection string
  
  3. Add to .env:
     DATABASE_URL="postgresql://user:pass@host:5432/db"
 
πŸ“– See troubleshooting guide:
  https://docs.architech.dev/troubleshooting#database-issues

Demo 10: Module Dependency Resolution

Smart Dependency Graph

Input genome:

modules: [
  { id: 'features/teams-management/frontend/shadcn' },  // Requires many things!
]

The Architech automatically resolves:

πŸ” Analyzing dependencies...

teams-management/frontend/shadcn requires:
  β†’ features/teams-management/backend (auto-added)
  β†’ ui/shadcn-ui (auto-added)
  β†’ framework/nextjs (auto-added)

teams-management/backend requires:
  β†’ database/drizzle (auto-added)
  β†’ auth/better-auth (auto-added)

Execution order (topological sort):
  1. framework/nextjs
  2. database/drizzle
  3. auth/better-auth  
  4. ui/shadcn-ui
  5. features/teams-management/backend
  6. features/teams-management/frontend/shadcn

βœ… All prerequisites satisfied
βœ… No conflicts detected

You wrote: 1 module
The Architech added: 5 prerequisites
Result: Everything works together perfectly


Demo 11: Tech Stack Layer Auto-Generation

From Contract to Code

Input: Feature contract

// marketplace/features/my-feature/contract.ts
 
export interface Task {
  id: string;
  title: string;
  completed: boolean;
  createdAt: string;
}
 
export interface CreateTaskData {
  title: string;
}

The Architech auto-generates (tech-stack layer):

1. types.ts - TypeScript definitions
2. schemas.ts - Zod validation:

export const TaskSchema = z.object({
  id: z.string().uuid(),
  title: z.string().min(1),
  completed: z.boolean(),
  createdAt: z.string().datetime(),
});

3. hooks.ts - TanStack Query hooks:

export function useTasks() {
  return useQuery({
    queryKey: ['tasks'],
    queryFn: fetchTasks,
  });
}

4. stores.ts - Zustand stores:

export const useTaskStore = create<TaskState>()(...);

Result: 600+ lines of code generated from a 20-line contract.


Demo 12: Interactive Genome Picker

$ architech new my-project
 
🎯 Choose a genome for your project:
 
? Select a genome: (Use arrow keys)
❯ 🟒 Hello World - Minimal Next.js starter (60 seconds)
  🟑 SaaS Starter - Full-featured SaaS platform (10 minutes)
  🟑 Blog - Modern blog with CMS (5 minutes)
  🟑 AI App - AI-powered application (8 minutes)
  πŸ”΄ Web3 DApp - Blockchain application (12 minutes)
  πŸ”΄ Ultimate Showcase - Everything enabled (15 minutes)
  πŸ“ Use custom genome file path...
 
[↑/↓ to move, Enter to select]

User experience: Point and click, no need to remember genome names.


Want to See It Live?

Option 1: Try It Yourself

# Install (5 minutes)
git clone https://github.com/the-architech-xyz/cli.git
cd cli && npm install && npm run build && npm link
 
# Generate (60 seconds)
architech new demo-app --genome hello-world
cd demo-app && npm install && npm run dev
 
# Open browser
open http://localhost:3000

Option 2: Watch Video Tutorial (Coming Soon)

  • 3-minute overview video
  • Step-by-step walkthrough
  • Architecture explanation
  • Live coding demonstration

Option 3: Join Live Demo

Community Demo Sessions: Every Friday at 3 PM UTC
Join on Discord (opens in a new tab)


Ready to try? β†’ Getting Started