Simply ILM
Internal operations platform for agencies and consultancies. Simply ILM combines CRM, project management, timesheets, and AR/AP billing in one system.
Visit project ↗
Simply ILM is an internal operations platform for agencies and consultancies, covering the full cycle from client to project to logged hours to invoice to payment.
The Challenge
Professional services firms — agencies and consultancies staffing both employees and external consultants — run on a mix of disconnected tools: a CRM for clients, a project tool for delivery, spreadsheets for timesheets, and separate software for invoicing and payables. None of it shares data, so turning logged hours into an accurate invoice, or checking whether a project is still profitable, means manually reconciling several systems. The business needed one back-office system built specifically around how a services firm actually operates, not a generic project tool with billing bolted on.
What We Built
A back-office platform covering the operational core of a services business:
- Access and roles — staff accounts, invitations, company and department structure, with permissions scoped by module and action
- CRM — a client and customer record that projects, invoices, and contracts all connect back to
- Work — projects with phases, member roles, and tasks, plus timesheets that flow through an approval step before they count toward billing
- Billing — invoices and payments, consultant invoices for external staff, estimates, orders, expenses, and contracts, covering both what the firm bills out and what it owes
- HR — attendance and leave tracking alongside the staffing data already tied to projects
- Operations dashboard — a single view tying project delivery to billing status across the firm
A second layer of modules — leads, tickets/support, proposals, subscriptions, a catalog, and full communication tooling (announcements, messages, events, reminders, notes, notifications), plus a files vault and content templates — already has backend support built and is staged behind permissions, ready to switch on as the product’s scope grows.
Technical Approach
Simply ILM is a SvelteKit 2 and Svelte 5 application with Supabase (Postgres + RLS) as the backend, using cookie-based SSR auth and a permissions system built specifically for the product: wildcard, CRUD, and module-specific “special” actions checked per module rather than a flat role list. The UI is built on Tailwind v4 and shadcn/svelte, with TanStack Table for data-heavy views and LayerChart+D3 for the operations dashboard. TipTap handles rich text where needed, Zod validates inputs, and exports run through pdfkit and exceljs.
The project started as a generic SvelteKit+Supabase starter and evolved into a purpose-built system as real usage shaped it — timesheets feeding directly into consultant and client invoices, projects carrying the phase and role structure services delivery actually needs, and a permissions model granular enough to stage unfinished modules safely rather than shipping them half-done.
Architecture Decisions
We built permissions as a first-class, per-module system rather than a simple role field, because a platform spanning CRM, billing, and HR needs to hide or expose entire modules — not just individual actions — as the product rolls out incrementally. That decision is what let large parts of the backend (leads, tickets, communication, files) get built ahead of the UI they’ll eventually power, staying dormant behind permissions instead of shipping unfinished.
Timesheets route through an explicit approval step before touching billing, trading a bit of speed for the guarantee that every invoice is backed by approved hours — important in a business where consultant and client invoices both derive from the same logged time.
Results
Simply ILM gives a professional services firm a single system covering client relationships, project delivery, timesheets, and billing — replacing the spreadsheet-and-point-tool patchwork most firms default to. The permissions-gated module structure means the platform can keep growing into leads, support, and communication tooling without a rebuild, since the backend for that next phase is already in place.