Lnkbase Newsletter Docs

#OpenHive

The open-source newsletter platform you own. Write, send, grow and monetize a newsletter — with a website, paid subscriptions, digital products, webinars, podcasts and a community — running entirely on your own Cloudflare account.

No SendGrid, no Vercel, no Supabase, no Clerk, no Inngest, no ZeroBounce, no Litmus, no S3, no PostHog. One Worker, one database, $0 platform fees.

#Features

#Quick start (local)

Requirements: Node.js 20+.

npm install
npx wrangler d1 migrations apply openhive --local
npx wrangler dev

Open http://localhost:8787, click Start free, create an account and a publication. Emails are simulated locally — they're stored in the outbox (Settings → Email → Outbox) instead of being sent.

Optional demo data:

node scripts/seed.mjs > seed.sql && npx wrangler d1 execute openhive --local --file seed.sql
# log in as demo@openhive.dev / demo12345

#Deploy to Cloudflare

You need a Cloudflare account (the free plan works to start; Workers Paid is recommended for higher volume).

  1. Log in
   npx wrangler login
  1. Create the database and bucket
   npx wrangler d1 create openhive        # copy the database_id into wrangler.jsonc
   npx wrangler r2 bucket create openhive-media
  1. Enable email sending for the domain you'll send from (it must be on Cloudflare DNS):
   npx wrangler email sending enable yourdomain.com

Then set MAIL_FROM in wrangler.jsonc (for example newsletter@yourdomain.com).

  1. Set your app URL — edit APP_URL in wrangler.jsonc (for example https://news.yourdomain.com).
  2. Apply migrations and deploy
   npx wrangler d1 migrations apply openhive --remote
   npx wrangler deploy
  1. Optional secrets
   npx wrangler secret put STRIPE_SECRET_KEY        # real payments (otherwise test-mode checkout)
   npx wrangler secret put STRIPE_WEBHOOK_SECRET    # webhook endpoint: https://YOUR_APP/hooks/stripe
   npx wrangler secret put TURNSTILE_SECRET         # optional Turnstile bot check on forms
  1. Optional: AI — uncomment "ai": { "binding": "AI" } in wrangler.jsonc and redeploy to enable the AI writer, AI images, audio versions and podcast transcripts.
  2. Custom domains — add your app domain under Workers → your worker → Settings → Domains & Routes. Publications can use their own domains too (Settings → Domains in the dashboard); point the domain at the worker with a Custom Domain or route.

Cron runs every minute automatically (triggers.crons in wrangler.jsonc) to process sends, automations, retries and scheduled posts.

Full details: docs/DEPLOY.md. Deliverability setup (SPF, DKIM, DMARC, feedback loops): docs/DELIVERABILITY.md.

#API and MCP

#Project structure

src/index.tsx        entry: routing, publication sites, cron
src/lib/             core engines (sending, rendering, segments, automations, payments, auth…)
src/routes/          one module per product area
src/ui/              dashboard + website layouts and components
public/static/       CSS and browser scripts (editor, builder, rule builder…)
migrations/          D1 schema
docs/                architecture, deploy, API, MCP, deliverability, support

See docs/ARCHITECTURE.md for the module contract.

#License

You receive the full source code with your purchase. Use it for your own newsletters and your clients' newsletters, modify it freely, and deploy as many instances as you like. Please don't resell the source code itself.