Skip to content

athm793/hyperpage

Repository files navigation

HyperPage — AI-Personalized Landing Pages at Scale

A full-stack B2B outbound tool that generates hyper-personalized landing pages for every prospect in your list. Upload a CSV, configure your campaign branding, and HyperPage uses AI to research each company and write a unique, conversion-optimized page — at scale.

Features

  • Campaign management — create, pause, archive, and delete campaigns with full branding control
  • CSV prospect upload — intelligent column mapping stored per campaign
  • AI landing page generation — LLM researches each company and writes:
    • Headline (≤8 words, names the prospect directly)
    • Subheadline (1 sentence with concrete results)
    • Body copy (2 paragraphs targeting pain points)
    • 3 company-specific pain point bullets
    • Custom CTA text
  • Batch processing — 3 concurrent generations with progress tracking and per-prospect retry
  • Real-time status — frontend polls every 2 seconds during active generation
  • Template editor — custom HTML templates with AI analysis and generation
  • Branding — primary/accent colors, background styles (gradient/mesh/solid), logo, calendar embed
  • Unique URLs — each prospect gets a shareable slug-based landing page

Stack

Layer Technology
Framework Next.js 16 (App Router)
UI React 19, Tailwind CSS 4
Language TypeScript 5
Database SQLite via better-sqlite3 (WAL mode)
AI / LLM OpenRouter API (default: openai/gpt-4o-mini)
CSV parsing PapaParse
Icons Lucide React
Deployment Vercel / Node.js

Getting Started

npm install
npm run dev       # http://localhost:3000
npm run build
npm start

Environment Variables

Variable Required Description
OPENROUTER_API_KEY Your OpenRouter API key
OPENROUTER_MODEL Optional Model override (default: openai/gpt-4o-mini)
NEXT_PUBLIC_BASE_URL Optional Public URL used as the OpenRouter referer header

API Routes

Method Route Description
GET / POST /api/campaigns List or create campaigns
GET / PATCH / DELETE /api/campaigns/[id] Get, update, or delete a campaign
POST /api/campaigns/[id]/status Update campaign status
POST /api/campaigns/[id]/template Save or fetch template HTML
POST /api/campaigns/[id]/template/generate AI-generate a template
POST /api/campaigns/[id]/template/analyze AI-analyze an existing template
POST /api/prospects/upload Upload CSV and configure column mapping
GET /api/prospects/list List prospects (polled during generation)
POST /api/prospects/generate Batch-generate landing pages
POST /api/prospects/bulk Bulk operations (delete, reset)
POST /api/images/upload Upload campaign images

Database Schema

campaignsid, name, status, sender_name, sender_title, sender_company, value_prop, logo_url, primary_color, accent_color, background_style, cta_text, calendar_embed, column_mapping (JSON), custom_template_html, created_at

prospectsid, campaign_id, slug, raw_data (JSON), status, error_msg, headline, subheadline, body_copy, pain_points (JSON), cta_label, first_name, company_name, created_at, generated_at

Architecture

src/
├── app/
│   ├── page.tsx                          # Campaign dashboard
│   ├── campaigns/[id]/page.tsx          # Campaign detail + prospect table
│   └── api/
│       ├── campaigns/                   # Campaign CRUD routes
│       └── prospects/                   # Upload, list, generate, bulk routes
└── lib/
    └── db.ts                            # SQLite schema init + CRUD helpers

Generation pipeline: CSV upload → column mapping → AI company research (optional web search) → personalized copy generation (3× concurrent) → SQLite storage → public /p/[slug] URL

About

AI email campaign builder — upload prospect CSVs, auto-generate personalized landing pages via OpenAI, and manage campaigns end-to-end — Next.js 16 · React 19 · OpenAI API · SQLite · TypeScript · Tailwind CSS 4

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages