Back

LokaTech — Internal Operations Platform

A full-stack operations platform for professional digital services teams — unifying scoped pricing, collaborative client sign-off, billing, and technical documentation in a single Next.js monorepo.

Visit lokatech.co

The internal admin and ops platform is private. This case study documents the system I built; the public site is the marketing front.

The Problem

Fragmented agency operations

  • Inconsistent quoting: Every project type had different pricing rules; manual calculation led to under-pricing and rework.
  • No audit trail: Scope changed mid-negotiation with no single source of truth for what changed or what the client agreed to.
  • Slow sign-off: Proposals bounced over email and PDF with no structured feedback or formal baseline acceptance.
  • Disconnected billing & docs: Invoices were typed from scratch; requirements and architecture lived in separate tools.
The Solution

One system for pre-sale → billing

  • Catalog + pricing engine: Master scope catalog and rules-based calculators with transparent step-by-step breakdowns.
  • Collaborative scope review: Admins publish rounds; clients interact via magic links — ticks, comments, and baseline lock on accept.
  • Project-first billing: Multi-line invoices, payment status, overdue detection, and branded PDF export per project.
  • Command dashboard: Attention feed for open reviews, client feedback, and overdue invoices — admin, marketing, and portal in one repo.

Impact

Quoting

Manual per-type math and hand-copied catalog prices → transparent calculators and catalog-driven custom scope with floors and modifiers.

Scope & change control

Email and PDF loops with unclear diffs → review rounds with NEW/MODIFIED flags, client ticks, comments, and change-order audit history after baseline lock.

Billing

Ad-hoc line items and weak overdue visibility → project-first billing hub with status badges, filters, and branded invoice PDFs.

Client access & ops visibility

Screenshots or full account creation → typed magic links for scope review vs read-only docs; dashboard feed links directly to what needs action.

Dashboard & attention feed

Billing metrics — unpaid total, overdue count, MTD revenue, active projects — plus a needs-attention feed for unread client comments, open review rounds, and overdue invoices. Quick links jump straight to the project or invoice that needs action.

Demo coming soon

Pricing & project workspace

Each engagement gets a typed project (portfolio, landing page, corporate site, or custom system) with a rules-based pricing engine, live breakdown, scope builder, requirements notebook, and live UML editor — all in one workspace.

Demo coming soon

Collaborative scope review

Admins publish review rounds and generate secure magic links. Clients tick lines, leave structured comments, and formally accept a locked baseline — replacing email back-and-forth with an auditable negotiation workflow.

Demo coming soon

Billing & documents

Project-first billing hub with invoice CRUD, mark paid/unpaid, filters, and overdue detection. Branded PDF export for scope proposals, invoices, and baseline scope snapshots after client acceptance.

Demo coming soon

Engineering Spotlight

01. Server action architecture

Every mutation follows the same contract: Zod validation before Prisma, requireSession() on admin actions, standardized { success, data } | { success, error } returns, and revalidatePath() for immediate UI consistency — scaling across 8+ action modules without ad-hoc error handling.

02. Client portal security + PDF strategy

32-byte random tokens with SHA-256 hash at rest, separate link types and expiry per route, scoped to a single project. PDF generation runs client-side via @react-pdf/renderer to stay within Vercel serverless limits; Prisma Decimals serialize to plain numbers before crossing the RSC boundary.

Audience snapshot

Admin

Session-gated staff hubs — clients, scopes, projects, billing, and the command dashboard.

Marketing

Public lokatech.co site in the same monorepo, with its own theme — unchanged URLs, no admin pollution.

Client portal

Token-based magic links, no account — separate URLs for interactive scope review vs read-only project docs.

Tech Stack

Full-stack TypeScript on Next.js App Router — PostgreSQL as the source of truth, validation at every mutation boundary.

Next.jsReactTailwind CSSPrismaPostgreSQLNode.jsVercel

Framework: Next.js (App Router), React, TypeScript · UI: Tailwind CSS v4, Shadcn UI

Database: PostgreSQL (Neon) · ORM: Prisma · Auth: Auth.js v5 (credentials, JWT sessions)

Validation: Zod · Diagrams: Mermaid · PDF: @react-pdf/renderer (client-side)

Future Roadmap

Project status pipeline

Lead → scoping → proposal sent → won → in progress → completed → archived, with gates for billing and scope edits.

Email notifications

Resend integration for scope review published, invoice sent, payment received, and scheduled overdue reminders.