Web applications
Web application development
Platforms, dashboards and SaaS products - accounts, data, payments and operator tooling - designed and built from the first screen through to a system that runs in production.
Problems this solves
- The process currently runs on a spreadsheet, a shared inbox and someone remembering to follow up.
- Off-the-shelf software covers eighty percent of the workflow, and the missing twenty percent is the part that makes the business work.
- Several tools each hold part of the data and none of them agree with each other.
- Customers can request something online, but every request still needs manual re-entry somewhere.
- The product idea needs accounts, permissions and invoicing before anyone can be charged for it.
Who it is for
Teams that need real product functionality rather than pages: reservation systems, client portals, internal tools, and multi-tenant products with subscriptions and role-based access.
What is included
Product architecture
The data model, the flows and the boundaries between them, designed before code so the application can grow without a rewrite.
Accounts and permissions
Authentication, roles and multi-tenant separation where the product needs them, with the access rules enforced on the server rather than hidden in the interface.
Payments and invoicing
Card payments and subscription invoicing integrated into the workflow, including the states that actually cause support tickets - failed payments, cancellations and refunds.
Operator tooling
The admin side people use every day: approvals, overrides, search, and enough reporting to answer the questions that get asked weekly.
What you receive
- A working application deployed to an environment you control
- A documented data model and the reasoning behind it
- Authentication, roles and permission rules enforced server-side
- Operator or admin interface for the day-to-day workflow
- Transactional email or SMS where the flow requires it
- Error and edge-case states designed, not left to a default error page
- Handover documentation covering deployment, environment variables and how to extend the system
How we work
- 01
Scope
We define the core flows and the smallest version that delivers real value.
- 02
Design
Screens and states mapped before build, including the failure states.
- 03
Build
Production code shipped in increments you can log into and use.
- 04
Iterate
We refine against real usage and prepare the system to scale.
Performance, accessibility and search
Interaction that stays responsive
Work is kept off the main thread where it can be, lists are paginated or virtualised rather than rendered whole, and slow operations report progress instead of freezing.
Accessible operator interfaces
Admin tools are used all day, often by keyboard. Focus order, labels, error messaging and contrast are treated as functional requirements, not polish.
Indexing under control
Application routes behind a login are excluded from indexing, and only the genuinely public pages - marketing, public profiles - are crawlable and in the sitemap.
What we build with
- React
- TypeScript
- Server-side rendering
- REST and JSON APIs
- Stripe
- Relational data modelling
- Role-based access control
Integrations
- Stripe payments and subscriptions
- Transactional email
- SMS notifications
- Calendar and availability sources
- Existing internal APIs
- Analytics and error reporting
Cost and timeline
We do not publish fixed prices or delivery times, because scope changes both by an order of magnitude. You get both in writing, specific to your project, before any commitment.
What drives the price
- Number of distinct user roles and how differently each one sees the product
- How much of the business logic is genuinely unusual rather than standard
- Whether payments, invoicing and refunds are in scope
- Integrations with systems you do not control
- Whether an existing backend or data set has to be worked with or migrated
- How much operator tooling is needed on day one versus later
What drives the timeline
- How settled the workflow is - undecided rules are the main cause of overrun
- Access to third-party accounts and test credentials
- How many roles and states have to be designed and tested
- Whether data has to be migrated from an existing system
- Review turnaround on each increment
Related work
- Systems
Bookyra - Salon Scheduling Platform
Salon reservation platform for beauty professionals, with schedules, reminders, invoicing, public profiles and operator dashboards.
Read the case study - Websites
Planirent - Car Rental Website & Reservation Flow
Custom car rental website and reservation system with card payments, availability logic, and practical operator workflows.
Read the case study
Frequently asked questions
Yes. Multi-tenant applications with authentication, role-based access and subscription invoicing are a core part of what we build - Bookyra is exactly that kind of platform.
Yes. Availability logic, deposits, confirmations, operator approval and refund handling are what we built for Planirent, and that combination is the usual reason a plugin is not enough.
Often, yes. We can build against existing APIs, or build the backend where one does not exist. We look at what is there before proposing to replace it.
The one that completes a single real workflow end to end for one type of user. Half-finished breadth is much harder to evaluate and much easier to get wrong than narrow depth.
Ready to start?
Tell us about your project and we will come back with a clear, honest plan.
Start a project