Work/Solid Info
NewsWeb Development

Solid Info

solid.infoClutch review

Solid Info sold their geopolitical research through a custom CMS that needed developer time for every change. We rebuilt the platform on WordPress, moved every article and every paying subscriber across, and left the site in their own team’s hands.

Solid Info: Subscription platform for geopolitical research
1 week
brief to launch
800+
publications
Day 1
first paying subscriber

The problem

Solid Info publishes geopolitical research and sells it to readers. The site ran on a custom CMS, so every change needed developer time and a scheduled release, whether it was a new page or a different price on one article. They had someone on staff who knew WordPress, so moving to WordPress was the cheaper answer.

What we built

A WordPress site that works like the platform they had, with the problems they had been living with fixed and the things they had been asking for built in. The two they wanted most were about price: any article can carry its own, and any article can be free.

Plan prices are read live from Stripe instead of living in the code, so changing what a subscription costs is a change in the Stripe dashboard and nobody ships a release. Per-article prices are set from the publications list, one at a time or across a whole selection, and an article priced at zero skips the paywall entirely: no gate, no checkout, and the narration plays for anyone.

The build covered:

  • Stripe subscriptions, corporate seats and single-article sales
  • The paywall and the entitlement model under it
  • Per-article prices and free articles
  • Accounts, Google and Facebook login, team management
  • ElevenLabs audio narration
  • SEO and page speed
  • Deployment and automated backups
The Solid Info subscription page showing the Individual and Corporate plans, each with a monthly and yearly price.

Moving everything across

The whole archive, every reader account and every paying customer. Readers kept their passwords, because the old hashes went into WordPress as they were and nobody had to be sent a reset. Subscriptions were not recreated either: we kept the Stripe account and reconnected the customers already in it, so nobody was re-billed and nobody lost time they had paid for. Old article links still work. No downtime, nothing lost.

SEO and speed

The SEO problem with a paywall is that the work you want found is the work you are hiding. A paid article serves its first three paragraphs as ordinary server-rendered HTML and then the purchase options, so a search engine indexes the same preview a reader sees and the rest of the piece never leaves the server. Free articles are served in full. Articles moved from long identifiers to slug URLs, and no old link broke: a request that would return a 404 is matched against the identifier the article arrived with and redirected permanently to its new address. The sitemap covers the publications and their topics, topic links lead into the filtered archive, every article ends with six related pieces, and author archives return a 404 rather than adding empty pages to the index.

For speed, the work is kept off the request. Pages are cached, and the front page clears itself when something is published or the weekly picks change. Subscription plans are read from Stripe on a timer rather than on every page view. Fonts are self-hosted, images are WebP and load lazily, and each page pulls only the styles and scripts it uses, each versioned by the file itself so a deploy never leaves a reader on a stale one.

A Solid Info publication seen logged out: three preview paragraphs fading into the purchase options.

What they can do now

Price an article, or a hundred at once, from the publications list. Make one free. Choose what leads the homepage. Change what a plan costs in Stripe. Edit the templates in WordPress. Add a colleague to a corporate account. None of it comes back to us. In their own words, their research now earns recurring revenue.

Tech stack

Technologies we used

Server-side
WordPressPHPMySQLComposer
Client-side
JavaScriptCSSHTML5
Integrations
StripeElevenLabsGoogle LoginFacebook Login
Infrastructure
DockerDocker ComposeCloudflare
Next projectFeatherWeight

Have a similar challenge?

Tell us about your project — we reply within 24 hours, and you'll talk to the people who do the work.

Start a projectSee our work