Skip to content
All projects
Own SaaS Product

Deoba - Time Tracking & Invoicing for Multi-Company Businesses

Role
Founder & Lead Developer
Period
08/2025 – present

UBL 2.1

e-invoices sent through the national SEF system

6M RSD

annual flat-tax limit tracked per company

65

automated test classes

Deoba is my own product, live at deoba.rs: a time tracker for small agencies and freelancers in Serbia who invoice through more than one of their own companies. General time trackers assume one issuing company. Deoba takes the billable hours of the whole team and decides which company invoices how much.

The problem

A flat-taxed (paušal) company in Serbia may invoice up to 6,000,000 RSD a year. Owners with several companies have to watch that limit by hand and move work to another company in time, while following different VAT and e-invoicing rules for each combination of issuer and buyer.

What I built

  • Multi-tenant accounts with roles and permissions, and login by email or Google and GitHub
  • Time tracking by project, task and team member, with hourly and fixed-price billing
  • Issuing companies with their own tax setup, bank accounts in several currencies and invoice number series
  • Allocation of a period’s billable work across companies: automatically when a company approaches its limit, or by hand by amount, percentage or task
  • Invoices built from time entries, with gap-free numbering, a draft / issued / cancelled lifecycle, frozen snapshots of issued data and partial payments
  • VAT handling that depends on the issuer and the buyer: domestic, public sector or foreign
  • Integration with SEF, the national e-invoicing system: UBL 2.1 documents, checks before sending, status sync every 15 minutes, cancellation and storno, credit and debit notes, advance invoices
  • PDF invoices in Serbian, English or both, generated with headless Chrome
  • A limits dashboard and the KPO book required for flat-taxed companies
  • Import of time entries from My Hours
  • Free, Solo and Team subscription plans with usage limits and a 14-day trial without a card, billed through Paddle behind a provider interface that keeps the payment provider replaceable
  • Interface in more than one language (i18next)

How it is run

  • Automated tests and linting run on every push through GitHub Actions
  • Static analysis with Larastan; PHP types are generated into TypeScript so the front end and back end stay in step
  • Errors are reported to Sentry

Status

Live at deoba.rs and in active development. The core (time tracking, invoicing, allocation, SEF) is built, and the SEF integration was verified against the official demo environment; the remaining parts are being finished and released step by step.