Case Study

Building a Custom Operations Platform to Run a WordPress Agency

We designed and built a custom operations platform that brings projects, CRM, quoting, invoicing, hosting costs, and maintenance into one system, connected to the services the agency already relies on.

Webganics brand logo with orange accent dot

Webganics LLC

Industry

Web development and hosting

Services

Custom Development

Timeline

4 months, ongoing

Results

  • 9

    core modules in one platform

  • 11

    integrated services

  • Zero

    duplicate data entry

Have a project like this?

15 minutes. No obligation.

The client

Webganics is a WordPress and WooCommerce development agency based in Mesa, Arizona, run as a single-operator practice. Like most small agencies, day to day operations depended on a stack of separate SaaS tools for project management, ticketing, invoicing, and accounting, none of which shared data with each other. We used our own custom software development capability to solve that problem for ourselves before offering it to clients.

The challenge

Running the agency meant working across multiple disconnected systems for project management, client communication, invoicing, and hosting. None of these tools shared a common view of a client, a project, or a dollar, which meant manual reconciliation between systems and no single source of truth for hosting profitability across client sites.

There was also no structured way to turn an accepted quote into a staffed project, no system for tracking recurring retainer hours and cancellation terms, and no unified view of what each client’s hosting actually cost to run against what they were billed for it.

Approach

We approached this the way we approach any internal systems project: map the real workflow first, then build the modules that reflect it, rather than adapting the business to fit an off-the-shelf tool.

  • Hosting cost visibility. Hosting costs were spread across compute, backup, and object storage, with no per-client rollup. We built a cost engine that computes each client’s actual share of hosting cost and compares it to what they are billed.
  • Quote to project automation. Deals were accepted in one place and set up as projects manually in another, which introduced delay and inconsistency. An accepted quote now creates its project structure and initial tasks without a manual handoff.
  • Retainer and billing logic. Retainer contracts needed hours times rate pricing, rollover rules, and cancellation notice periods enforced consistently. We built retainers as a first-class quote type rather than a manual billing workaround.
  • Financial system of record. Rather than replacing the accounting system, we integrated FreshBooks as the source of truth for accounts receivable and recurring revenue, so the operations platform and the books never disagree.
  • Connected, not replaced. The platform works directly with the services the agency already runs on: Linode and Linode Object Storage, FreshBooks, Stripe, Mailgun, Google Workspace, Cloudflare, SpinupWP, and BlogVault, plus a built-in chat assistant powered by Anthropic Claude.

Process

Discover & Align

We mapped how the agency actually runs, from lead intake through project delivery, invoicing, hosting, and maintenance, then defined which systems needed a single source of truth.

Design & Build

We designed a dashboard-style application with nine dedicated modules, including projects, clients, invoicing, subscriptions, hosting, and maintenance, and built the frontend and backend together against real operational needs.

Review & Refine

Before any billing or hosting cost change went live, we tested it against real historical records and existing client accounts, fixing gaps as they surfaced.

Launch & Support

We rolled features out module by module against the agency’s live workload, verifying each release on production accounts before the next phase began.

Verification

Before trusting the platform with real client data, we tested new financial logic, including quote acceptance, retainer billing, and forfeiture rules, against actual historical accounts rather than synthetic test data. Hosting cost calculations were checked against real invoices from our infrastructure and backup providers before we relied on them for client profitability reporting.

Outcome

  • Project delivery, quoting, invoicing, and hosting cost tracking consolidated into one system used daily to run the agency.
  • Accepted quotes generate their project structure and tasks automatically, with no manual setup.
  • A hosting cost engine tracks true per-client hosting profitability across compute, backup, and storage costs.
  • A maintenance system handles automated backups, restores, and update tracking across every managed WordPress site.
  • Accounting is integrated, so invoicing and recurring revenue reporting stay accurate without duplicate data entry.
  • Connected to 11 services, including Linode, FreshBooks, Stripe, Mailgun, Google Workspace, and Cloudflare, with a built-in chat assistant powered by Anthropic Claude.

Why it mattered

Building this ourselves meant we could shape the system around how a WordPress and WooCommerce agency actually operates, rather than working around the limitations of general purpose project management and accounting tools. It is the same approach we bring to client work when the right answer is custom software rather than another integration between tools that were never designed to talk to each other.

Tech Stack

  • Anthropic Claude
  • BlogVault
  • BullMQ
  • Cloudflare
  • Fastify
  • FreshBooks
  • GitHub
  • GlitchTip
  • Google Workspace
  • Linode
  • Linode Object Storage
  • Mailgun
  • Nginx
  • Node.js
  • PM2
  • PostgreSQL
  • React 18
  • Redis
  • SpinupWP
  • Stripe
  • Tailwind CSS v4
  • TipTap
  • Vite

Ready to Start?