
Off WordPress, and taking money fifteen days later
MyndStories was running India's first content-led mental health platform on WordPress, and the CMS had started deciding what the company could build next. We migrated the backend without losing a single permalink, then used it to launch a subscription books business in fifteen days.
MyndStories is India's first content-led mental health platform. Five hundred stories, a podcast catalogue, therapist listings, community circles, and a readership that shows up every week. All of it ran on WordPress, and WordPress had quietly become the thing deciding what the company could build next.
We moved the platform onto its own backend. Then we used that backend to launch a books business, which went from nothing to accepting subscriptions in fifteen days.
What WordPress was actually costing them
WordPress served articles fine. That was never the problem. The problem starts when a content platform tries to become an ecosystem, which is exactly what MyndStories was becoming: stories, podcasts, therapy, community spaces, books, a shop, programs.
Each of those is a product with its own data model, its own money, and its own state. WordPress models all of them as posts. So every new line of business turned into a plugin evaluation rather than a product decision, and the answer to "can we launch this next month" depended on whether somebody else had already built a plugin close enough to the idea.
That is a strategy problem wearing a technology costume. The founders were making roadmap choices based on what the CMS would tolerate.
The migration was a backend problem
The visible site was not the hard part. The hard part was that four years of editorial output lived inside a WordPress database in a shape that only WordPress understands, and it had to come out into a content model built for what MyndStories actually publishes: stories with a category, an author, a review state, a fact-check state, cover media, and a permalink that search engines already know.
We rebuilt the model first, then wrote the migration as a repeatable script rather than a one-time manual export. Stories, authors, categories, podcasts, and media moved across. Media came out of the WordPress uploads directory onto object storage with a CDN in front of it, so images stopped being served by the same machine that renders pages.
We ran that script against a staging copy until the difference between old and new was zero, and only then ran it for real. A migration you have rehearsed eleven times is an operation. A migration you run once is a gamble with somebody else's archive.
The editorial team kept publishing through all of it.
Every old URL still resolves
MyndStories uses category-prefixed permalinks. A news piece sits at /news/, a feature at /features/, an essay at /first-person-essays/. Those paths carry the search equity of everything published since 2022, and for a content business search traffic is not a marketing channel, it is the business.
So the new backend preserves the permalink structure exactly, with a redirect map covering anything that had to change, along with sitemaps, canonical tags, and structured data regenerated from the new content model rather than maintained by hand.
The measure of success here is that nothing happened. Rankings held. No reader hit a dead link. Migrations that lose traffic are common enough that "nothing happened" is the whole achievement.
Then the books module, in fifteen days
Myndful Reads is a monthly reading companionship. Each month a book chosen for a feeling arrives at the subscriber's door with a box of small things around it. The year runs in four quarters, Restless, Tender, Brave, and Becoming, with the feeling announced ahead of time and the book kept a surprise. Subscribers get a WhatsApp reading group and a live session with the co-founder each quarter.
Three plans: monthly to try it, quarterly for the full experience, annual for the year. Gifting on top of all three. A separate anthology sold on its own. A free book club running every Friday.
Fifteen days is not a heroic sprint. Fifteen days is what happens when the accounts, payments, admin, and media layers already exist and a new product line only has to plug into them. This is the return on the migration, arriving earlier than anyone expects it to.
A subscription is not a checkout
The money logic was the real engineering. Monthly subscribers can cancel at any time. Quarterly and annual subscribers pay upfront. Renewals have to survive a failed payment. Billing dates and shipping dates are not the same dates, so a subscriber who joins on the twenty-eighth does not get two boxes in four days.
Gifting adds a second person to every assumption. The payer is not the reader. The address is not the payer's address. The recipient may not have an account yet, and should not need one before the box ships.
Prices are inclusive of GST and frozen at the moment of purchase, so a plan change never reaches backwards into an existing subscriber's billing. Plans are served from the backend rather than hardcoded, which means pricing and packaging change without a deploy.
The box has to reach a house
Digital products end at a confirmation screen. This one ends at a doorstep, which pulls physical fulfilment into the software: address capture and validation, pan-India shipping folded into the price, a monthly ship cycle whose contents change every time, gift wrapping as a paid add-on with a handwritten card, and a per-cycle view of exactly who is receiving what.
All of it runs from an admin console the MyndStories team operates themselves. Nobody has to call us to close a cycle.
Revenue on day one
The books module took its first subscription on the day it launched.
None of that was luck. The audience was already there, the community was already there, and the offer was built for people who had been reading MyndStories for years. What the build had to do was be ready at the moment the announcement went out, take money correctly the first time, and not fall over when everyone arrived at once.
Where it stands
MyndStories now runs stories, podcasts, therapy, spaces, books, and a shop across one backend they own. Each new line of business is a module rather than a plugin, and each one gets cheaper than the last because the shared layer underneath keeps growing.
The books module took fifteen days. The thing we are proudest of is that the next one will take fewer.