FO LI
Folio
A newsroom, ready to run EN · ZH
Same code, different paper

You bring the masthead. Folio brings the newsroom.

A complete bilingual local-news platform — editor, workflow, ads, sponsorships, paid interviews, newsletter, payments — sold once, self-hosted, yours. Everything above changed in the back office. None of it needed a developer.

1,058Tests, all green
71,217Lines of TypeScript
68Database tables
14Languages ready
16Decision records

Change one line, change the paper

Most white-label templates mean “find and replace the name.” Folio means three genuinely separate things move, and only one of them is code.

The brand

Name, abbreviation, tagline, copyright line, area served, founding date, and the masthead seal — per language, all in the back office. There is no brand string to grep for, because there is no brand string.

The languages

One line in i18n/routing.ts and a message file. English and Vietnamese, English and Spanish, or one language on its own. Fourteen are ready in the database; adding a fifteenth is one migration line.

The place

Time zone and currency are settings, not constants. Dates, the scheduling board, the daily digest, revenue reports and every admin table follow them.

This was tested the honest way. An independent pass took a clean export, switched the language pair to English + Vietnamese, and ran the whole chain — install, migrate, seed, build, four gates, pre-launch check, create content in the back office, view the front end, smoke test. It never had to open a source file to make a step work.

Built for a newsroom that has to make money

This is where Folio parts company with a blog engine. A local publisher does not live on page views — it lives on the businesses down the street.

Paid interviews

A public service page with tiered plans, an enquiry inbox, orders, Stripe checkout or manual payment, and a business-insights view that answers “did this month pay for itself?”

Ad slots that are actually sold

Ten placements with weighted rotation, impression goals and auto-stop, click and impression tracking, and a sponsor label that is never hidden from readers.

Newsletter

Double opt-in, per-language audiences, a block composer, scheduled sends, suppression list, and delivery events fed back from the provider.

Daily deals & expert columns

Two more ways to sell a slot to a local business or a professional, both with their own front-end surfaces and back-office forms.

The editorial half

Rich editor with revisions, an optional single review gate, scheduling, corrections, unpublish with 410 or redirect, submissions inbox, reader comments with moderation.

The things you notice at month three

Audit log on every state change, role-based permissions, notification preferences with an email digest, media library with licence expiry warnings, redirects, sitemaps, RSS, structured data.

Built like someone has to maintain it

1,058 tests, and they mean something

Including source-scanning guards that fail the build if a component formats a date without the site time zone, if a notification type is listed with nothing to fire it, or if a previous client’s name reappears anywhere in the tree.

A 1,583-line specification

Written down to the table, the permission and the error case — plus sixteen architecture decision records explaining why each fork was taken and what would justify revisiting it.

Rules an AI assistant will read

The codebase ships with the constraints it was written to. Point Claude Code or Cursor at it and your assistant inherits them instead of guessing.

One command to install

pnpm run setup asks what it needs, writes the environment file, runs the migrations, seeds a fictional town’s worth of demo content, creates your owner account, and prints a pre-launch report.

What it isn’t

Everything below is true, and you would rather find out now than after paying.

Priced once

Single site
$449

One production publication. Deploy it, modify it, own your changes. Twelve months of updates; the licence itself does not expire.

Studio
$1,290

Unlimited client publications. Build and hand over finished sites under your own name. Everything above, plus the right to deliver it as client work.

The store opens shortly. Licences are being set up right now; the demo above is the real product running, and it is the thing you would be buying. Check back in a day or two.

Neither tier lets you resell the source itself, repackage it as a starter kit, or run it as a multi-tenant service. The full terms ship with the purchase and are worth ten minutes of your time before you deploy.