Skip to main content
Live2026

Astra CRM

Customers, services, vendor costs and invoices, with the rules enforced in Postgres.

Astra CRM screenshot

Internal billing system for the Astra group. Issued invoices are immutable by database trigger, invoice numbers are gapless per brand, foreign vendor costs carry the Bank of Canada rate for the day, and there is deliberately no credential store. A Bearer-token API lets sibling services push customers in.

Problem
A vendor bills in US dollars once a year; the customer must receive a Canadian-dollar invoice on time without anyone remembering. Spreadsheets forget.
Build
A Next.js app over a Postgres schema where the invariants live: immutability triggers, a sequence allocator no session role can call, FX rates that are never overwritten, and row-level security on every table. PDFs render from a frozen snapshot.
Outcome
Running in production for the group's brands, with an idempotent ingest API that the hub and Astra Web Dev can call.
All work
  • ASTRA AI server screenshot
    Live

    A local AI server on one RTX 3090: Open WebUI front door, five-model routing, plan mode and a sandbox.

    • Open WebUI
    • Docker
    • RTX 3090
    • Ollama

Have a system that needs building?

Describe the problem, the constraint and what done looks like. You will get a straight answer on whether software, automation or AI is the right tool, and what it would take.

Web design and hosting? That is Astra Web Dev.