VanghStudio

Work / Case study 06 / Internal tool

Studio Operations

Every studio eventually hits the same wall: the work is going well and the administration of it is going badly. This is the tool built to fix that here — and the clearest demonstration of what an internal system for your business would look and feel like.

Project
Vangh Studio, internal
Type
Operations dashboard
Covers
Projects · Tasks · Time · Invoicing · Renewals
Users
Single-user by design
Data
PostgreSQL, London region
PROJECTS TASKS TIME INVOICES RENEWALS ROW-LEVEL SECURITY DASHBOARD AI ASSISTANT Fig. 06 — Permissions at the database, not the interface

Six tools, none of which knew about each other.

Projects tracked in one place, time roughly estimated in another, invoices written in a document, domain renewal dates existing only as calendar reminders someone eventually dismissed. Each individually fine. Collectively, a business with no single view of itself.

The concrete failures were the ordinary ones. Work delivered and not invoiced for weeks. Recurring maintenance fees that quietly stopped being charged. A domain renewal nearly missed — the sort of mistake that takes a client's site offline and costs far more than the renewal. And no honest answer to the most important question in a services business: did that project actually make money?

Existing project management tools were all built for teams. Every one of them charged per seat for collaboration features that a single-person studio will never open, while modelling none of the things that actually matter here — domain renewals, recurring fees, per-project profitability.

A workspace shaped like the business, not like a category of software.

  • Projects and tasks. Every client engagement with its status, its links, its notes and its outstanding work — one place where "what's live, what's waiting on the client, what's overdue" is a glance rather than an investigation.
  • Time tracking that feeds pricing. Hours recorded against projects so the next quote is informed by what the last one genuinely cost. Fixed-price work is only honest if you measure it.
  • Money. Priced line items, invoices and payment status. Delivered work becomes an invoice as a step in the process, not a task remembered on a Sunday.
  • Renewals. Domains, hosting and recurring maintenance fees tracked with their dates and values — surfacing before they expire and before they're forgotten.
  • Charts worth looking at. A small number of honest views — income over time, where hours are going, what's outstanding — rather than a wall of decorative metrics.
  • An assistant over the data. A question box answering from the studio's own records: what's unpaid, what's due this month, which project is running over.

Eight tables, strict types, and security at the bottom of the stack.

Next.js with the App Router and TypeScript in strict mode — no untyped escapes — over PostgreSQL through Supabase, hosted in London. Every table carries row-level security scoped to the owning user, so access is enforced by the database rather than trusted to the interface.

  • Security that can't be bypassed by a bug. Row-level security means a mistake in the front end can't leak another account's data. In a multi-user client system, this is the difference between a defect and a breach.
  • A right-sized model. The assistant runs on Claude Haiku — around 90% of the capability of a larger model for this kind of task, at a fraction of the cost. Model selection is an engineering decision, not a status one.
  • Strict TypeScript. A whole category of "it worked yesterday" failures eliminated before the code ever runs.
  • Mobile-first. Time gets logged and statuses get updated away from a desk, or they don't get updated at all.
  • Boring deployment. Push to the branch, it's live, with preview deployments to review changes first. The deploy is not an event.
  • Next.js 16
  • TypeScript (strict)
  • Tailwind 4
  • shadcn/ui
  • Supabase
  • PostgreSQL + RLS
  • Claude Haiku
  • Recharts
  • Vercel

Why this matters to a client, not just to the studio.

A studio that hasn't solved its own operations problem is not a credible choice for solving yours.

  • The pattern is transferable. Jobs, time, money, recurring obligations and a view of the whole — the same shape fits a garage, an agency, a clinic, a trades business or a consultancy.
  • Nothing bills itself late. Delivered work and recurring fees are visible as states, so revenue stops depending on memory.
  • Pricing becomes evidence-based. Knowing the real cost of the last project is the only defensible basis for quoting the next one.
  • Renewals stop being risks. The failure mode nobody plans for — an expired domain taking a live site down — becomes a dated row on a screen.
  • Proof, not promises. This tool is used daily. It's the honest answer to "have you built something like this before?"