Building the site
got free. Keeping it
indexed didn't.

Any agent can turn a CSV into a directory by dinner. Month six is the hard part — freshness, per-entity structured data, and a page set that stays worth indexing. ShipMore runs that half: on a schedule, across every property on one box, with an approval queue before anything ships.

$249 · launch price · one-time · unlimited properties
~/medspa-directory — shipmore agent session ↥ live
admin ▸Status on the medspa directory. agent ▸Reading monitor brief (gsc · stripe)... done. 268 records, 14 unchanged 90d+. 3 cities under the page-count gate. GSC: /medical-spa/{city} impressions −12% w/w. Proposed: 17 drafts. Review, or adjust first?gate admin ▸approve all agent ▸17 published. Every one revertable. Nothing shipped unreviewed. comparemedspa.com live · data updated today operate loop scheduled · nightly — reads brief, drafts fixes, waits for your approval
medspa-directory.example.com ~25s · 5 clips
see it work — build · search · edit · earn · operate
● real Stripe · real search build · search · edit · earn · operate

Two live tenants · two domains · one engine

The build got free. That's the problem.

01Your agent ships a directory in an afternoon. So does everyone else's.
02That is precisely what Google's scaled content abuse policy targets — and enforcement is site-wide, not page-by-page.
03What survives is current data, real structure, genuine per-page distinctness — held continuously.
04None of that is a prompting problem. It's freshness jobs, structured data, review gates — infrastructure.
05By month six nobody is running it, the data is stale, and the property quietly stops earning.
six months later
Impressions sliding, nothing flagging what went stale, and the one property you kept alive by hand was the whole portfolio.

Every link looks survivable on its own. Follow what each one forces next and the afternoon that felt like a win becomes a property nobody is maintaining.

ShipMore is the layer after the build: a scheduled agent reads the GSC + Stripe brief, drafts the refreshes and the fixes, and waits at an approval queue — across every property on one box. see the loop →

the machine

Five stages. The first four ship the site. The fifth keeps it alive.

Every operation exists at three layers — cli, mcp, and admin — so humans conduct and agents execute.

01
Ingest
Flat CSV/JSON arrives in its intended shape. Mapped, validated against the curated schema, written.
csv · json
02
Present
Choose the shape. Directory, Research DB, API, or Feed — same engine, different skin.
4 shapes
03
Earn
Pre-wired paywalls: featured slots, subscriptions, credits, one-offs. All four live, all auto-configured.
stripe
04
Monitor
Every channel instrumented in one place. GSC for organic. Meta CAPI for paid. Internal search for intent. Outbound clicks for affiliate. One actionable sentence per niche — not a chart wall.
gsc · capi
05
Operate
A scheduled agent — a Claude Code loop, a routine, plain cron — reads the monitor brief, proposes listings & SEO content. Human approves via draft/publish. Loop restarts on its own.
agent

One engine. Four shapes. Zero rebuilds.

Same Payload collections, same search, same Stripe layer. The shape is a skin over a single economy.

01/directory

Directory

Curated lists, local SEO, lead gen. Faceted search, a detail page per record with JSON-LD. The most legible, most demo-able proof of the system.

earn — featured slots · lead capture
listings
02/research

Research DB

Like Crunchbase for your niche — a searchable database of records (companies, angels, datasets) behind a subscription. Semantic search, saved queries, CSV export.

earn — subscription
searchable table · Crunchbase-style
03/api

API

Agent-to-agent data access. Rate-limited endpoints, auth and API keys built in, an OpenAPI spec out of the box.

earn — per-call credits · tiers
endpoints
04/feed

Feed

Signal alerts, deal flow, market pulse. Subscribers pay for the stream of updates, not the snapshot. RSS, email, webhook — deduped and diffed.

earn — subscription
live stream

Everything the month-six version needs.

Import, present and monetize — then the half nobody ships: freshness on a schedule, per-entity structured data, thin-page gating, and an approval queue between your agent and production.

csv · json

CSV → live, then kept live

The agent infers your schema, validates and imports it — then the same CLI re-runs the refresh on a schedule.

page builder

20+ blocks, real logic

The pricing block fires live Stripe checkout. Wired transactional features — not styled divs.

stripe · auth

Four ways to get paid

Subscriptions, credits, one-offs and featured slots — every Stripe type, with the paywall and customer accounts (Better Auth, Google OAuth) included.

search

Search & browse built-in

Faceted search and six layouts — grid, table, gallery, feed, map, compare — over your records.

draft / publish

An approval queue

Every collection is draft/publish with full version history. Your agent proposes, nothing reaches production unreviewed, and every change is revertable.

seo · pseo

Per-entity structured data

JSON-LD per record, not generic Article markup — plus meta, OG, sitemaps, and a compound taxonomy matrix with count-gating that keeps thin pages out of the index.

cli · mcp · skills

Agent-operable

A --json CLI, MCP, and a SKILL.md in the open Agent Skills format — Claude Code, Codex, or Gemini CLI runs the whole box.

multi-tenant

A portfolio on one box

Unlimited branded properties on a single deployment — and one loop maintaining all of them. The next one launches for $0.

/operate

Monitor & operate

GSC and Stripe signals distilled to one action per niche — a sentence for you, the same JSON for your agent's loop.

Launching a property costs hours. Keeping it alive costs a cron line.

The launch was never the risk — it's that the site you launched needs maintaining every week after, and that cost is what caps you at one property. Put the maintenance on a schedule and the ceiling moves: launch, keep it alive for the price of a cron entry, add the next one on the same box.

01 · launch

Launch

24–48h · cost: hours

Ghost-launch on the existing box. Record pages indexed with per-entity JSON-LD, compound pages count-gated so nothing thin ships. SKILL.md surfaced for LLMs.

Organic AEO/LLM opt · Paid probe
02 · keep it alive

Keep it alive

week 2 onward · every week, forever

The part that decides month six. A scheduled agent reads the GSC + Stripe brief, refreshes what went stale, drafts the pages the data now supports, and stops at the approval queue. Pair taxonomies and the compound matrix (e.g. /medical-spa/{city}) generates with breadcrumbs, chip nav, and count-gating.

Freshness loop pSEO matrix Approval queue
03 · add the next

Add the next

week 12+ · the second property

Launch the next one on the same box, into the same loop. Marginal cost: a CSV. Two properties → three → twenty, all maintained by the same nightly run. The portfolio is the moat because the maintenance is shared.

All channels Day 1 ready

Keep winners. Kill losers. The one that works is still working in month six, because something is running it.

Anyone can ship the site. Nobody ships the six months after it.

Every tool below gets you a live site. The rows that decide whether it is still indexed and still earning next year — freshness, per-entity structure, thin-page gating, a review gate an agent can't bypass — are the rows nobody else fills.

  Directory builders SaaS boilerplates WordPress + plugins DIY ShipMore
Listing schema + searchweeks
Per-entity JSON-LDpartialpartialweeks
Thin-page gating on pSEOweeks
Scheduled freshness loopmonths
Approval queue + version historypartialmonths
Monitor brief (GSC + Stripe)partialmonths
CLI + MCP for agentsmonths
All 4 Stripe typespartialpartialpartialweeks
Portfolio on one boxmonths
Self-hosted (own data + Stripe)
Managed hosting (we run it for you)
Cost to run$$$ / yr$ once$$ / yryour time$ once

Every cheaper-looking route is really a stack — directory, search, pSEO, local SEO, payments — each its own plugin or SaaS, each renewing every year, and none of them running the loop that keeps the pages worth indexing. ShipMore wires all of it into one $159 payment.

$159 once. Every property you run, on one box.

Built for operators, not just engineers. If you've ever self-hosted WordPress, you can run ShipMore — one-click deploy to a cheap box, no Docker, no DevOps. Not for no-code beginners who want hosting handled for them.

shipmore · launch pricing
One-time. Lifetime updates.
$249 $159 USD
paid once · no subscription · MIT licensed · $249 launch price
what's in the box
Instant access to the private GitHub repo
Token delivered to your inbox the moment Stripe confirms.
All 19 blocks with live business logic
Stripe, auth, search, paywall, explore, taxonomy, generation — all wired.
CLI + MCP + SKILL.md
Agent Skills open standard — Claude Code, Codex, or Gemini CLI operates the box out of the box.
Multi-tenant on one cheap box
Unlimited branded properties on a single deployment — your next one launches for $0.
The operate loop + approval queue
Monitor brief (GSC + Stripe), scheduled refreshes, draft/publish with full version history on every collection.

Frequently asked questions.

If we don't have it yet, we say so.

01 Do I need to clean my data first?

Yes. ShipMore expects a flat CSV in its intended shape — one row per record, columns matching the schema you want. Sourcing, merging, and cleaning stay upstream. If you're not sure your data is ready, the CLI's schema infer step will tell you in about 2 seconds.

02 My agent can build this in a weekend. Why would I buy it?

It can build it. That half is genuinely free now, and pretending otherwise would waste your time. What it doesn't give you is month six: a freshness loop running on a schedule, per-entity structured data, thin-page gating, an approval queue between the agent and production, and all of it across more than one property on one box. That's still weeks of integration work — and it's the part that decides whether the site is still earning next year.

03 Will programmatic pages like /medical-spa/{city} get me penalized?

Templated pages generated at scale with thin or duplicated content are exactly what Google's scaled content abuse policy targets, and enforcement is site-wide rather than page-by-page — the weakest pages can drag the whole property. ShipMore gives you the controls that matter: count-gating so sparse compounds never generate or get indexed, per-record JSON-LD instead of generic markup, and a scheduled loop that keeps the underlying data current. It does not give you a guarantee — what you publish is still your call, and anyone promising otherwise is selling you something.

04 What if my agent breaks something?

Every collection is draft/publish with full version history. The agent proposes, nothing reaches production unreviewed, and every change is revertable. That approval queue is what makes an unattended scheduled loop safe to run against a property that takes payments.

05 Why self-hosted? I prefer managed SaaS.

You own the data, the Stripe account, the infra — and the bill is one cheap box for unlimited properties instead of per-property SaaS fees. Deploy in one click, never get squeezed on price changes.

06 Is this just another Payload CMS template?

Payload is the data layer underneath — yes. But the product is the entire Ingest → Present → Earn → Monitor → Operate loop, with the CLI, MCP, and 19 blocks wired to live business logic. A template gives you scaffolding, and then you maintain it by hand forever. ShipMore gives you the operate layer.

07 Will my AI agent actually be able to operate this?

Yes — shipmore CLI is the canonical operator surface, MCP is a thin adapter, and the bundled SKILL.md follows the Agent Skills open standard, so it loads unchanged in Claude Code, OpenAI Codex, Gemini CLI, Cursor — 40+ agent tools. The 4-phase ingest workflow (infer → propose → apply → import) is designed for agent execution with operator confirmation gates.

08 Can my agent run it on a schedule — loops, routines, goals?

Yes — that's the point. Every operation is a CLI command with --json output, so it drops into whatever your stack schedules with: a Claude Code /loop or cloud routine, a Codex scheduled task, plain cron. The nightly shape: the agent reads shipmore monitor brief --json, proposes fixes and content as drafts, and the approval queue is waiting with your morning coffee.

09 What if I outgrow it?

Payload is underneath. Code is yours. MIT licensed. No lock-in — fork it the day you outgrow it.

Stop shipping pages.
Start keeping them alive.

Your agent already builds these. This is the part that keeps them earning.

▸ get shipmore · $159
$249 · launch price · one-time
One-time. MIT licensed. Your code, your infra.