Portals, back-office systems, dashboards and booking platforms. We model your process, build a typed API with hard rules and an interface your team can’t get wrong.

What it is
A web application is your process in software. So we don’t start with screens but with rules: what is an item, a booking or an order, who may do what, and what must never happen.
Who it’s for
For companies where the process is the edge, or where three packages are glued together with spreadsheets. If an existing package fits, we’ll say so.
What you get
Web applications- 01
Domain and data model
Your business rules become a PostgreSQL schema with migrations, a state machine and a typed API. Mistakes are made impossible instead of caught afterwards.
- 02
API and background jobs
REST on Fastify or Next.js route handlers, documented with OpenAPI and validated with Zod. Syncs, exports and calculations run in queues with BullMQ and Redis.
- 03
Back-office tools
Worklists, wizards, filters and bulk actions for the team. Statuses and blockers are visible in the interface, so rules don’t live in a manual.
- 04
Portals
Protected areas for customers and partners with their own sign-in and permissions, like the B2B and consignment portals in Collett Core.
- 05
Real-time screens
Live updates for screens that must always be current, like the staff screen on the tablet at Bistro & Boules.
- 06
Security
Sessions in httpOnly cookies, two-step verification, role-based permissions, audit logs and rate limiting. Data and hosting in the EU.
The stack
Languages, frameworks and tools we use- Languages
- TypeScriptSQLPHP
- Frontend
- Next.js App RouterReact 19Tailwind CSS
- API
- Fastify 5Node.js 22OpenAPIZod
- Data
- PostgreSQL 16Drizzle ORMPrismaRedis
- Jobs
- BullMQCronWebhooks
- Auth
- httpOnly cookies2FAPIN sign-inRoles
- Monorepo
- pnpm workspacesTurborepo
- Infra
- Docker ComposeCaddyEU VPSVitestPlaywright
How we approach it
ProcessMap the process
Interviews and time on the shop floor. Result: a domain model, roles and the rules that must never break.
Clickable prototype
The key screens as a working prototype with real data, before the backend is fixed.
Build in sprints
A working release on a test environment every two weeks, with automated tests on the critical paths.
Handover and support
Documentation, monitoring and a fixed point of contact. The code is yours.
In practice
Built by JABLFrequently asked
Why custom instead of a package?
When your process is what sets you apart, or when loose packages with spreadsheets in between cause errors. If a package fits, we recommend it.
Can it connect to what we already use?
Almost always: Shopify, payment providers, accounting, POS and booking software through their APIs or webhooks.
Who owns the software?
You do. You get the source code, documentation and access to the infrastructure.
Can another developer take over later?
Yes. The code is typed, tested and documented, precisely so you’re not locked in to us.
Let’s talk about your project.
One hour, no strings attached. You’ll hear from us within one working day.
Book a callinfo@jablworks.com
