When the CMS is the wrong shape for the problem.
A lot of software starts life as a spreadsheet that got important. Then somebody tries to make a CMS do it, because a CMS was already there, and eighteen months later the site is carrying business logic it was never designed to hold and nobody wants to touch it.
We build the application properly when that is what the problem needs. Laravel, Symfony or Node on the back, React or Vue on the front, and a data model designed for the process rather than bent around one.
- Internal tools and admin systems
- Client and partner portals
- Dashboards and reporting
- Booking, quoting and workflow tools
- Marketplaces and directories
- REST and GraphQL APIs
- CRM and ERP integrations
- Payment provider integrations
- Authentication and SSO
- Scheduled jobs and queues
Five kinds of application, and what each is for.
These cover almost everything we are asked for. The common thread is a process that has outgrown whatever is currently holding it.
Internal tools
The spreadsheet that became load bearing. Quoting, scheduling, stock, approvals, onboarding. Built around how the team actually works instead of how a generic product assumes they do.
- Role-based permissions and approval chains
- Audit trails on anything that matters
- Bulk operations and import routines
- Exports that finance will accept
Client portals
An authenticated area where a customer sees their own orders, documents, reporting or account, so your team stops emailing PDFs.
- Account and sub-account structures
- Document access with permissions
- Self-service that reduces support load
- Notifications people do not switch off
APIs and integrations
Connecting systems that were never designed to talk to each other, in a way that survives one of them being unavailable.
- REST and GraphQL service design
- Queued jobs with retry and dead-letter handling
- Failure surfaced rather than swallowed
- Versioning so consumers do not break
Dashboards and reporting
Operational data turned into something a person can act on in under a minute, rather than a report nobody opens.
- Aggregation designed for the query, not the schema
- Scheduled and on-demand exports
- Access control on sensitive figures
- Performance that holds as data grows
Application rescue
Builds that stalled, overran, or lost the only person who understood them. Always begins with reading the code rather than promising a date.
- Audit of code, data model and deployment
- Honest continue-or-restart recommendation
- Stabilise first, then improve
- Documentation written as we go
The parts nobody quotes for
The work that decides whether an application is still usable in year three, and the first thing dropped when a quote is being squeezed.
- Automated tests around business logic
- Environments that match production
- Error tracking and structured logging
- Database migrations that are reversible
We turn down custom builds fairly often.
Build custom when
- The process is genuinely specific to how you operate
- Off-the-shelf would need heavy customisation anyway
- Integration with internal systems is central
- The data model is the product
- You will own and fund this for years
Do not build custom when
- An existing SaaS product covers 90% of it
- The requirement is still changing weekly
- Nobody internally will own it after launch
- The budget covers the build but not the upkeep
- It is really a reporting problem in disguise
What clients ask about custom builds.
How do we know whether we need a custom application or a CMS?
Which stack do you use and why?
Can you integrate with our existing systems?
Do you build mobile apps?
How do you handle authentication and security?
What does the project actually look like week to week?
Can you take over an application somebody else started?
Who owns the code?
How do you price custom work?
What happens after launch?
Describe the process that is eating people’s time.
A spreadsheet, a workflow diagram, or a description of what your team does by hand every week. Within one working day you get a reply from the engineer who would build it.
Before anything is signed, you get a written technical assessment: the real scope, where the risk sits, what we would build differently and why, and a fixed price against it. It costs nothing and it is yours to keep either way.