Launching today

ShipMore
Turn any CSV into an agent-operable, revenue-ready product
7 followers
Turn any CSV into an agent-operable, revenue-ready product
7 followers
ShipMore turns a CSV into a data product you can charge for — a directory, research database, API, or feed. Search, Stripe checkout, and SEO pages are already wired. It's agent-operable end to end: a --json CLI, MCP, and a SKILL.md that Claude Code or Codex reads. Put it on a nightly loop and the agent checks traffic and revenue, drafts fixes, and stops — nothing goes live until you approve. Self-hosted, MIT licensed. One payment, your data, your Stripe account.
Interactive






Payment Required
Launch Team / Built With



Hey PH 👋 I'm Fabijan, maker of ShipMore.
Fastest way to show it is what I built with it. Two live products, same engine, both started as a CSV:
medspa.shipmore.io — a local directory (faceted search, city × category pages, 3-tier paywall)
aicompaniesdb.up.railway.app — a research DB of recently-funded AI companies (sortable table, faceted search, paid API)
Here's the itch behind it: agents can scaffold a frontend in an afternoon now. What they still can't hand you is the wiring underneath... schema, billing, access control, search, SEO, freshness, data driven analytics observable by your agent through an optimized CLI. That's where data products quietly die before they ship, and it's the layer ShipMore owns.
How it works:
Drop a raw CSV (or JSON) — it infers the schema and assigns roles, you curate.
Bring your own agent: a CLI, MCP, and a SKILL.md, so whatever you already run — Claude Code, Codex, Cursor — drives it. No wrapper, no AI tax, no lock-in.
The agent proposes, you approve in the admin panel. Draft/publish gates on everything, so a nightly loop can run it without shipping junk while you sleep.
The honest bits: it expects a clean, flat CSV or JSON, so sourcing your initial data is still your job. And it's self-hosted on purpose (your data, your Stripe, one cheap box for unlimited niches), so it's not for you if you want hosting managed for you.
Two days ago a stranger bought it without ever talking to me, that's when I knew it was time to stop polishing and launch.
$159 once, MIT licensed. PRODUCTHUNT20 takes 20% off through July 28.
Two things I'd genuinely love your take on: does bring-your-own-agent + self-hosted resonate, or would you rather have it fully managed? And what dataset would you sell first? 🙏
love how this skips the whole build-a-saas loop for small datasets. one thing that would make it click for me though - a built-in rate limiter or simple auth token system for the API output, since right now anyone hitting the endpoint could scrape the whole thing. would feel way safer before pointing it at a paid feed.
@ilan1096635 good catch and it's clever precisely because it lands on the layer we haven't hardened.
Quick context on where we are: ShipMore already does four monetization modes; credits, subscriptions, subscription+credits, and one-off purchases, and the agent can annotate any field in the schema as premium, so buyers on the wrong tier get those values redacted server-side..
you've spotted the honest gap: that gates which fields a row shows, not how many rows someone can pull.
There's no request-volume cap or per-tenant token on the endpoint yet, so for a subscription feed specifically, someone could paginate around the paywall. Field-level entitlement + a volume cap + a revocable token is the complete story, and you've basically drawn the missing third of it. Are you picturing subscription feeds mainly, or metered/credit-per-call?
Would love to see a built-in schema validator that flags bad rows before the nightly agent kicks off, maybe with a dry run report you can review. Would save a lot of "why is the feed wrong again" mornings.
@fundatarm415678 oh this is a good one, and honestly half of it's already in there. there's a --dry-run on import today that walks every row and tells you what'd break without saving anything (keeps the staged data too, so you fix + re-run). and there's a gate up front that kills obviously-broken feeds before they even start.
the bit you're actually after; flagging the bad rows (wrong date format, enum that doesn't exist, etc) — that check exists too, it just runs in the nightly pass after import right now instead of before.
pulling it into the dry-run report is the obvious move. basically a "here's the 11 rows that'll break and why" before the agent touches anything.
adding it to the list thanks 🙏
Took a small CSV through it and the Stripe checkout just worked without me touching any code, which is honestly more than I expected. The agent approval loop feels like a nice guardrail if you actually let it run nightly.
@zzetkoymalu17d Thanks İzzet 🙏 going from a CSV to a working thing is exactly what I wanted it to feel like. And yeah, keeping a human in the loop while the agent does the work is the whole point. Really glad it landed for you.