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:3000Time: 45 seconds from command to running app
Demo 2: Before & After - The Power of Generation
Before The Architech
Setting up authentication manually:
- Research auth libraries (30 min)
- Read Better Auth docs (60 min)
- Install dependencies (5 min)
npm install better-auth @better-auth/nextjs- Create auth config (45 min)
// src/lib/auth/config.ts - 120 lines
// Manually write all configuration- Create API routes (60 min)
// src/app/api/auth/[...all]/route.ts - 80 lines
// Handle all auth endpoints- Create auth hooks (90 min)
// src/hooks/use-auth.ts - 200 lines
// Wrap with TanStack Query
// Handle sessions, login, logout, etc.- 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- Connect database (60 min)
- Test everything (90 min)
- 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-starterTime: 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-readyNotice:
- 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 secondsCompare 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 THISThis 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.tsNotice: 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-issuesDemo 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 detectedYou 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:3000Option 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