Skip to content

Case file 03 · Ops

TRANSMERALDA × COTRANSMEQ

One transport platform adapted to two operators without losing operational identity.

  • SvelteKit
  • TypeScript
  • Fastify
  • Prisma
  • PostgreSQL
  • Expo

The challenge

Two transport operators shared the same hard problems—fleet, drivers, services, attendance, payroll support and regulatory evidence—but each one carried its own brand, users and operating rules. Copying features between separate products would quickly create drift.

Transmeralda public presentation showing the transport workflow
Public presentation rendered locally; Cotransmeq shares the architecture with its own identity.

Case file 03 · Ops

Driver app screens

Transmeralda driver app

Transmeralda app · assigned forms
Transmeralda app · assigned services
Transmeralda app · route details
Transmeralda app · trip navigation
Transmeralda app · multi-step form
Transmeralda app · worked days

Cotransmeq driver app

Cotransmeq app · assigned forms
Cotransmeq app · assigned services
Cotransmeq app · route details
Cotransmeq app · trip navigation
Cotransmeq app · multi-step form
Cotransmeq app · worked days

The approach

I evolved a shared SvelteKit and Fastify architecture, separating reusable domain workflows from operator configuration and deployment. PostgreSQL and Prisma anchor the model, while an Expo and React Native driver app uses SQLite caches and a synchronization outbox so services, forms and worked days remain usable on the road.

Key decisions

  1. Share the operational core while keeping branding, deployment and operator-specific rules isolated.
  2. Move the driver journey into an Expo app with SQLite caches and an outbox built for intermittent connectivity.
  3. Generate spreadsheets and regulated documents from structured data instead of manual templates.

Technical architecture

Full-stack architecture designed and built end to end by me.

  1. 01 Field and office SvelteKit · Expo · React Native

    Administrative workspace plus a native driver app for routes, forms and evidence.

  2. 02 Operational API Fastify

    Shared transport rules isolated from each operator identity.

  3. 03 Transport model Prisma · PostgreSQL

    Services, fleet, people, safety and compliance records.

  4. 04 Operational tools SQLite · Mapbox · Socket.IO · Univer · PDF

    Offline outbox, maps, live updates, spreadsheets and regulated documents.

Modules

What the product is made of, as its own screens divide it.

  • 01 Fleet & drivers

    Vehicles, drivers, documents and their expiry.

  • 02 Services & settlements

    Trips, third-party and service settlements, statements.

  • 03 Payroll & surcharges

    Payroll with surcharges computed from the operation itself.

  • 04 Road safety (PESV)

    The road-safety plan: checks, forms and evidence.

  • 05 Compliance

    SARLAFT, corrective actions and non-conformity exits.

  • 06 Forms & attendance

    Custom forms, evidence and token-based attendance in office and field.

  • 07 Driver mobile apps

    Two branded Expo apps for services, forms, pay slips and worked days, backed by SQLite and a retryable sync outbox.

  • 08 Two operators, one base

    The same codebase branded and deployed for each company.

Before → after

  • Before

    Two products evolving through manual copies.

    After

    One shared core with isolated operator identity.

  • Before

    Road evidence arriving after the operation.

    After

    Native offline capture with a durable synchronization outbox.

  • Before

    Manual spreadsheets and document templates.

    After

    Documents generated from structured operational data.

Technologies

  • SvelteKit
  • TypeScript
  • Fastify
  • Prisma
  • PostgreSQL
  • Expo
  • React Native
  • SQLite
  • Mapbox

The wider toolkit

  • Zod
  • Pino
  • Swagger
  • JSON Web Tokens
  • Puppeteer
  • Univer
  • Chart.js
  • ExcelJS
  • pdfmake
  • Anthropic
  • Azure Blob
  • Amazon S3
  • Resend
  • Expo Router
  • SecureStore
  • Expo Notifications
  • Expo Location
  • Expo Camera
  • Expo Image Picker
  • Expo File System
  • Expo Sharing
  • NetInfo
  • Reanimated
  • Gesture Handler

Brand marks from Simple Icons; concepts without one are drawn in-house.

Project log

Oct 2025 → Oct 2026 · 13 active months

1603 commits
6 repositories
13 active months
Oct 2025 Busiest month: Sep 2026 · 666 commits Oct 2026
  • transmeralda · app app · 616 commits Oct 2025 → Oct 2026
  • transmeralda · api API · 288 commits May 2026 → Oct 2026
  • cotransmeq · app app · 369 commits Feb 2026 → Oct 2026
  • cotransmeq · api API · 253 commits Feb 2026 → Oct 2026
  • transmeralda · mobile native · 38 commits Sep 2026 → Oct 2026
  • cotransmeq · mobile native · 39 commits Sep 2026 → Oct 2026

In the tree

  • 166 routes
  • 108 API controllers
  • 302 data models
  • 135 migrations
  • 163 test files
  • 152 native source files
  • 3370 tracked files

Read from the local Git history on Oct 6, 2026. Aggregates only.

The outcome

The product family expresses one operational model through two web deployments and two branded driver apps. The project log now follows six web, API and mobile codebases; both apps cover services, forms, pay slips and worked days with offline storage and synchronization.

Private codebase — this file shares the thinking, not the source.