Agency with four Contentful clients on Ninetailed, how do we sequence the exits?
Hi all. We maintain four client sites on Contentful that used the legacy Ninetailed app. The clients differ a lot:
- Client A: high traffic ecommerce, 8 personalizations, contractually sensitive
- Client B: mid-traffic B2B, 4 personalizations
- Client C: low traffic brochure site, 2 personalizations
- Client D: low traffic, 1 personalization, tight budget
Two questions for anyone who has run a multi-client migration like this:
- How did you sequence it? Biggest client first to derisk the hard one, or smallest first to build the playbook?
- Can one Croct account hold four separate client setups cleanly, or does each client need their own organization?
1 answer
Both questions have clean answers.
Structure. One organization can hold all four clients. Workspaces separate clients within the organization, and each workspace has its own applications and multiple environments (dev and prod), so client data, slots, and experiences never mix. Agencies typically run one workspace per client. If a client later wants to take ownership of their setup, having them isolated in a workspace keeps that conversation simple.
Sequencing. Smallest first is the common recommendation for a portfolio like yours. Client C or D is a playbook-builder: your team learns the component-to-slot mapping and the experience rebuild on a site where mistakes are cheap. The forever-free plan ($0, 10k MAU, 3 content slots, 1 experience or experiment) fits a pilot like Client D with one personalization, so you can validate the workflow before any budget conversation. Once the pilot works, the CLI's create template and use commands let you package the slot setup you built and scaffold the remaining clients from it.
Derisking the big one. The migration is gradual by design: you map components to slots one at a time, and the Contentful content stays as the default fallback throughout. For Client A that means there is no big-bang moment. Each of the 8 personalizations moves independently, and an unmapped or unmatched section simply serves the Contentful default it serves today.