A publishing and page-building system for 7 websites. Takes content from the Content Studio and turns it into live pages. Content Studio → Web Developer → Live Pages.
What This Is
The Web Developer is a publishing and page-building system for Dave Hajdu's websites. It takes content, from the Content Studio or from direct conversation, and turns it into live pages on any of Dave's 7 websites. Each site has a different tech stack, design system, and publishing process. The Web Developer knows how to build for all of them.
It's the second half of a two-part pipeline:
blog.md, social.md, seo.md, page.md, images.md / card.png.Architecture
Three-Layer Pattern (Same as Content Studio)
Both systems share the same foundational architecture: data, logic, and workflow.
/studio, /onboard. Web Developer: /publish, /build.Folder Structure
The web-developer/ root contains CLAUDE.md (router: sites, references, rules) and a context/ folder with workflow.md (publishing workflow for blog), workflow-diagram.html (visual diagram, AIO style), and plan.md (this file). Alongside are per-site context folders:
Skills
Skills live under ~/.claude/skills/:
studio/SKILL.md → /studio (produce content)onboard/SKILL.md → /onboard (set up new clients)publish/SKILL.md → /publish (publish blog posts)build/SKILL.md → /build (create any page) NEWThe 7 Sites
caio-coach
Tech: Static HTML. Blog format: standalone .html files in blog/posts/. Status: Fully wired.
aio-website
Tech: Next.js 16, Supabase. Blog format: static HTML in /public/. Status: Site config done.
davehajdu
Tech: Next.js 16. Blog format: JSON data plus structured blocks in posts-data.ts. Status: Site config done.
edge8
Tech: Static HTML. Blog format: standalone .html files in public/post/. Status: Site config done.
fab-four
Tech: Next.js 15 (planned). Blog format: MDX files (planned). Status: Scaffold only.
mahjong-tarot
Tech: Next.js 14 (Pages Router). Blog format: JSX components in pages/blog/posts/. Status: Site config done.
bhutan
Tech: TBD. Blog format: TBD. Status: Empty shell.
Skill 1: /publish (Blog Publishing)
Takes an approved blog post from the Content Studio and publishes it to a website. Same steps every time. No creative decisions, it's a machine.
Workflow: 4 Phases, 9 Steps
- Locate content: find blog.md and seo.md in content-studio/{project}/content/{slug}/
- Read and parse: extract title, body, meta tags, schema, hero image
- Optimize image: WebP (Pillow or sips), max 1200px, under 200KB
- Build page: construct full page using site's template, components, and design tokens
- Update blog listing: insert new post card at top of blog index
- Update navigation chain: add to nav-index.md, update prev/next links
- Patch previous post: add "next" link pointing to new post
- Update sitemap: add new URL to sitemap.xml
- Git commit and deploy: stage explicit files, commit with blog: publish "{title}", run deploy command
Phase 2 build includes: document head (meta, OG, Twitter Card, JSON-LD from seo.md); site navigation with correct relative paths; hero/header with breadcrumb, category, title; post meta (date, reading time, category); article content (markdown → site-specific HTML/JSX components); internal links (3 to 4) and external links (1 to 2), 5 total per post; FAQ section (from seo.md structured data); related reads (2 recent posts from nav-index); CTA section; prev/next navigation; footer.
Site-Specific Variations
.html file. Next.js JSON (Dave Hajdu): JSON entry plus blocks. Next.js JSX (Mahjong Tarot): .jsx component.blog/images/. Next.js JSON: public/images/. Next.js JSX: public/images/blog/.<article> in HTML. Next.js JSON: add to JSON array. Next.js JSX: add to POSTS array in JSX.bash push.sh. Next.js JSON: git push to Vercel. Next.js JSX: git push to GitHub Pages.- Skill built,
~/.claude/skills/publish/SKILL.md - Tested, published Day 8 blog post to CAIO Coach
- CAIO Coach fully wired, template, components, nav-index, style guide
- Remaining sites need deeper context (template extraction, component mapping)
Skill 2: /build (Page Creation), Planned
Create any page on any website. Landing pages, product pages, info pages, form pages. More flexible than /publish: every page is different, requires conversation and creative decisions.
/publish is a machine: same inputs, same steps, every time. /build is creative: different layouts, different components, needs more conversation.
Content Sources
page.md exists in the studio, read it./build creates it./build develops the content and builds it in one pass.Workflow: 5 Phases, 14 Steps
- Which site? Read site-config.md
- What page? Landing, info, product, form, custom
- Content source? Studio, direct, or hybrid
- Gather or develop content. If from studio, read page.md. If direct, ask Dave what goes on the page: sections, messaging, CTAs, images
- Confirm structure: section-by-section outline before building
- Select layout: read site's page-patterns.md, pick layout pattern
- Build page: use site's design system, components, conventions
- Forms: if the page has a form, read site's forms.md for backend, spam protection, validation, confirmation UX
- SEO: meta tags, OG, structured data
- Present for review, iterate
- Approval gate: explicit confirmation before deploying
- Place file: save to correct location per site architecture
- Update navigation: add to site nav if it's a core page
- Git commit and deploy
Per-Site Context Needed for /build
Each site needs these additional context files:
page-patterns.md. Layout patterns available on this site (hero plus sections, sidebar, full-width, card grid, etc.). Different sites have different layouts.forms.md. Form backends, spam protection, validation, confirmation UX. Forms have specific security and UX concerns.component-library.md. All reusable components (heroes, CTAs, cards, stats, testimonials, etc.). Build pages from existing pieces.Form Handling with Spam Protection
Every form built by /build includes spam protection by default.
Honeypot field (hidden input, bots fill it, humans don't). Time-based check (reject submissions faster than 3 seconds). Server-side validation if endpoint available.
Honeypot field. Server action or API route for processing. Rate limiting middleware. Turnstile/reCAPTCHA if high-traffic form.
Per-Site Form Backend Options
Example: /build in Action
"3 Core Skills of an AI Officer" page on AIO Website. Dave runs /build aio-website, /build reads site-config.md and page-patterns.md, asks clarifying questions, presents a section outline (hero, three skill sections, CTA), Dave confirms, /build creates the HTML page using the AIO design system, places it at /public/three-core-skills.html, updates navigation, commits and deploys.
- Not yet built
- Needs:
page-patterns.md,forms.md, andcomponent-library.mdper site - Needs:
/buildskill file - Needs: content studio update to support "page" content type
Content Studio Updates Needed
The Content Studio currently supports two content types: blog and social. To support /build, it needs a third: page content.
Current Content Types
blog.md, seo.md, social.md, images.md.social.md.New Content Type: Page
page.md, seo.md.Page Workflow
page.md with all section content./build to turn into a live page.Not all pages need the content studio. Simple structural pages (contact, pricing calculator) can go straight to /build. The studio is for content-heavy pages where the writing matters.
Updated Entry Point
/studio asks: What are you making? Blog (blog workflow, unchanged), Social (social workflow, unchanged), or Page (page workflow, new). Then: which project?
Implementation Order
Foundation (Complete)
Deeper Context for Remaining Sites
/build Skill
~/.claude/skills/build/SKILL.md)Content Studio, Page Content Type
Testing
Summary: Four Skills, One Pipeline
/studio. Produce content (blog, social, page). Use when you need to write something./onboard. Set up a new client's content studio. Use when adding a new brand./publish. Publish a blog post to a website. Use when a blog is approved and ready./build. Create any page on any website. Use when you need a new page (with or without studio content).The Pattern Across Everything
Data equals context files (voice, audience, tech stack, templates).
Logic equals instructions (CLAUDE.md, workflow rules, editorial lenses).
Workflow equals skills (slash commands that chain the process).
Three foundational concepts. Built once, used everywhere.