Back to browse

AH Original · Case study 03

OneCompliance

Private2025 – NowEnterprise SaaS · Mobile

A multi-tenant compliance platform whose interface is generated from metadata, built on Angular and AWS serverless, with a native Flutter field app for consultants.

Private platform. Client under NDA. Web views are recreated with demo data; mobile captures come from the app’s own screenshot tests.

Role
Full-stack · web & mobile
Stack
Angular · Flutter · AWS
Year
2025 – Now
compliance workspace
Compliance platform web workspace showing a data table, toolbar and navigation
field app · iOS / Android
Flutter mobile home dashboard with weekly time chart and recent entries
Type
Enterprise compliance SaaS
Role
Full-stack · web & mobile
Stack
Angular · Flutter · AWS
Access
Private · under NDA

01. The platform

Five regulations, one workspace.

Data protection, information security, anti-money-laundering, whistleblowing and internal audits each carry their own registers, controls, documents and deadlines. This platform holds them in a single multi-tenant workspace: consultants switch between the companies they serve, and every company sees only its own data.

02. The web application

An interfacethat is mostly configuration.

Most screens are never written by hand. Each table, form, filter and tab comes from a JSON definition the backend serves and executes, so a new compliance module arrives as configuration rather than new frontend code.

Product and client names withheld at the client’s request.

01 / 12 · Workspacedemo recreation
Compliance platform: Generated table, toolbar and navigation
Generated table, toolbar and navigation

03. Rebuilding the surface

A redesign that touched every generated screen.

Because hundreds of screens share the same components, the rollout went one component at a time with behaviour held intact: toolbar, navigation drawer, breadcrumbs, search, inputs, pickers, dialogs and file upload. Each generated screen then picked the new design up automatically.

  • Inline row editing with one save across the table
  • Two-step select-all: this page, or every match
  • Currency, percentage and number inputs per locale
  • Design system rolled out without regressing generated screens

04. The field app

The whole platform, in a pocket.

Consultants spend their days at client sites, so hours and mileage were recorded on a desktop long after the fact. The Flutter client I worked on calls the same endpoints as the web app and reads the same view metadata, so lists, filters and permissions stay consistent without a second API.

  • Roughly 14,000 lines of Dart
  • Timer that stays in sync with sessions started on the web
  • Trips survive an app restart
  • Unit, widget and screenshot tests across every flow

05. Backend, AI & security

Less typing, stronger sessions.

A vision model reads identity documents, validates the machine-readable zone and fills the record in; a second pipeline pulls data out of other documents with OCR. Alongside it, MFA enrolment and sign-in tracking moved long-standing users onto multi-factor auth without locking anyone out.

  • Machine-readable-zone validation on identity documents
  • OCR pipeline with normalisation and temp-file cleanup
  • Self-service onboarding via invitation or company code
  • Cross-region failover with a tested recovery runbook

06. Architecture

One contract, two clients.

The mobile app has no API of its own. Both clients enter through the same authorised gateway, so validation, permissions and row actions behave identically, and a configuration change made for the web reaches the phone without a new release.

  1. Clients

    Angular web · Flutter app

  2. API Gateway

    Authorised JWT entry

  3. Lambda

    Node.js & Python

  4. Data

    PostgreSQL · DynamoDB · S3

  5. AI services

    Bedrock vision · Textract

07. Resilience

Built to survive a bad day.

A secondary AWS region carries identity backup and restore, password sync and region-aware deployment scripts, exercised against a written runbook rather than assumed to work.

MFA
TOTP on web and mobile
2
AWS regions
3
UI languages
0
Mobile-only endpoints

08. Technologies

  • Angular 18
  • TypeScript
  • RxJS
  • Flutter
  • Dart
  • AWS CDK
  • Lambda
  • API Gateway
  • Cognito
  • PostgreSQL
  • DynamoDB
  • AWS Bedrock
  • AWS Textract
  • MFA

09. Availability

Private platform

The application sits behind a login and the client is under NDA, so there is no public link. Every screenshot here uses demo data with branding removed. I’m happy to walk through the work in detail on a call.

Next project: ProjSafe
Chat on WhatsApp

AH Originals

More Like This

AH Original91 % image weight removedE-commerce platform & admin CMSSkinChoiceNext.js 16 · TypeScript · Cloudflare Workers · R2A production beauty storefront and fully custom, role-based admin CMS built for the Pakistani market. Watch case studyAH OriginalFurniture discovery & content platformDIEWOHNENNext.js 14 · Hono · Cloudflare Workers · D1 / R2A bilingual home-living platform pairing an AI shopping assistant and visual search with a full custom CMS. Watch case studyAH Original83 packages on one coreModular workspace platform & package HubHWS.NET 10 · Next.js · YARP · PostgreSQL · Cloudflare WorkersHorizech Workspace: a .NET core that installs, updates and rolls back apps, plugins, providers and themes at runtime, published through its own Hub. Watch case studyAH Original3 roles in one appField safety app & HWS dashboardProjSafeFlutter · Dart · HWS · ApiraiserA permit-to-work app for high-risk site jobs: risk assessments, three-step approvals and daily hazard check-outs, run from an HWS dashboard. Watch case studyAH Original196+ browser-based toolsOnline tools SaaS platformToolBubbleNext.js 14 · FFmpeg WASM · Cloudflare Workers · StripeOver 196 private, in-browser tools with online editors, cloud storage, secure sharing and subscriptions, designed, built and run solo. Watch case studyAH Original7 portal sections, live from SheetsAgency site & Google Sheets client portalAffiLinksNext.js 15 · Hono · Cloudflare Workers · Google Sheets APIAn affiliate marketing agency's site and client portal: brands see their live program, read from the team's Google Sheets, and update orders back to them. Watch case studyAH Original2 languages, one switchDutch coupon site & admin CMSActiesDealNext.js 14 · Hono · Cloudflare Workers · D1 / R2A coupon and voucher site for the Netherlands in Dutch and English, run from a custom role-based admin CMS. Watch case studyAH Original199 published coursesEngineering e-learning, web & appWiscademyNext.js 16 · Flutter · HWS · Stripe · RevenueCatNPPE, FE and CPD courses for Canadian engineers: a Next.js website and a Flutter app on one HWS backend. Watch case study

Next episode

Want something like OneCompliance?

Tell me about your idea and I'll reply with honest advice and a free quote. Replies within 24 hours.