Skip to content

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.

Trinol OS in build: company modules in a sidebar, a task card moving across the Kanban board to done, and an invoice going from draft to sent to paid.
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.
Planned architecture
  1. 01Web appNext.js and React; every screen has loading, empty, error and populated states
  2. 02IdentityFirebase sign-in, invitation-only, with a verified email
  3. 03SessionsOpaque server sessions with CSRF protection
  4. 04APIFastAPI with one error envelope, request IDs and generated TypeScript types
  5. 05Organisation scopingEvery query filtered by organisation; composite organisation-scoped keys
  6. 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
  • FastAPI
  • PostgreSQL
  • SQLAlchemy
  • Next.js
  • TypeScript
  • Firebase Auth
  • Docker

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.

  1. 01We read your briefA person replies within one working day, with any questions we need answered.
  2. 02We clarify on a callGoals, priorities and budget — so the proposal covers what matters.
  3. 03You get a written scopeScope, price per phase, timeline and ownership terms, before any work starts.
Or write directly
hello@trinolit.com
Where
Dhaka, Bangladesh
Optional — helps us reply usefully

We use these details only to reply to you. See the privacy policy.