Product case study
Live SaaS product
Planeward
A multi-tenant workspace where service businesses run projects, clients, invoices, sites, and the jobs they repeat, with an API and MCP server so people and agents work from the same records.
- Role
- Founder, product design, and full-stack engineering
- Scope
- Multi-tenant SaaS monorepo: app, marketing site, sites host
- In use by
- Viewprint, Content Creator Lab, Zhyporium, and Digital Freedom PH
- Status
- Live at planeward.com




Context
One workspace has to replace a stack of tools.
Small service businesses usually run on a stack of disconnected tools: a project board, a CRM, an invoicing app, a site builder, a form tool, and automations glued between them. Every handoff between those tools is a place where context gets lost and someone has to copy data by hand.
I designed and built Planeward as one workspace for that whole operation. It runs day-to-day work for Viewprint, Content Creator Lab, and Zhyporium, and Digital Freedom PH uses it for project management, which means every module has to hold up under real customers, real money, and real staff rather than a demo dataset.
Projects, clients, money, sites, and automation each have mature standalone products. Bringing them together only works if every module shares the same people, permissions, and records, so an invoice, a deal, a form submission, and a task all point at the same customer.
The platform also had to be multi-tenant from the first line of code. Each workspace needs its own members, roles, payment accounts, domains, and integrations, and none of that can leak between tenants, even when the request comes from an API key, a webhook, or an AI agent instead of a signed-in person.
System
What I designed and built
01
Workspaces and access control
Workspaces as the tenant boundary, with members, custom roles, teams, guests, and projects limited to specific people, all resolved through one access layer.
02
Projects and task views
Boards, lists, a timeline, a calendar, and a shared canvas over the same tasks, with statuses, labels, subtasks, milestones, templates, and an inspector that keeps people in context.
03
Clients and pipelines
Customers, contacts, tags, and opportunity pipelines in the same workspace as the work, plus email campaigns and follow-up sequences for the people on those records.
04
Invoices, payments, and expenses
Invoices from draft to paid, Stripe and Xendit connected per workspace, expenses against budgets and closed periods, and a magic-link client portal that never exposes the workspace.
05
Sites, funnels, and forms
A versioned page builder, ordered funnels, custom domains, Meta Conversions API and Tag Manager support, and forms with AI-drafted first versions that embed on any page.
06
Durable workflow automation
A visual workflow editor with triggers, branches, waits, and an AI agent node, executed as durable Inngest steps with run history, retries, and signed outbound webhooks.
07
Public API and MCP server
Scoped API keys and an MCP server that let Claude or ChatGPT read and operate a workspace through the same permission checks as the app.
08
Team chat and realtime
Public and private channels, threads, reactions, and project-linked conversations delivered over a transactional outbox so realtime updates never drift from the database.
Architecture
Product and engineering decisions that kept it coherent
Make the workspace the tenant boundary
Every record, URL, payment account, and integration belongs to a workspace, and foreign IDs are scoped to it, so isolation is a property of the data model rather than a check someone has to remember.
Resolve access through one facade
Permission checks go through a single can() layer with the owner bypass built in, and the data access layer is the auth boundary, so the app, API, and MCP all enforce the same rules.
Let teams switch modules off
CRM, chats, and other areas are modules a workspace can disable, so a freelancer who only needs projects gets a focused product instead of an enterprise suite.
Keep customer money with the customer
Stripe, Xendit, and bank details connect to each workspace directly, and Planeward takes no cut, which keeps the platform out of the payment flow between a business and its clients.
Treat agents as first-class users
The API and MCP server are product surfaces with scopes, pagination, and documented schemas, so AI agents can run real operational work without bypassing the rules people follow.
Result
A platform businesses actually run on.
- Viewprint, Content Creator Lab, and Zhyporium run projects, clients, money, and automation from Planeward workspaces instead of a stack of disconnected tools, and Digital Freedom PH manages its projects there.
- Projects, CRM, invoices, sites, forms, and workflows share the same customers and permissions, so data entered once is available everywhere it is needed.
- The API and MCP server let AI agents operate workspaces with the same scopes and checks as staff, turning automation into part of the product rather than an external integration.
- One monorepo carries the app, marketing site, and published-sites host, so contracts, components, and deployment evolve together.
Related services
Building something with similar complexity?
Show me what you're buildingShare the roles, workflows, or integrations that need to work together. I'll help turn the difficult parts into a clear, buildable system.



