/builtbynik/
All cases
Launched2025-2026

Chronum

Autonomous SaaS for freelancer time tracking and invoicing: desktop and web with real-time sync.

  • React 19
  • TypeScript
  • Tauri
  • Rust
  • NestJS
  • PostgreSQL
  • Drizzle ORM
  • Puppeteer
  • Cloudflare R2
  • pgvector
  • WebSocket
  • Astro
  • Docker
  • Railway
Visit
Chronum

Concept

Chronum owns one scenario and does it without bloat: a freelancer tracks billable hours per project and turns them into professional invoices. The same product ships as a cross-platform desktop app and as web — with an identical feature set, offline mode, and instant cross-device sync.

Engineering

  • Cross-platform desktop client on Tauri (Rust) for macOS / Windows / Linux — migrated from Electron for smaller size and native performance.
  • React 19 SPA with complex UI: an interactive timeline with drag-to-scroll and zoom, a command palette, and a live PDF preview with page navigation.
  • REST API on NestJS + PostgreSQL with Drizzle ORM; authentication via magic link, OAuth (Google, GitHub), and JWT with a desktop deeplink flow.
  • Server-side PDF generation with Puppeteer, file storage on Cloudflare R2, and 16-currency billing with rate updates and a Redis cache.
  • Semantic search across projects and tasks on pgvector; offline mode (PWA + IndexedDB) that syncs back up once the connection returns.
  • CI/CD, Docker containerization, deploy on Railway; a separate Astro landing with 20+ SEO pages (JSON-LD, green Core Web Vitals).

Interface

Overview: tracked hours converted into money and ready to be invoiced.
A day broken into sessions: every entry is tied to a task, a project, and a rate.
Bulk invoicing: one pass across clients, a live PDF preview, and hours already broken down by task and rate.

Open full screen

Results

16
billing currencies with auto-updated rates
0
sessions lost offline: a local IndexedDB queue
3+1
platforms: macOS, Windows, Linux, and web

to switch

Next step

Tell me about your project

A new product from scratch, an existing one to improve, or a process to automate with AI — describe the task, and let's get to work.