Work orders from planning to invoice, without anyone overwriting a colleague's work
Fyldd is a field service platform I am building for a client, for installation and service companies: an app for the technician, a back office for planning and the office, and a portal for the accountant.



The problem
Installation companies often still run their technicians on paper work orders, WhatsApp and outdated software. When two colleagues edit the same data at once, work quietly gets lost.
What I built
One system with PostgreSQL as the single source of truth. A change reaches every colleague within a second, and whoever saves an outdated version gets a warning instead of silently lost work.
The work order runs from draft through planning and execution (hours, materials, photos with location, the customer's signature) to the invoice. With the customer's consent the accountant gets access to the figures and exports them as CSV, PDF or UBL.
What matters technically
Row-Level Security as a second lock
Every request runs in a transaction that pins the company; policies in PostgreSQL filter 49 tables on it, and the API connects as a role without superuser rights. Companies can never see each other's data, not even after a mistake in a query.
Live without refreshing
Over Server-Sent Events the server only sends a signal that something changed, and only after the commit. The app fetches the new data itself through the normal, secured API.
Never silently lost work
Every row has a version number. Whoever saves an outdated version gets a conflict back with the current version: "Changed by someone else. Reload."
Workflows and a form builder
A company puts together a step plan per kind of job; required steps lock the next ones. App and server share one rule for "may this work order be completed", so they never disagree.
Accountant portal with consent
An accounting firm requests access, the customer grants or revokes it. Closed periods block changes to invoices; exports in CSV, PDF and UBL 2.1.
Subscriptions per user
Payments through Mollie: a base price plus a surcharge per extra employee. An extra seat in the middle of a period is invoiced pro rata.
Routes and documents
A day route optimised per technician, with a simple fallback when the routing server cannot be reached. Work order, quote and invoice PDFs are rendered on the server.
Measured
Counted in the repository, not estimated.
- commits since 6 June 2026
- 502
- database tables
- 82
- tables under Row-Level Security
- 49
- screens in the mobile app
- 57
- test files
- 123
- languages in the app
- 11
How measured
git rev-list --count HEAD
grep -rhc "= pgTable(" werkapp-server/src/db/schema | paste -sd+ | bc
grep -c "werkapp_apply_tenant_rls('" werkapp-server/src/db/rls.sql
find werkapp-app/src/app -name '*.tsx' ! -name '_layout.tsx' | wc -l
git ls-files | grep -cE '\.(test|spec)\.(ts|tsx)$'
ls werkapp-app/src/i18n/locales | wc -lMeasured on 27-10-2026 in the project's own repository.
Screens





Need something similar, or a team that builds systems like this?
info@bitvire.com