Our services
If you can think it, we can make it brainsoft.
If you can think it, we can make it brainsoft.
Written By: BrainSoft In Engineering
Almost every project that needs an admin side reaches the same fork: install something like WordPress, Strapi or Django admin, or build the screens yourself. The decision usually gets made in an afternoon and then lives with the team for years. I have inherited both kinds of codebases, and the pain is different in each case, not absent in one of them.
Start from the content model, not the tool. If editors manage pages, posts and media, an off-the-shelf CMS will get you live in days. If the admin exists to drive business logic, approvals or integrations, a custom panel is usually cheaper over its lifetime. Below is how I actually weigh it.
A mature CMS ships with the boring parts already solved: a WYSIWYG editor, media library, revisions, roles, a plugin ecosystem, and documentation that new hires have probably read before. That is a real head start. On a brochure site or a blog, I can hand an editor a login on day two and they know what to do.
The cost shows up later. Plugins drift, and security patches arrive on someone else's schedule. Customising the admin often means fighting the framework's assumptions about what content is. I have watched teams spend two weeks bending a CMS into a shape it was never designed for, when the underlying requirement was a single form with a validation rule.
A custom panel means you own the schema, the permissions and the workflows. If an order needs three approval steps with different roles, you build exactly that instead of bolting it onto a CMS with a plugin plus a hook plus a cron job. The screens match how the business actually works, which matters most when the admin is used eight hours a day by staff.
The honest downside is that you are now responsible for the parts a CMS gave you free. Authentication, file uploads, audit logs, password resets, accessibility. None of it is hard, all of it takes time. Budget for it explicitly, because it is the line item people forget.
// The schema is the decision. If it looks like this, a CMS is fine.
const Page = {
title: 'string',
slug: 'string',
body: 'richtext',
publishedAt: 'date'
};
// If it looks like this, you are writing business logic, not content.
const Claim = {
policyId: 'ref',
status: 'enum:draft|review|approved|paid',
approverId: 'ref',
amount: 'decimal',
auditTrail: 'append-only'
};
That second shape is where a custom panel earns its keep. State machines, money, and audit requirements are not content, and every CMS I have used treats them as an awkward guest.
I run through these with the client before writing any code. They are blunt on purpose, because the answers tend to be.
A middle path exists and is often right: a headless CMS for editorial content, plus a small custom panel for the operational side. Two systems, clear boundary, each doing what it is good at. If you want help scoping which side of the line your features fall on, get in touch and we can walk through the model together.
Whatever you pick, assume you will change it once. Content in a CMS is exportable but rarely clean: shortcodes, embedded plugin markup, media references that break. A custom panel's data is yours, but only if you wrote a migration path and kept the schema documented. I have spent more time untangling a WordPress export than I ever spent building a simple CRUD admin, and I have also seen a bespoke panel become unmaintainable because nobody wrote down what the tables meant.
So write the schema down either way. Keep an export script in the repo. Treat the admin as a product with users, not as a side effect of the database. That habit matters more than the initial choice, and it is the one thing I would insist on regardless of which route the team takes.
Yes, and it is common. Keep the content model simple, avoid deep plugin dependencies, and write an export script early. The migration is manageable if the data is clean; it becomes a project of its own if the CMS has accumulated years of plugin-specific markup.
It depends on scope, but the honest answer is that the first screens are fast and the surrounding pieces are not. Authentication, roles, file handling and audit logging take real time. Plan the work around the workflows rather than the number of tables.
Often, yes. Use the CMS for editorial content that marketers own, and build a small custom panel for operational data with states and integrations. The key is a clear boundary between the two so you are not duplicating the same records in both places.