One-Shot Directory Website Generator: From topic to deployed website in one automated workflow.
Turn any topic into a complete, SEO-optimized directory website with just a topic name and a Jina API key. The system automatically researches, designs, builds, and deploys a full NextJS directory with 50-100+ pages optimized for Google.
Give it:
- A topic ("Irish heritage sites", "Coworking spaces in London", "Best coffee shops in NYC")
- Jina API key (for web research)
- HTML/CSS/JS design (optional - it'll generate one if you don't have it)
Get:
- Complete NextJS directory website
- 50-100+ SEO-optimized pages (homepage, category pages, tag pages, individual item pages)
- Comprehensive data researched from real sources
- Clickbait titles optimized for Google ("Best X in Y", "Everything You Need to Know")
- Dynamic routing for all pages
- Search & filter functionality
- Responsive design
- Ready to deploy to Vercel, Digital Ocean, Netlify, etc.
- Claude Code CLI installed (get it here)
- Node.js (for NextJS)
- Jina API Key (get free key at jina.ai)
- GitHub account (optional, for deployment)
# Clone this repository
git clone https://github.com/IncomeStreamSurfer/claude-code-agents-wizard-v2.git
cd claude-code-agents-wizard-v2
# Checkout the directory-builder branch
git checkout directory-builder-system
# Start Claude Code in this directory
claudeOnce Claude Code is running in this directory:
You: "Make me a directory about [YOUR TOPIC]"
Claude will ask you for:
- Jina API Key - For researching and scraping data
- Number of items - How many directory entries (default: 50)
- HTML/CSS/JS design - Provide your own OR let the system generate one
Then Claude automatically:
- Generates/saves design (if needed)
- Researches topic and creates comprehensive JSON schema
- Spawns 10+ parallel agents to research and create all data
- Builds complete NextJS website with SEO optimization
- Pushes to GitHub
- Gives you deployment instructions
You: "Make me a directory about Irish heritage sites"
Claude: "Great! I'll help you build a directory about Irish heritage sites. I need:
1. β
Topic: Irish heritage sites
2. β What's your Jina API key?
3. β Do you have HTML/CSS/JS design code, or should I generate one?"
You: "Here's my Jina key: jina_xxxxx. Generate a design for me."
Claude: "Perfect! How many heritage sites do you want in the directory? (Default: 50)"
You: "50 sites"
Claude:
β
Generating design...
β
Creating schema from research...
β
Spawning 10 data agents in parallel...
β
Building NextJS website...
β
Pushing to GitHub...
COMPLETE! Your Irish heritage sites directory is ready:
- 50 heritage sites researched
- 92 total pages generated:
* 1 homepage
* 50 individual site pages
* 10 category pages ("Best Castles in Ireland")
* 31 tag pages ("Top Family-Friendly Sites")
- GitHub: https://github.com/you/irish-heritage-sites
- Deploy: vercel deploy or push to Digital Ocean
USER INPUT β DESIGN β SCHEMA β DATA (PARALLEL) β NEXTJS β GITHUB
Step 1: Design Generation (if needed)
design-generatoragent creates HTML/CSS/JS design- Or uses your provided design
Step 2: Schema Creation
schema-creatoragent researches 5-7 real examples- Creates comprehensive JSON schema (40+ fields)
- Populates 3-5 example items
Step 3: Parallel Data Generation
- Spawns N
data-generatoragents simultaneously - Each agent researches and creates 5 items
- 10 agents = 50 items in parallel (10x faster!)
Step 4: NextJS Website Build
nextjs-builderagent creates complete site- SEO-OPTIMIZED pages:
- Homepage with search
- Individual page for EVERY item
- Category page for EVERY category ("Best X in Y")
- Tag page for EVERY unique tag ("Top Z Sites")
- Search page with filters
- All pages have clickbait meta titles/descriptions
- Sitemap with all pages
- Schema.org markup
- Dynamic routing
Step 5: GitHub Deployment
- Orchestrator pushes to GitHub
- Returns repository URL
- Provides deployment instructions
Example: 50 heritage sites with 30 unique tags and 8 categories:
- 1 homepage
- 50 individual item pages
- 8 category pages
- 30 tag pages
- 1 search page
- Total: 90 pages all optimized for Google
Individual Pages:
- "Kilkenny Castle - Everything You Need to Know | Heritage Guide"
- "Rock of Cashel Complete Guide - Hours, Tickets & Best Time"
- "Blarney Castle 2025: Skip the Line Tickets, Map & Tips"
Category Pages (Target "Best X in Y"):
- "Best Castles in Ireland - Top 25 Castles to Visit in 2025"
- "Best National Parks in Ireland - Complete Guide with Maps"
- "Best Historic Houses in Ireland - 15 Must-See Estates"
Tag Pages (Target Long-Tail Keywords):
- "Top Family-Friendly Heritage Sites - 32 Amazing Options"
- "Medieval Castles in Ireland - Complete Guide to 18 Sites"
- "Free Heritage Sites in Ireland - 12 Free Attractions"
- β Unique meta title for every page
- β Compelling meta description for every page
- β Sitemap.xml with all pages
- β robots.txt
- β Schema.org JSON-LD markup
- β Open Graph tags
- β Semantic HTML
- β Internal linking
- β Image alt text
- β Proper heading hierarchy
- Collects user inputs
- Coordinates all agents
- Manages workflow
- Handles GitHub deployment
- Creates HTML/CSS/JS design
- Tailwind CSS based
- Responsive and beautiful
- Topic-appropriate aesthetics
- Researches topic with Jina
- Creates comprehensive schema
- Populates example data
- 40+ fields per item
- Spawned 10+ at once
- Each creates 5 items
- Uses Jina for research
- Follows schema exactly
- Real, comprehensive data
- Converts design to NextJS
- Generates ALL pages
- SEO optimization
- Dynamic routing
- Search/filter
- Responsive
- Production-ready
All directory data is stored as JSON files:
your-directory-site/
βββ app/
β βββ page.tsx (Homepage - displays ALL items)
β βββ [slug]/page.tsx (Individual item pages - reads one JSON file each)
β βββ category/[category]/page.tsx (Category pages - filters JSON by category)
β βββ tag/[tag]/page.tsx (Tag pages - filters JSON by tag)
β βββ search/page.tsx (Search page - searches across all JSON)
β βββ layout.tsx (Layout with header/footer)
β βββ sitemap.ts (Dynamic sitemap - lists all JSON files as pages)
βββ components/
β βββ Header.tsx
β βββ Footer.tsx
β βββ ItemCard.tsx
β βββ SearchBar.tsx
βββ lib/
β βββ data.ts (Reads ALL JSON files from /public/sites/)
β βββ seo.ts (SEO utilities)
βββ public/
β βββ sites/ β YOUR DATA STORED HERE
β βββ item-1.json (50 JSON files)
β βββ item-2.json
β βββ item-3.json
β βββ ... (47 more files)
βββ package.json
βββ next.config.js
1. JSON files = Source of Truth
- All your directory data lives in
/public/sites/*.json - Each JSON file = one item in your directory
- Files follow the schema created by
schema-creatoragent
2. NextJS reads files at build time
// lib/data.ts reads ALL JSON files
export function getAllItems() {
const sitesDirectory = path.join(process.cwd(), 'public/sites');
const filenames = fs.readdirSync(sitesDirectory);
return filenames.map(filename => {
const fileContents = fs.readFileSync(path.join(sitesDirectory, filename), 'utf8');
return JSON.parse(fileContents);
});
}3. Pages are generated dynamically from JSON
- Homepage: Shows all 50 items (reads all JSON files)
- Individual pages: Shows one item each (reads one JSON file)
- Category pages: Shows items filtered by category
- Tag pages: Shows items filtered by tags
4. Categories and Tags are extracted automatically
// System reads all JSON files and extracts unique values
export function getAllCategories() {
const items = getAllItems();
const categories = new Set();
items.forEach(item => {
item.categories.forEach(cat => categories.add(cat));
});
return Array.from(categories);
// Example: ["castles", "parks", "abbeys", "museums"]
}
export function getAllTags() {
const items = getAllItems();
const tags = new Set();
items.forEach(item => {
item.tags.forEach(tag => tags.add(tag));
});
return Array.from(tags);
// Example: ["family-friendly", "free-admission", "medieval", "outdoor", etc.]
}Want to add more items after the initial build?
Option 1: Add JSON files manually
# Just add a new JSON file to /public/sites/
# Make sure it follows the same schema
/public/sites/new-item.jsonOption 2: Run the system again
You: "Add 20 more items to my directory"
Claude:
- Reads existing schema
- Spawns 4 data-generator agents (20 Γ· 5 = 4)
- Creates 20 new JSON files in /public/sites/
- You now have 70 items total
Then rebuild:
npm run buildWhat happens automatically:
- Homepage now shows 70 items (was 50)
- 20 new individual item pages created
- If new categories exist β new category pages created
- If new tags exist β new tag pages created
- Sitemap updated with all new pages
- All pages regenerated with new data
Example:
- Started with: 50 items = 90 pages
- Added: 20 items with 5 new tags
- Now have: 70 items = 115 pages (homepage + 70 items + categories + 45 tags)
JSON FILES (Source of Truth)
β
NextJS Build Process
β
Reads all /public/sites/*.json
β
Extracts categories and tags
β
Generates Static Pages:
βββ Homepage (all items)
βββ Individual pages (one per JSON file)
βββ Category pages (filtered by category)
βββ Tag pages (filtered by tag)
β
User visits site β Super fast static pages
- JSON = Database: No need for actual database, JSON files are your data store
- Easy to edit: Just edit JSON files directly to update content
- Version control: All data is in git, easy to track changes
- Portable: Move your entire directory by copying JSON files
- Scalable: Add as many JSON files as you want
- Static = Fast: Pre-generated pages load instantly
- SEO-friendly: All content is in HTML at build time
cd your-directory-site
vercel deploy- Push to GitHub (done automatically)
- Connect repository in DO dashboard
- Configure build settings
- Deploy
cd your-directory-site
netlify deploynpm run build
# Upload .next/out folder to hostingTourism & Travel:
- Heritage sites directory
- Hotel/accommodation listings
- Restaurant guides
- Tourist attraction catalogs
- City guides
Business:
- Coworking space directories
- Office space listings
- Business service providers
- Consultant directories
Local:
- Coffee shop guides
- Bar/nightlife directories
- Shopping directories
- Service provider lists
Niche:
- Equipment rental catalogs
- Event venue directories
- Course/class listings
- Tool/resource directories
Your 200k Context Window:
- Manages entire workflow
- Coordinates all agents
- Tracks progress
- Ensures quality
Specialized Agents:
- Each has one job
- Works in own context
- No context pollution
- Expert-level output
Parallel Execution:
- 10 agents creating 5 items each
- 50 items in parallel
- 10x faster than sequential
- Scales to any size
SEO-First Approach:
- Every page optimized
- Clickbait titles
- Meta descriptions
- Comprehensive coverage
- Ranks on Google
-
More items = More pages = More traffic
- 50 items β 90+ pages
- 100 items β 150+ pages
- More pages = more chances to rank
-
Let it generate the design
- Unless you have specific branding
- Generated designs are beautiful
- Optimized for conversion
-
Use descriptive topics
- "Irish heritage sites" β
- "Heritage sites" β (too vague)
-
Deploy immediately
- Get it live and start ranking
- Iterate and improve later
-
Add more data over time
- Run the system again with more items
- Merge with existing site
This is an open system! Improvements welcome:
- Better SEO strategies
- New page types
- Design templates
- Agent optimizations
MIT - Use it, modify it, profit from it!
Built by Income Stream Surfer
Part of the Claude Code Agent Orchestration System v2.
Powered by:
- Claude Code's agent system
- Jina AI for research
- Next.js for blazing fast sites
- Tailwind CSS for beautiful designs
Ready to build a directory? Just run claude in this directory and say:
"Make me a directory about [YOUR TOPIC]"
π From topic to deployed website in one shot!