Building a software product, not just a project
A SaaS platform is different from an internal system in one crucial way. Strangers depend on it, at hours you are asleep, on devices you have never seen, and they leave without telling you when it disappoints them. That changes almost every technical decision, and we have made those decisions on our own product as well as for clients.
What building a SaaS platform actually requires
Founders usually arrive describing the features their product will have. Those features are typically the smallest part of the work. What consumes the schedule is everything surrounding them, namely accounts and organisations, invitations, roles and permissions, onboarding for people who have never seen the product, subscription handling, notification infrastructure, usage reporting, administrative tools for your own team and the monitoring that tells you something is wrong before your customers do.
The second surprise is that a product must be built for people you will never meet. Internal software can rely on training and a colleague at the next desk. A product cannot. If a new user cannot work out what to do in the first two minutes, they leave and you never learn why. That reality drives us to design the empty state, the first run experience and the moment somebody invites a colleague with far more care than a typical business system would need.
The third is that a product accumulates data far faster than anyone plans for. A table that looks fine with a thousand rows behaves very differently at ten million, and the point where it degrades is usually the point where the business is growing and least wants a distraction. We design the data model and the indexes with that trajectory in mind from the start.
Multiple tenants without leaking between them
Almost every SaaS platform serves many separate organisations from one system, and the single most damaging failure available is showing one customer another customer data. We enforce separation at the database query level, not merely by filtering in the interface, and we test it deliberately by attempting to reach records that should be invisible.
Alongside separation sits the permission model within each organisation. An administrator can invite and remove people. A manager can see everything in their branch. A regular user sees only their own work. An external collaborator sees one project and nothing else. Getting this structure right early is essential, because retrofitting a permission model into a running product is one of the most disruptive changes possible.
Subscriptions, trials and the billing reality
Billing is where many products lose money quietly. Trials that never convert because nobody followed up. Accounts that keep working after a card fails. Upgrades that do not take effect until somebody notices. Refunds handled by hand in a spreadsheet. We build the subscription logic properly, integrating with a payment provider so cards, renewals, failures, upgrades, downgrades and cancellations all behave predictably.
Equally important is what happens at the edges. What does a customer see when their trial ends? Can they export their data if they leave, and how quickly? What happens to their records if they come back three months later? These questions have real commercial consequences and they deserve deliberate answers rather than whatever the code happens to do.
Starting small on purpose
The most common way a new product fails is by trying to launch complete. Eighteen months of building without a paying user produces something confidently wrong, and the money runs out before the corrections can be made. We push hard for a first version that solves one problem properly for one clear group of users, released early enough that reality can still shape it.
That does not mean building carelessly. The foundation, meaning the data model, the tenancy, the permission structure and the deployment, is built properly from day one because those are expensive to change later. The feature surface is what stays small. That combination gives you something you can grow rather than something you must replace.
What a platform needs
- Organisations, invitations and team management
- Roles, permissions and data separation
- Onboarding designed for first time users
- Subscription, trial and payment handling
- Notifications by email, message and in app
- Usage reporting for you and your customers
- Administration tools for your own staff
- Background processing for heavy work
- Monitoring, alerting and tested backups
- Data export so customers are never trapped
Stack
We have done this for ourselves, not only for clients
QuranRecord is our own production platform. It serves schools, madrasas, mosques, private teachers and families across many countries, handles more than a million page views a month, and runs on the web, on Android and on iOS. We designed it, built it, deployed it, scaled it and support it, which means the advice we give clients about platform work comes from operating one rather than from reading about it.
Several of the lessons on this page came directly from that experience. Multi tenant separation and role structure had to be right because school data is sensitive. Notification volume forced proper background processing early. Time zones across many countries made scheduled work far more subtle than it first appears. Growth in stored records made indexing decisions matter in a way that is easy to underestimate in planning.
If you are building a product, that operational experience is probably the most valuable thing we bring. We know which corners are safe to cut in version one and which ones will cost you a rebuild in version three.
SaaS development questions
Turn the idea into a first version that earns
Tell us who the product is for and what problem it removes. We will help you work out the smallest version worth launching and what it would take to build it properly.