CASE STUDY · AI SAAS · MARKETING

ContentVo: a website URL in, a 30-day content calendar out

ContentVo reads a company's website, works out its voice, audience and content pillars, and writes a month of social posts with matching visuals. We built it and we run it. Here's how it's put together, what we left out, and why.

TL;DR
Product
Paste a company URL, get a branded 30-day social content calendar with AI visuals in under 2 minutes.
Built for
Solo B2B founders and boutique agency freelancers managing 2–5 brands
Timeline
First commit Sep 21, 2026. Billing moved to Polar Sep 30. Renamed to ContentVo Oct 4.
Status
Live, paid plans
Stack
  • Next.js 15
  • Supabase
  • AI model
  • AI image generation
  • Resend
  • Polar
  • Vercel
Visit ContentVo, an AI content calendar generator ↗
THE PROBLEM

Who ContentVo is for, and what hurts.

A solo B2B founder knows they should post consistently. In practice, every month starts with a blank calendar and a fragmented workflow: brainstorm pillars in Notion, prompt a chatbot for captions one at a time, switch to Canva or an image model for visuals, paste everything into a spreadsheet, then fight a scheduling tool's expiring social logins.

The result is predictable. Posting is strong for a week and abandoned by the third. Freelancers who manage social for a handful of clients have the same problem, multiplied by the number of brands they look after.

The people we built for are solo B2B founders and boutique agency freelancers managing two to five brands. They don't need another scheduler. They need the month written, on-brand, so posting takes minutes instead of an evening.

THE GAP

Why existing tools fall short.

  1. 01

    Schedulers schedule. They don't write.

    Buffer, Hootsuite and the rest are good at queueing posts you've already written. The hard part, deciding what to say for 30 days in the brand's voice, is still left to the user.

  2. 02

    Chatbots have no memory of the brand

    A general chatbot writes one caption at a time and forgets the brand between sessions. Getting 30 coherent posts across four content pillars means re-explaining the company every time.

  3. 03

    Social API integrations break

    Direct-posting tools depend on platform APIs and OAuth tokens that expire, change pricing or get revoked. Every broken connection is a support ticket and a missed post.

WHAT WE BUILT

Inside ContentVo.

The core loop is three steps: analyze a URL, review the calendar, copy and publish. The user pastes their website. ContentVo fetches it, and the AI produces a brand profile (voice, audience and four content pillars) that the user can edit in seconds. One click then writes 30 days of posts spread across those pillars, each with a hook, caption, hashtags, call to action and a visual concept.

Each post can be edited, regenerated on its own, or given an AI-generated image grounded in the brand and the caption. Posting is deliberately manual: one-click copy formatted for the platform, a deep link to the native composer, and a status toggle from draft to approved to published. The landing page lets anyone see three posts written from their own site in about 30 seconds, with no signup.

ContentVo homepage on desktop with the URL input and a 30-post calendar preview
ContentVo homepage on desktop with the URL input and a 30-post calendar preview
ContentVo homepage on a phone
ContentVo homepage on a phone
  1. 01

    Brand extraction from a URL

    A hardened fetcher reads the site and the AI turns it into a structured brand profile. Users can add voice samples, and the rewrite tools then match them.

  2. 02

    Schema-validated calendars

    The 30-day plan is generated as structured output and validated with Zod before it's saved. A malformed response is rejected, not rendered.

  3. 03

    Guardrails against bland AI copy

    Every post is automatically checked for quality and for the stock phrases that make AI copy obvious. Posts that fail are flagged for the user.

  4. 04

    Grounded image generation

    A director pass turns the brand, industry and caption into a scene description before the image model runs. Images are rendered as editorial photography with no text or logos, and the pipeline falls back to a second model if the first fails.

  5. 05

    Publishing without OAuth

    Copy buttons, native composer links, a calendar feed users can subscribe to, and daily reminder emails replace fragile social API connections.

  6. 06

    Built for agencies

    Multiple brand workspaces per plan, read-only client review links, repurposing, reusable workflows and a creator mode that plans daily posts from niche news.

ARCHITECTURE

How it fits together.

  1. Next.js 15

    App router on Vercel. Every generation runs in a route handler. No workers, no queue.

  2. Supabase

    Auth, Postgres with row-level security across workspaces, brands, plans and posts, plus Storage for images.

  3. AI model

    Brand analysis, calendar generation, rewrites and repurposing.

  4. AI image generation

    On-demand visuals with a fallback if generation fails.

  5. Polar + Resend

    Subscriptions with monthly and annual billing; transactional email and daily reminders.

ContentVo request path, from app to delivery

Plan limits are enforced in the database before any AI call is made, and a failed generation doesn't count against the user's allowance.

User-supplied URLs are fetched through a hardened fetcher, so a URL can't be turned into a request against internal infrastructure.

Plan limits live in one typed object that the server gates, pricing page and settings screen all read, so the marketing copy can't drift from what the product actually enforces.

KEY DECISIONS

The calls that shaped it.

  1. 01

    No social API integrations, on purpose

    Skipping OAuth publishing removed the most fragile, most support-heavy part of the category. Users post natively, and we never have to send a "your connection expired" email.

  2. 02

    Serverless only

    Generation runs inside Next.js route handlers on Vercel instead of a separate worker fleet. It keeps the product to one deploy target and one bill.

  3. 03

    Quotas in the database, not in middleware

    Metering is the part of an AI product that loses money when it's wrong. Enforcing limits in the database rather than in application code made them reliable and testable, and closed several quota bypasses we found in review.

  4. 04

    Rename before scale

    The product launched as ContentFlow. Two weeks in, we moved to ContentVo and a domain we owned outright, before any meaningful search equity had built up on the old name.

WHAT WE CUT

Deliberately left out of v1.

  • Direct publishing to X, LinkedIn or Meta through their APIs.
  • Background workers, Redis and job queues.
  • A visual node-based workflow editor.
  • Full multi-user workspace roles. Agency review is read-only links, not shared logins.
  • Social listening and analytics sync.
GROWTH ENGINE

How it gets found.

ContentVo's buyers compare tools before they buy. So the content is built around the comparisons they're already making and the guides they're already searching for, each written to stand on its own.

ContentVo comparison hub listing alternatives to Buffer, Hootsuite and other schedulers
ContentVo comparison hub listing alternatives to Buffer, Hootsuite and other schedulers
ContentVo comparison hub on mobile
ContentVo comparison hub on mobile
  1. 01

    Alternatives hub

    Comparison pages against Buffer, ContentCal, Hootsuite, Planoly, Post Planner, Sked Social and Typefully, each expanded to 1,200+ words of specific comparison.

  2. 02

    Guides for the ICP

    Long-form guides on B2B SaaS content calendars, building in public, and social media for SaaS founders.

  3. 03

    Try before signup

    The homepage demo writes three posts from the visitor's own URL with no account. The product is the landing page.

  4. 04

    llms.txt for AI answers

    llms.txt and llms-full.txt describe the product, plans and use cases for AI assistants that cite sources.

RESULTS

Where it stands today.

ContentVo is live with a free preview and paid plans from $19 a month, with annual billing at ten times the monthly price. It's the newest product in the studio, and we aren't publishing usage numbers yet. When there's something worth reporting, it will appear here with its source.

Shipped and live

  • URL-to-brand-profile analysis with editable voice and pillars
  • 30-day calendar generation with per-post regeneration
  • AI visuals with a model fallback
  • Automated quality guardrails on every post
  • Client review links, repurposing, workflows and creator mode
  • Calendar feed and daily reminder emails
  • 30 database migrations of hardening, metering and features
LESSONS

What we'd do the same way on your product.

  1. 01

    The cheapest integration is the one you don't build

    Dropping social OAuth removed weeks of work and a permanent support burden from the roadmap.

  2. 02

    Meter before you market

    Atomic usage reservation went in before launch. On an AI product, every unmetered endpoint is a cost leak waiting to be found.

  3. 03

    Guardrails are product, not polish

    The free preview shows three posts, so those three have to be good. Checking every post before the user sees it protects that first impression.

  4. 04

    Wire real billing early

    Moving to production billing in the second week surfaced edge cases, like comped accounts and upgrades that could have double-billed, while they were still cheap to fix.

RELATED

The services behind this build.

  • SaaS MVP Development

    2–6 week Next.js + Supabase + Stripe MVPs with auth, billing, the core workflow and launch-ready SEO.

  • AI Product Development

    LLM features that survive real users: structured outputs, RAG, guardrails and cost control on Gemini, Claude or OpenAI.

  • Next case study: ScopeCrafters

    AI proposal writer for HVAC, roofing, electrical and plumbing contractors. Site visit to branded PDF proposal in 5 minutes.

Build something like this.

If ContentVo looks like the kind of product you need, tell us what you're building. We'll reply with questions about scope, timeline and fit.

SSttaarrtt  aa  pprroojjeecctt