Cegeta — Every object has a story

Cegeta
$ cat stack.txt Symfony 7.4 PHP 8.5 API Platform 4.3 PostgreSQL 16 Mercure Angular / Ionic $ stats --short 38 Decision records 1,700+ Automated tests 57 Domain entities
SaaS platform, 2026
Scroll down
—Overview
Cegeta gives a physical object a digital identity: a QR code on a bike, a suitcase or a dog's collar leads to a page that knows what the thing is and what to do if someone finds it — without ever showing who owns it. A multi-tenant Symfony platform with a privacy engine at its core, an API for the owner's mobile app, and a guide in five languages.
02The front
What people see.

Two people, one QR. The owner sees everything; the stranger who scans needs nothing — no account, no app — and gets a minimal public page. An object found in three taps, and not one piece of personal data travels.

Public is not
personal
A field stays private until a human writes it into the projection catalogue: adding a column can never widen a public page.
Public routes never serialize an entity — they render a projection built field by field. And a test fills every sensitive field with a marker, then proves the marker is absent from the page.

—Screens
Scroll sideways

Asking whoever found your bike to install an app means losing the bike.


03The back
What keeps it standing.
$ cat stack.txt Symfony 7.4 PHP 8.5 API Platform 4.3 PostgreSQL 16 Mercure Angular / Ionic
- 38Decision records
- 1,700+Automated tests
- 57Domain entities
- 11In-house bundles
- 5Languages
- 6Plans
- 3Taps to report a find
- 0Apps for the finder
46 features9 modules
015 features
Privacy engine
- Every field private until catalogued
- Public pages render a projection, never an entity
- A test proves sensitive markers are absent
- Per-field visibility, the most closed by default
- No third-party trackers
026 features
Items & QR codes
- Items, categories and typed fields
- Short opaque tokens, rotated or revoked
- A public scan page in two queries
- Photos and documents behind signed URLs
- A timeline that never names anyone
- Inventory: containers and locations
035 features
Lost & found
- Report as lost, with a reward and a note
- A public page that says the item is lost
- The finder sends a message, a photo, a rounded location
- An anonymous relay: no address exchanged
- Report as stolen, then recovered
044 features
Ownership
- Warranties and expiry reminders
- Maintenance plans and due dates
- Passport and transfer of ownership
- Sharing, guests and emergency contacts
055 features
Business
- Plans, quotas and feature flags
- Subscriptions with a simulated payment
- Business spaces, members and invitations
- CSV member import and a report builder
- Over quota: read-only, never deleted
065 features
Print & Stickers
- Print-ready sticker sheets, PDF or SVG
- Packs of 1, 10, 50 or 500 codes
- Quiet zone and error correction H, enforced
- Cut marks, bleed and a technical sheet
- Every code traced to its place on the sheet
076 features
Platform
- Multi-tenant: one tenant, three forms
- Resource:action permissions
- JWT with rotating refresh tokens
- Mercure in real time, Messenger in the background
- Audit trail, abuse reports and moderation
- GDPR: consent, rights, retention and purge
085 features
Mobile app
- Angular, Ionic and Capacitor, for both stores
- Scans your own items offline
- Creation that survives a retry
- Encrypted local database, biometric lock
- No in-app purchase, no analytics SDK
095 features
Site & guide
- A one-page site that loads no JavaScript
- A guide in five languages
- Mermaid diagrams, pre-rendered to SVG
- Global search and keyboard shortcuts
- Legal pages and a waitlist
—Built-in quality






