Engineering core

Eight industries. Eight things they all need.

A payments platform and a school platform share almost nothing on the surface. Underneath, they need the same eight capabilities — and we would rather build those eight extremely well once than adequately eight times.

01 / The core

What every platform inherits on day one.

A new platform does not start at zero. It starts with identity, audit, money, workflow, communications, integration, real-time and reporting already solved — which is why the specialised part can get the attention it deserves.

Identity & tenancy

Every platform

Users, organisations, tenants, roles and scoped permissions. Multi-tenancy is modelled at the data layer, not filtered in the application — the difference between isolation and hope.

Audit & evidence

Payments, education, security, property

Immutable history for every state change, decision records that store the inputs that produced them, and document storage bound to the record it proves. Written for the day someone asks.

Money

Payments, ledger, property, transport, hospitality

Ledgers with derived balances, fee and limit engines, multi-currency positions, settlement and reconciliation. Balances are always explainable by the movements beneath them.

Workflow & rules

Payments, field service, property

Configurable rules, approvals, exceptions and escalation. Commercial policy lives as data so a business decision does not require a release.

Communications

Every platform

Push, SMS and email with per-channel fallback and delivery tracking, so a notification that matters is not silently dropped by one provider.

Integration

Payments, security, transport, field service

Provider adapters behind stable internal contracts, webhook handling, health monitoring and automatic failover. Any single vendor can be replaced without touching the domain.

Real-time

Residential security

WebSocket signalling, WebRTC media and live state propagation for the products where a two-second delay is a product failure rather than an annoyance.

Reporting

Every platform

Dashboards and exports computed off live records rather than a nightly copy, so the number on the screen is the number in the system.

02 / One source of truth

Four audiences. One set of records.

The failure mode of enterprise software is not a missing feature. It is two systems holding two versions of the same fact. Every surface we build reads and writes the same records — there is no nightly export, and no reconciliation spreadsheet.

  1. 01 Customers, residents, parents, buyers Mobile and web self-service
  2. 02 Staff and operations Role-scoped portals and consoles
  3. 03 Management Dashboards, controls and exports
  4. 04 Partners and devices APIs, webhooks and hardware protocols
  5. One core data layer Every surface, the same truth

03 / Stack

Boring technology, used properly.

We choose tools with long support horizons and large talent pools, then apply discipline where it matters: domain modelling, boundaries, background work and evidence.

Backend
PHP 8.3 / Laravel and NestJS, as modular monoliths with queued workers
Frontend
React and TypeScript, Astro for static surfaces, Blade where server rendering wins
Mobile
Flutter for iOS and Android, with native platform modules where the OS demands it
Data
PostgreSQL 16+ and MySQL 8, with database-level role and privilege separation
Async
Redis for cache, sessions and queues; background workers for anything that must not block a user
Real-time
WebSockets for signalling and a WebRTC SFU for low-latency media
Delivery
Docker, infrastructure as code, and staged environments per platform

Next step

Building something that needs this foundation?

If your problem needs identity, audit, money, workflow and integration solved properly, we have already built that part eight times.