Trinol OS
TrinolIT's own company operating system — projects, tasks, leads, clients, meetings and finance in one place. In build now, on the way to a product for agencies and SMEs.

- Problem
- A growing studio runs its projects, tasks, leads, clients, meetings and invoices across separate tools and spreadsheets, so nobody can see the whole company in one place.
- Solution
- One operating system for the company — projects with a Kanban board, a sales pipeline that converts leads into clients and projects, meetings whose action items become tasks, and finance with invoices and payments.
- Outcome
- In build. Four phases are closed after independent review and finance is underway. V1 is done when TrinolIT runs on it for four consecutive weeks without falling back to a spreadsheet.
- 01Web appNext.js and React; every screen has loading, empty, error and populated states
- 02IdentityFirebase sign-in, invitation-only, with a verified email
- 03SessionsOpaque server sessions with CSRF protection
- 04APIFastAPI with one error envelope, request IDs and generated TypeScript types
- 05Organisation scopingEvery query filtered by organisation; composite organisation-scoped keys
- 06PostgreSQLSeparate application and migration roles; an audit log on every change
Status
In build. TrinolIT is building Trinol OS to run its own company first. Four delivery phases — architecture, foundation, projects and tasks, and meetings — are closed, each after an independent review with no open critical findings. Finance is in progress. No results are published yet; when there are, each will state the method that produced it.
Context
A software studio has to answer simple questions every day: which projects are at risk, what each person is working on, which leads need a follow-up, which invoices are unpaid. When the answers live in five tools and a spreadsheet, someone has to assemble them by hand, and the picture is out of date by the time it is finished.
Trinol OS is the one place those answers live. The long-term goal is to offer it as a product to software agencies, startups, service companies and SMEs.
Problem
Work, sales, meetings and money are connected. A lead becomes a client and a project; a meeting produces action items that become tasks; a project produces invoices and payments. Separate tools break those links, so the same fact is typed twice and the two copies drift apart.
Constraints
- Every organisation's data must stay inside that organisation, enforced by the database rather than by the application remembering to check.
- Four roles, with finance visible only to owners and administrators.
- Invoices and payments change state under row locks, so two people acting at once cannot record the same payment twice.
- Every screen must answer its one question without scrolling on a laptop, and must handle the loading, empty, error and populated states.
Approach
Each phase follows the same loop: build, independent review, fix every critical finding, verify — and a phase does not start while one it depends on still has a critical finding open. Decisions that are expensive to reverse are recorded: the architecture carries thirteen decision records.
System architecture
The web app talks to a FastAPI service through typed, generated clients. Sign-in uses Firebase for identity, but sessions are the service's own — opaque, server side and CSRF-protected. Every table that holds organisation data carries the organisation in a composite key, so a record can only ever point at records of the same organisation.
Security and reliability
Organisation scoping is enforced three ways: a scoped database session, a guard that rejects any query that forgets the organisation filter, and composite foreign keys. A schema-integrity test in CI fails the build if a single-column foreign key to an organisation-scoped table ever appears.
That test is also a lesson in why tests need testing: for a time it passed without checking anything, because the database role it ran as could not see the catalogue view it queried. It was found by writing a test that asserted a key positively existed — something an empty result cannot satisfy by accident — and rewritten against the system catalogue directly.
Next steps
Finish finance — income, expenses, invoices with PDF export, payments and the overview — then run TrinolIT on Trinol OS for four consecutive weeks. After that, the same system is prepared for other companies.
- Stack
Start a project
Build somethingthat has to be right.
Tell us what you want to build and who will use it. You do not need a technical brief — a few sentences is enough to start.
- Or write directly
- hello@trinolit.com
- Where
- Dhaka, Bangladesh