Writing and content decision

Naval 25

A competent developer can reproduce the core voting, search, and quiz features in about a week and maintain it cheaply; there are no durable moats visible on the site to prevent replacement.

Visit website

Built by Marc Lou, who ships 32 products in this index

You pay

Not priced

No pricing page we fetched carried a figure, so there is nothing to compare against. The build side is still real.

You’d pay instead

$50one-off25 h to build

$0/mo5 h/mo upkeep

No published price to break even against.

No open-source build does this yet

Nothing published replaces this one, so a replacement starts from an empty file. Here is what it would have to cover.

What a replacement has to do

  • Users view quotes, search, or take a 2-option quiz and cast up to 25 votes; votes are tallied and rankings updated hourly.

What it still won’t have

  • existing public vote history and social proof
  • any domain-specific SEO and referral traffic built by the current site
  • brand recognition and trust of the hosted product

What remains hard

  • Product polish and ongoing maintenance
Read the build prompt

First-year cost

No published price

Naval 25 does not publish a price we could read, so there is nothing to compare against. What building costs is below.

Money you would actually spend

Keep paying
—

Subscription price × seats × 12

Build it
—

AI build —APIs + hosting —

Time you would spend

—

—

What you would spend

What we assumed

The verdict above measures whether you could build it. This one is only about money.

Runnable build prompt

Not run yet
Build a small web app with Next.js (React) + TypeScript, Postgres (hosted via Supabase or Neon), and Vercel for hosting. Core features in scope: serve a paginated list of quotes with upvote buttons; enforce a 25-vote limit per visitor (use per-IP + per-browser cookie); implement a search endpoint (Postgres full-text) and a quiz endpoint that returns two random quotes and records the selected one; background worker (cron or serverless scheduled function) that aggregates raw vote rows into hourly counters and updates the rankings; simple admin import script to bulk-load quotes from JSON/CSV. Out of scope: social login, analytics dashboards, monetization. Require: input validation, rate-limiting, tests for API endpoints, error handling, and deployment scripts (CI).
How we checked1 sources · 2/3 runs agreed · evidence score 78

How the score was reached

  • Build verdict base78
  • Evidence score78

The base comes from the verdict. Everything under it is a check that either happened or did not, and each one is a fact frozen in this record rather than a judgement made at render time - so the same evidence always produces the same number.

How scoring works →

Cited sources · 1

Every page the run actually retrieved.

Integrity checks

What held up, and what did not.

! 2 of 3 runs agreed; the verdict is the majority✓ Citations limited to fetched pages! 1 moat recorded