oneie
Version:
Build apps, websites, and AI agents in English. Zero-interaction setup for AI agents (Claude Code, Cursor, Windsurf). Download to your computer, run in the cloud, deploy to the edge. Open source and free forever.
1,092 lines (905 loc) • 32.3 kB
Markdown
title: Todo Landing Page
dimension: things
primary_dimension: things
category: todo-landing-page.md
tags: agent, ai, cycle
related_dimensions: connections, events, people, groups, things
scope: global
created: 2025-11-03
updated: 2025-11-03
version: 1.0.0
ai_context: |
This document is part of the things dimension in the todo-landing-page.md category.
Location: one/things/todo-landing-page.md
Purpose: Documents one platform: landing page & project onboarding v1.0.0
Related dimensions: connections, events, people
For AI agents: Read this to understand todo landing page.
# ONE Platform: Landing Page & Project Onboarding v1.0.0
**Focus:** Entry point for new creators - "Start a Project" instead of "Pick a Template"
**Process:** `Cycle 1-100 cycle sequence`
**Timeline:** 8-12 cycles per specialist per day
**Target:** Zero-friction creator onboarding (Wave 0 - ENTRY POINT)
**Integration:** Works with todo-onboard, todo-agents (via agent-clone)
## CRITICAL CONTEXT
**Current Problem:**
- Generic landing page ("Pick a template") doesn't guide creators
- Creators don't know where to start
- Templates are isolated (no context)
**Solution:**
- **"Start a Project"** workflow (not templates)
- **AI landing page generation** (paste URL/social → AI builds landing page)
- **Live demos** (see working examples before starting)
- **Guided paths** (beginner vs advanced)
- **Agent-powered** (agent-clone asks for context, generates content)
**User Journey:**
```
Land on one.ie
↓
See featured creators + demo projects
↓
Click "Start a Project"
↓
Choose: Beginner (simple project) or Advanced (dashboard)
↓
Beginner: "I have a URL" → Paste → AI generates landing page + product listings
Advanced: "I want a dashboard" → Linked to live demo
↓
Create account
↓
Onboarding guides them
↓
First creator ready to earn
```
## PHASE 1: FOUNDATION & SETUP (Cycle 1-10)
**Purpose:** Understand entry point landscape, map to ontology, plan implementation
### Cycle 1: Define "Start a Project" Concept
- [ ] Not "Pick a Template" - too generic
- [ ] Is "Start a Project" - guided journey
- [ ] Three paths for users:
1. **Beginner Path:** "I have a website/social"
- Paste URL or social profile
- AI extracts info (who they are, what they do)
- Generate landing page + product listings
- Easy setup, fast to sell
2. **Intermediate Path:** "I want to sell courses"
- Product creation workflow
- Course structure (modules, lessons)
- Student dashboard
- Certificate generation
3. **Advanced Path:** "I want a full dashboard"
- Creator analytics
- Team management
- Custom branding
- API access
- [ ] Each path shows a DEMO before committing
- [ ] Beginner demo: Working course site (like One.ie itself)
- [ ] Intermediate demo: Padel course example
- [ ] Advanced demo: Creator dashboard with metrics
### Cycle 2: Map to 6-Dimension Ontology
- [ ] **Groups:** Creator's project (group as container)
- [ ] **People:**
- [ ] Creator (initiates project)
- [ ] AI agent-clone (generates content)
- [ ] Platform admin (approves if needed)
- [ ] **Things:**
- [ ] project (new thing type)
- [ ] project_template (starter projects)
- [ ] landing_page (generated or custom)
- [ ] project_demo (working example)
- [ ] **Connections:**
- [ ] creator → project (owns)
- [ ] project → template (based_on)
- [ ] project → demo (showcases)
- [ ] agent-clone → project (generated)
- [ ] **Events:**
- [ ] project_created
- [ ] landing_page_generated
- [ ] demo_viewed
- [ ] project_published
- [ ] **Knowledge:**
- [ ] project_category (course, service, marketplace, portfolio)
- [ ] project_description (embedding for search)
- [ ] creator_niche (what they teach/sell)
### Cycle 3: Define Project Templates
- [ ] **Starter Projects** (not templates - frameworks):
1. **Blog/Portfolio**
- Landing page
- Blog posts (markdown)
- About page
- Contact form
- No CMS (manual updates)
- Perfect for: Writers, consultants, coaches
2. **Course Marketplace**
- Landing page
- Course listings
- Lesson structure
- Student enrollment
- Certificate generation
- Perfect for: Educators, experts, coaches
3. **Service Directory**
- Landing page
- Service listings
- Booking/scheduling
- Payment processing (X402)
- Client reviews
- Perfect for: Consultants, agencies, professionals
4. **Community/Membership**
- Landing page
- Member-only content
- Discussion forums
- Events calendar
- Tier-based access
- Perfect for: Communities, DAOs, groups
5. **Newsletter**
- Landing page
- Subscriber signup
- Email scheduling
- Archive of posts
- Paid tiers
- Perfect for: Writers, journalists, thought leaders
- [ ] Each template includes:
- [ ] Demo (live working example)
- [ ] Starter content (fills in blanks)
- [ ] Onboarding guide (how to customize)
- [ ] Success metrics (what to measure)
### Cycle 4: Plan AI Landing Page Generation (agent-clone)
- [ ] **Flow:**
1. User selects "I have a website/social"
2. Paste: Website URL OR Social profile (Twitter, LinkedIn, YouTube)
3. Agent-clone calls:
- [ ] WebFetch to read URL content
- [ ] Extract: Name, bio, what they do, links
- [ ] Claude to summarize + understand niche
4. Agent generates:
- [ ] Landing page headline
- [ ] Hero image (or template)
- [ ] Value proposition
- [ ] About section
- [ ] Services/products list
- [ ] Call-to-action
5. User reviews + edits
6. Landing page published
- [ ] **What if no URL?**
- [ ] Chat-based: Agent asks questions
- [ ] "What do you teach/sell?"
- [ ] "Who is your audience?"
- [ ] "What's your unique angle?"
- [ ] Agent builds landing page from conversation
### Cycle 5: Define Demo Projects
- [ ] **Live Demos** (working examples users can interact with):
1. **Padel Course Demo**
- Landing page (full sales page)
- Course: "Master Padel Basics"
- 3 modules, 9 lessons
- Student dashboard
- Certificate
- Pricing: $99 (via X402)
- URL: https://one.ie/demo/padel-course
- Built with: Course Marketplace template
2. **Coaching Services Demo**
- Landing page
- 3 services (group, 1:1, corporate)
- Booking calendar
- Reviews from past clients
- Payment (X402)
- URL: https://one.ie/demo/coaching
- Built with: Service Directory template
3. **Newsletter Demo**
- Landing page
- 5 published articles
- Subscribe form
- Paid tier ($5/month)
- Archive
- URL: https://one.ie/demo/newsletter
- Built with: Newsletter template
4. **Community Demo**
- Landing page
- Member directory
- Discussion board (3 topics)
- Events calendar
- URL: https://one.ie/demo/community
- Built with: Community template
5. **Portfolio Demo**
- Landing page
- 5 portfolio projects
- About section
- Contact form
- Blog (3 posts)
- URL: https://one.ie/demo/portfolio
- Built with: Blog/Portfolio template
- [ ] Each demo:
- [ ] Is fully functional (can browse, read, click around)
- [ ] Shows real usage patterns
- [ ] Demonstrates platform capabilities
- [ ] Has "Made with ONE" badge
- [ ] Links back to "Create your own"
### Cycle 6: Plan Landing Page Layout (https://one.ie)
- [ ] **Hero Section:**
- [ ] Headline: "Start Your Creator Project"
- [ ] Subheadline: "Share your expertise, build your audience, earn money"
- [ ] CTA: "Start a Project" (big button)
- [ ] Secondary: "View Demo Projects" (link)
- [ ] Hero image: Creator working on project (motivational)
- [ ] **Featured Creators Section:**
- [ ] Show 3-5 successful creators
- [ ] Name, photo, project type, earnings
- [ ] Quote: Why they love ONE Platform
- [ ] Link: "View their project"
- [ ] **Project Types Section:**
- [ ] 5 starter projects (cards)
- [ ] Each card shows:
- [ ] Icon
- [ ] Name (Course, Services, Newsletter, etc)
- [ ] Description (1 sentence)
- [ ] "See Demo" button
- [ ] "Start This" button
- [ ] Visual differentiation (colors, icons)
- [ ] **How It Works Section:**
- [ ] 5 steps:
1. Choose your project type
2. Paste your URL or answer questions
3. AI builds your landing page
4. Customize + publish
5. Start earning
- [ ] Animated flow diagram
- [ ] **FAQ Section:**
- [ ] "Do I need to code?" → No
- [ ] "How do I earn money?" → X402 payments
- [ ] "Can I customize?" → Yes, fully customizable
- [ ] "What if I need help?" → Community + docs
- [ ] "How much does it cost?" → Free to start, small commission
- [ ] **CTA Section:**
- [ ] "Ready to start?"
- [ ] Big button: "Start Your Project Now"
- [ ] Smaller text: "No credit card required"
- [ ] **Footer:**
- [ ] Links: Docs, Blog, Discord, Twitter
- [ ] Legal: Privacy, Terms, Security
### Cycle 7: Plan Authentication Gate
- [ ] **When user clicks "Start a Project":**
1. Check if logged in
2. If not → Show login/signup modal
3. If logged in but NOT onboarded → Redirect to todo-onboard
4. If logged in AND onboarded → Show project selection
- [ ] **Modal experience:**
- [ ] Email signup (simple)
- [ ] Show what's next: "Next, we'll create your project"
- [ ] Privacy note: "We'll never spam you"
### Cycle 8: Plan Agent-Clone Integration
- [ ] **What is agent-clone?**
- [ ] Described in CLAUDE.md as: "AI clones of creators using their content as training data"
- [ ] For landing pages: Custom AI that understands creator's voice + brand
- [ ] Uses: WebFetch (read their site), Claude (analyze + generate), Convex (store)
- [ ] **How agent-clone helps:**
1. User pastes URL
2. agent-clone reads content (WebFetch)
3. Extracts: Name, bio, what they do, tone of voice
4. Creates vector embedding (semantic understanding)
5. Claude generates landing page in THEIR voice
6. Result: Landing page feels authentic, not generic
- [ ] **Implementation:**
- [ ] New service: `backend/convex/services/landing-page-generator.ts`
- [ ] Uses agent-clone internally
- [ ] Returns: Generated landing page HTML + metadata
### Cycle 9: Plan "Start a Project" Flow UX
- [ ] **Step 1: Choose Project Type**
- [ ] 5 cards: Course, Service, Newsletter, Community, Portfolio
- [ ] Each shows: Icon, name, description, demo button
- [ ] User clicks one
- [ ] **Step 2: Choose Creation Method**
- [ ] Option A: "I have a website/social" → Paste URL
- [ ] Option B: "Start from scratch" → Blank project
- [ ] Option C: "Talk to me" → Chat with AI
- [ ] User picks one
- [ ] **Step 3: Input**
- [ ] If URL: Paste and submit
- [ ] If scratch: Show blank canvas
- [ ] If chat: Show conversation interface (agent-clone asks questions)
- [ ] **Step 4: Generate**
- [ ] Show spinner: "Creating your landing page..."
- [ ] agent-clone processes
- [ ] Returns draft landing page
- [ ] **Step 5: Review**
- [ ] Show generated landing page
- [ ] Buttons: Edit, Publish, Start Over
- [ ] Edit mode: In-browser editor (no code)
- [ ] **Step 6: Publish**
- [ ] Landing page goes live
- [ ] User added to project
- [ ] Onboarding tutorials shown
- [ ] Success! "Your project is live"
### Cycle 10: Define Success Metrics
- [ ] Landing page complete when:
- [ ] [ ] https://one.ie landing page live
- [ ] [ ] 5 demo projects functional (can click around)
- [ ] [ ] "Start a Project" button routes to auth/onboard
- [ ] [ ] AI landing page generation working (end-to-end)
- [ ] [ ] Agent-clone integrated (reads URL, generates content)
- [ ] [ ] First creator uses AI to generate landing page
- [ ] [ ] Project published and shows on their dashboard
- [ ] [ ] Mobile responsive (looks good on phone)
- [ ] [ ] < 2 second page load
- [ ] [ ] 10+ creators started projects in first week
- [ ] [ ] 50%+ of creators use AI generation (vs manual)
- [ ] [ ] Positive sentiment in early feedback
## PHASE 2: BACKEND SCHEMA & SERVICES (Cycle 11-20)
**Purpose:** Add project + landing page things to schema
### Cycle 11: Create Project Thing Type
- [ ] New thing type: `project`
```typescript
{
type: 'project',
properties: {
// Identification
projectId: string, // Unique slug
creatorId: Id<'things'>, // Owner
name: string,
description: string,
category: 'course' | 'service' | 'newsletter' | 'community' | 'portfolio',
// Content
landingPageId: Id<'things'>, // Link to landing page
theme: string, // Color scheme
favicon: string, // Icon
customDomain: string, // If user has one
// Settings
visibility: 'draft' | 'published' | 'archived',
publishedAt: number,
isTemplate: boolean, // Is this a demo/template?
// Metadata
tags: string[],
createdAt: number,
updatedAt: number,
}
}
```
### Cycle 12: Create Landing Page Thing Type
- [ ] New thing type: `landing_page`
```typescript
{
type: 'landing_page',
properties: {
// Identification
landingPageId: string,
projectId: Id<'things'>,
// Content
headline: string,
subheadline: string,
hero_image: string,
// Sections
about: string, // HTML or markdown
features: [{
title: string,
description: string,
icon: string,
}],
// CTA
ctaText: string,
ctaUrl: string,
// Generated or Custom
generatedBy: 'ai' | 'manual', // How was it created?
generatedFrom: {
url: string, // If from website
social: string, // If from social
conversation: string, // If from chat
},
// Meta
publishedAt: number,
views: number, // Traffic tracking
conversions: number, // CTAs clicked
}
}
```
### Cycle 13: Create Landing Page Service (Effect.ts)
- [ ] Service: `backend/convex/services/landing-page.ts`
- [ ] Methods:
- [ ] `generateFromUrl(url)` → landing_page
- [ ] `generateFromSocial(socialHandle, platform)` → landing_page
- [ ] `generateFromChat(conversation)` → landing_page
- [ ] `updateLandingPage(id, content)` → updated
- [ ] `publishLandingPage(id)` → published
- [ ] `getLandingPageMetrics(id)` → views + conversions
### Cycle 14: Integrate agent-clone
- [ ] Service: `backend/convex/services/agent-clone-landing.ts`
- [ ] Methods:
- [ ] `cloneFromUrl(url)` → Use WebFetch to read, Claude to analyze
- [ ] `extractCreatorIdentity(content)` → Name, niche, tone, links
- [ ] `generateLandingPageInVoice(identity)` → HTML in THEIR voice
- [ ] `createEmbedding(content)` → Vector for similarity search
### Cycle 15: Create Convex Mutations
- [ ] `mutations/projects.ts`:
- [ ] `createProject(creatorId, name, category)` → projectId
- [ ] `updateProject(projectId, data)` → updated
- [ ] `publishProject(projectId)` → published
- [ ] `deleteProject(projectId)` → deleted
- [ ] `mutations/landing-pages.ts`:
- [ ] `generateLandingPage(projectId, sourceUrl)` → landing_page
- [ ] `updateLandingPage(pageId, content)` → updated
- [ ] `publishLandingPage(pageId)` → published
### Cycle 16: Create Convex Queries
- [ ] `queries/projects.ts`:
- [ ] `getProject(projectId)` → project details
- [ ] `getCreatorProjects(creatorId)` → projects[]
- [ ] `getDemoProjects()` → demo projects for landing page
- [ ] `searchProjects(query)` → projects matching
- [ ] `queries/landing-pages.ts`:
- [ ] `getLandingPage(pageId)` → page content
- [ ] `getLandingPageMetrics(pageId)` → views + conversions
### Cycle 17: Create API Routes for Generation
- [ ] `web/src/pages/api/projects/generate.ts`
- [ ] POST with: url OR socialHandle + platform
- [ ] Returns: Landing page HTML preview
- [ ] Calls: landing-page generator service
- [ ] `web/src/pages/api/projects/create.ts`
- [ ] POST with: name, category, landingPageId
- [ ] Creates project
- [ ] Returns: projectId + dashboard link
### Cycle 18: Create Demo Projects (Seeding)
- [ ] Script: `backend/convex/seed-demo-projects.ts`
- [ ] Creates 5 demo projects:
1. Padel course (with content)
2. Coaching services (with bookings)
3. Newsletter (with posts)
4. Community (with discussions)
5. Portfolio (with works)
- [ ] Each has:
- [ ] Landing page (generated or crafted)
- [ ] Sample content
- [ ] "Made with ONE" badge
- [ ] Demo user account
### Cycle 19: Create Landing Page Templates
- [ ] `backend/convex/seeds/templates.ts`
- [ ] Each starter project has:
- [ ] HTML template (landing page)
- [ ] CSS styling (responsive)
- [ ] JavaScript (forms, modals)
- [ ] Content placeholder (replaceable)
- [ ] Templates stored in Convex for:
- [ ] Course
- [ ] Service
- [ ] Newsletter
- [ ] Community
- [ ] Portfolio
### Cycle 20: Implement Analytics for Landing Pages
- [ ] Track:
- [ ] Page views (via event)
- [ ] CTA clicks (button press)
- [ ] Scroll depth (how far down page)
- [ ] Conversion funnel
- [ ] Log to events table
- [ ] Query dashboard: "5000 views, 150 clicks, 30 signups"
## PHASE 3: FRONTEND - LANDING PAGE (Cycle 21-30)
**Purpose:** Build beautiful landing page UI at https://one.ie
### Cycle 21: Create Hero Section Component
- [ ] Component: `web/src/components/landing/HeroSection.tsx`
- [ ] Displays:
- [ ] Headline + subheadline
- [ ] Hero image (creator in action)
- [ ] CTA button: "Start a Project"
- [ ] Secondary CTA: "View Demos"
- [ ] Background: Gradient or animated
### Cycle 22: Create Featured Creators Section
- [ ] Component: `web/src/components/landing/FeaturedCreators.tsx`
- [ ] Shows:
- [ ] 3-5 creator cards
- [ ] Photo, name, project type, earnings
- [ ] Quote/testimonial
- [ ] "View their project" link
- [ ] Carousel (swipeable on mobile)
### Cycle 23: Create Project Types Section
- [ ] Component: `web/src/components/landing/ProjectTypes.tsx`
- [ ] Shows:
- [ ] 5 project type cards (grid)
- [ ] Each: Icon, name, description
- [ ] "See Demo" button
- [ ] "Start This" button
- [ ] Hover: Show preview image
### Cycle 24: Create How It Works Section
- [ ] Component: `web/src/components/landing/HowItWorks.tsx`
- [ ] Shows:
- [ ] 5 steps (vertical or horizontal flow)
- [ ] Step 1: Choose type (icon)
- [ ] Step 2: Paste URL (icon)
- [ ] Step 3: AI builds (icon)
- [ ] Step 4: Customize (icon)
- [ ] Step 5: Earn (icon)
- [ ] Animated connections between steps
### Cycle 25: Create FAQ Section
- [ ] Component: `web/src/components/landing/FAQ.tsx`
- [ ] Shows:
- [ ] 5 questions (accordion style)
- [ ] Expandable answers
- [ ] Smooth animation
- [ ] Search FAQ (optional)
### Cycle 26: Create Demo Project Links
- [ ] Component: `web/src/components/landing/DemoLinks.tsx`
- [ ] Shows:
- [ ] 5 working demo projects
- [ ] Cards with: Name, category, image, link
- [ ] Click: Opens demo in new tab
- [ ] Or: Embedded iframe (sandboxed)
### Cycle 27: Create Start Project Modal
- [ ] Component: `web/src/components/landing/StartProjectModal.tsx`
- [ ] Modal flow:
- [ ] Step 1: Choose project type (5 options)
- [ ] Step 2: Choose creation method (3 options)
- [ ] Step 3: Input (URL paste, blank, or chat)
- [ ] Step 4: Generate (show spinner, call API)
- [ ] Step 5: Preview (show generated landing page)
### Cycle 28: Create Project Generation Flow UI
- [ ] Component: `web/src/components/landing/ProjectGenerationFlow.tsx`
- [ ] Sub-components:
- [ ] ProjectTypeSelector (5 cards)
- [ ] CreationMethodSelector (3 options)
- [ ] URLInput (text field + submit)
- [ ] GenerationSpinner (progress indicator)
- [ ] LandingPagePreview (show draft)
### Cycle 29: Create Landing Page (Astro)
- [ ] `web/src/pages/index.astro`
- [ ] Sections (in order):
1. HeroSection
2. FeaturedCreators
3. ProjectTypes
4. HowItWorks
5. FAQ
6. CTA (final push)
7. DemoLinks
8. Footer
- [ ] All components use `client:load` (interactive)
- [ ] Dark mode support
### Cycle 30: Create Demo Pages
- [ ] `web/src/pages/demo/[project].astro`
- [ ] Dynamic route for each demo:
- [ ] /demo/padel-course
- [ ] /demo/coaching
- [ ] /demo/newsletter
- [ ] /demo/community
- [ ] /demo/portfolio
- [ ] Each demo:
- [ ] Shows the project fully
- [ ] Functional (can click around)
- [ ] "Try this project type" button at bottom
- [ ] Links back to landing page
## PHASE 4: API ROUTES & INTEGRATION (Cycle 31-40)
**Purpose:** Connect landing page to backend, enable project creation
### Cycle 31: Create Project Generation API Route
- [ ] `web/src/pages/api/projects/generate.ts`
- [ ] POST endpoint:
```
Input: {
projectType: 'course' | 'service' | 'newsletter' | 'community' | 'portfolio',
sourceUrl?: string,
socialHandle?: string,
socialPlatform?: 'twitter' | 'linkedin' | 'youtube',
useChat?: boolean, // If true, use conversation
}
Output: {
landingPageHtml: string,
preview: string,
metadata: { headline, description, links }
}
```
- [ ] Calls: landing-page generator service
### Cycle 32: Create Project Creation API Route
- [ ] `web/src/pages/api/projects/create.ts`
- [ ] POST endpoint:
```
Input: {
name: string,
projectType: string,
landingPageContent: string,
}
Output: {
projectId: string,
dashboardUrl: string,
}
```
- [ ] Requires: User authenticated + onboarded
- [ ] Creates: Project thing + landing page thing
### Cycle 33: Create Auth Gate
- [ ] Middleware: Check if user logged in
- [ ] Route: POST /api/projects/\* requires auth
- [ ] Route: GET /api/projects/demo/\* public (no auth)
- [ ] Redirect: If not logged in → /auth/login
- [ ] Redirect: If not onboarded → /onboarding
### Cycle 34: Create Landing Page Fetch Route
- [ ] `web/src/pages/api/landing-pages/fetch.ts`
- [ ] GET endpoint:
```
Input: { url: string }
Output: { content: string, metadata: { title, description } }
```
- [ ] Uses: WebFetch to read URL
- [ ] Returns: HTML content
### Cycle 35: Create Agent-Clone Integration Route
- [ ] `web/src/pages/api/projects/ai-generate.ts`
- [ ] POST endpoint (AI generation):
```
Input: {
sourceUrl?: string,
socialHandle?: string,
conversationHistory?: Message[],
}
Output: {
landingPageHtml: string,
creatorIdentity: { name, bio, tone, links },
}
```
- [ ] Calls: agent-clone service
- [ ] Generates: Landing page in creator's voice
### Cycle 36: Create Chat Conversation Route
- [ ] `web/src/pages/api/projects/chat.ts`
- [ ] POST endpoint:
```
Input: { message: string, conversationId: string }
Output: { aiResponse: string, suggestedLandingPage?: string }
```
- [ ] Uses: Claude API (via agent-clone)
- [ ] Agent asks: "What do you teach?" → "Who's your audience?" → etc
- [ ] Eventually: Generates landing page from conversation
### Cycle 37: Create Project Publishing Route
- [ ] `web/src/pages/api/projects/publish.ts`
- [ ] POST endpoint:
```
Input: { projectId: string }
Output: { projectUrl: string, published: boolean }
```
- [ ] Updates: project.visibility = 'published'
- [ ] Logs: project_published event
### Cycle 38: Create Demo Projects API
- [ ] `web/src/pages/api/demo/projects.ts`
- [ ] GET endpoint:
```
Output: { projects: Project[] }
```
- [ ] Returns: All demo projects
- [ ] Used by: Landing page to list demos
### Cycle 39: Create Demo Project Route
- [ ] `web/src/pages/api/demo/[projectId].ts`
- [ ] GET endpoint:
```
Input: { projectId: string }
Output: { project: Project, landingPage: LandingPage }
```
- [ ] Returns: Full demo project content
### Cycle 40: Create Analytics Tracking Routes
- [ ] `web/src/pages/api/analytics/landing-page.ts`
- [ ] Track: Page views, CTA clicks, conversions
- [ ] POST: Log event when user performs action
- [ ] GET: Retrieve metrics for dashboard
## PHASE 5: AI AGENT-CLONE INTEGRATION (Cycle 41-50)
**Purpose:** Integrate agent-clone for voice-driven landing page generation
### Cycle 41: Design Agent-Clone Landing Page Generator
- [ ] What agent-clone does:
- [ ] Reads creator's website/social (WebFetch)
- [ ] Extracts: Name, bio, expertise, tone
- [ ] Creates vector embedding (semantic understanding)
- [ ] Claude generates landing page in THEIR voice
- [ ] Result: Feels authentic, not AI-generated
- [ ] Why it's powerful:
- [ ] User: "Here's my website"
- [ ] Agent reads it
- [ ] Agent understands: Who you are, what you do, how you talk
- [ ] Agent generates: Landing page that SOUNDS like you
- [ ] User: "Wow, that's exactly how I would say it!"
### Cycle 42: Implement URL Content Extraction
- [ ] Service method: `extractCreatorIdentity(url)`
- [ ] Uses: WebFetch to read URL
- [ ] Extracts:
- [ ] Page title (name?)
- [ ] Meta description (niche?)
- [ ] H1-H3 headings (what do they focus on?)
- [ ] Links (where do they point?)
- [ ] Images (visual style?)
- [ ] Text blocks (tone of voice?)
- [ ] Returns: Structured identity object
### Cycle 43: Implement Social Profile Extraction
- [ ] If user provides Twitter/LinkedIn/YouTube:
- [ ] Fetch profile data (public info)
- [ ] Extract bio
- [ ] Extract recent posts/videos (for tone analysis)
- [ ] Extract profile image
- [ ] Extract follower count (validation)
- [ ] Returns: Social identity object
### Cycle 44: Implement Semantic Analysis
- [ ] Take extracted content
- [ ] Use Claude to analyze:
- [ ] **Name:** What is their professional identity?
- [ ] **Expertise:** What are they known for?
- [ ] **Tone:** Casual? Professional? Academic? Energetic?
- [ ] **Audience:** Who do they serve?
- [ ] **Unique angle:** What makes them different?
- [ ] Returns: Understanding object (used for generation)
### Cycle 45: Implement Vector Embedding
- [ ] Create embedding of extracted content
- [ ] Uses: OpenAI embeddings API
- [ ] Purpose: Similarity search (find similar creators)
- [ ] Store: In Convex for later use
- [ ] Use case: "Find creators like you" (future feature)
### Cycle 46: Implement Landing Page Generation
- [ ] Claude generates landing page HTML
- [ ] System prompt: "You are a landing page designer. Create a landing page in the voice of [creator name]."
- [ ] Input: Creator identity + project type + category
- [ ] Output: Complete HTML + CSS (ready to publish)
- [ ] Quality checks:
- [ ] Contains headline (required)
- [ ] Contains CTA (required)
- [ ] Uses creator's tone (validated)
- [ ] Mobile responsive (CSS checked)
### Cycle 47: Implement Conversation-Based Generation
- [ ] Alternative to URL: Chat with AI
- [ ] Agent-clone asks questions:
1. "What do you teach/sell?" (niche)
2. "Who is your ideal student/customer?" (audience)
3. "What's your unique approach?" (unique angle)
4. "Tell me about your experience" (credibility)
5. "How do you usually introduce yourself?" (tone)
- [ ] After 5 questions: Generate landing page
- [ ] Can iterate: "Can you make it more [casual/professional]?"
### Cycle 48: Create Agent-Clone Service
- [ ] Service: `backend/convex/services/agent-clone-landing.ts`
- [ ] Methods:
- [ ] `cloneFromUrl(url)` → Call extractCreatorIdentity, then generate
- [ ] `cloneFromSocial(handle, platform)` → Call extractSocialIdentity, then generate
- [ ] `cloneFromConversation(messages)` → Analyze conversation, then generate
- [ ] `refineGeneration(content, feedback)` → Re-generate with user feedback
### Cycle 49: Implement Human Review (Optional)
- [ ] For safety, quality, or brand protection:
- [ ] High-visibility projects (>100 followers)
- [ ] Controversial topics (flagged by content filter)
- [ ] Premium tier (users pay for review)
- [ ] Flow:
1. Generate landing page
2. Flag for review if needed
3. Human reviewer checks
4. Approves or requests changes
5. Creator notified
### Cycle 50: Create Agent-Clone Examples
- [ ] Document 3-5 success stories:
1. "Website → Landing page" (URL extraction)
2. "Tweet thread → Newsletter signup" (social extraction)
3. "Video transcript → Course landing page" (YouTube extraction)
4. "Q&A chat → Service landing page" (conversation)
5. "LinkedIn profile → Coaching landing page" (social extraction)
- [ ] Show before/after
- [ ] Show time saved (manual vs AI)
- [ ] Show quality (side-by-side comparison)
## PHASE 6-10: CONTINUATION
[Abbreviated - follows standard pattern]
### Summary:
**Phase 6 (Cycle 51-60):** Quality & Testing
- Unit tests (generation logic)
- Integration tests (full flow)
- E2E tests (user journey)
- Agent-clone accuracy tests
**Phase 7 (Cycle 61-70):** Design & UX
- Landing page design tokens
- Modal flow UX
- Demo project layouts
- Accessibility (WCAG)
**Phase 8 (Cycle 71-80):** Performance & Optimization
- Image optimization (hero)
- API caching (demo projects)
- Generation speed (<3s)
- Mobile optimization
**Phase 9 (Cycle 81-90):** Deployment & Documentation
- Deploy landing page
- Create onboarding video
- Write docs for creators
- Set up analytics tracking
**Phase 10 (Cycle 91-100):** Knowledge & Lessons
- Document agent-clone learnings
- Capture success stories
- Plan improvements (Phase 2)
- Roadmap for advanced features
## CRITICAL INTEGRATION POINTS
### Integration 1: Landing Page → Auth Gate
```
User clicks "Start a Project"
↓
Check: Logged in?
↓ No: Show auth modal
↓ Yes: Check onboarded?
↓ No: Redirect to /onboarding
↓ Yes: Show "Start Project" flow
```
### Integration 2: Project Generation → Agent-Clone
```
User pastes URL
↓
Calls: POST /api/projects/ai-generate
↓
Service calls: agent-clone-landing
↓
1. Extract identity (WebFetch)
2. Analyze tone (Claude)
3. Generate landing page (Claude)
↓
Returns: Landing page HTML
```
### Integration 3: Project Creation → Onboarding
```
User publishes project
↓
Project created in Convex
↓
Event: project_published
↓
Onboarding shows: "Congratulations! Your project is live"
↓
Guide: "Next steps: Add products + invite team"
```
### Integration 4: Demo Projects → Start Project
```
User clicks "See Demo" (on landing page)
↓
Opens: /demo/padel-course (fully functional)
↓
User explores: Course structure, student dashboard
↓
User thinks: "I want one like this"
↓
Clicks: "Create Your Own Course" button
↓
Redirects to: Project generation flow
↓
Pre-selects: "Course" project type
```
## SUCCESS CRITERIA
Landing page complete when:
- ✅ https://one.ie landing page live
- ✅ 5 demo projects fully functional
- ✅ "Start a Project" button works (auth gate)
- ✅ AI landing page generation working (end-to-end)
- ✅ Agent-clone extracts voice (URL, social, chat)
- ✅ Generated landing pages feel authentic
- ✅ First 20 creators use AI generation
- ✅ Mobile responsive (<2s load)
- ✅ 100+ views first week
- ✅ 20%+ click-through (landing page → start project)
- ✅ Positive sentiment ("This is amazing!")
- ✅ Zero errors in generation (monitored)
## DATA FLOW
```
Landing Page (https://one.ie)
↓
User clicks "Start a Project"
↓
Auth gate: Logged in + onboarded?
↓ (Yes)
Project generation flow
↓
Choose type + method
↓
If URL: Extract identity via agent-clone
If social: Extract identity via social APIs
If chat: Converse with agent-clone
↓
Claude generates landing page
↓
User reviews + publishes
↓
Project created in Convex
↓
Landing page published at: one.ie/projects/[slug]
↓
Creator dashboard shows: Project + analytics
↓
Creator can now: Add products, invite team, start earning
```
**Status:** Wave 0 - ENTRY POINT (before Wave 1)
**Timeline:** Can start immediately (low dependency on other todos)
**Priority:** CRITICAL (first impression for all creators)
**Revenue Impact:** MEDIUM (reduces signup friction, higher creator conversion)