Form Studio
Redesigning a civic form builder into an operational system municipal teams could configure, publish, and manage with confidence.
DELIVERABLES
Civic SaaS Product
duration
4 weeks
Role
Product Designer
focus
Workflow architecture, publishing & payments

TEAM | Product, Engineering, Implementation |
Scope | Workflow architecture, publishing, payments, interaction design |
Output | State models, payment framework, approximately 150 high-fidelity screens |
Status | Handed off for implementation before public release |
overview
Forms are easy to create.
Civic services are harder to run.
Forms Studio helps municipalities build public-facing forms for permits, registrations, payments, and service requests. But as the product grew, a simple publish toggle and linear fee rules were asked to support approvals, schedules, capacity limits, conditional pricing, and audit requirements. The system could technically handle more scenarios, but it became harder for admins to understand what was happening and harder for the team to extend without adding another exception.
I redesigned the product around two explicit models: a service lifecycle and modular fee items. This case study focuses on publishing and payments, where unclear system behaviour created the greatest operational risk.
KEPT IN survey js
Question & Resnponse Logic
What the applicant sees and answers.
field visibility
branching
conditional questions
moved to form studio
Financial Calulation Logic
How money is determined. Owned separately.
fee configuration
custom logic
external lookup
Fee Item
Complex pricing became a composition of visible rules.
I designed each charge as a reusable Fee Item. Each item did one thing: select a rate tier, add a surcharge, apply a time-based fee, multiply by quantity, collect a deposit, or calculate tax. Admins could combine them to match how a service actually charged people, instead of building everything into one long and fragile formula.
Event type
Private $150 · Commercial $300 · Non-profit $80
CONDITIONAL
Resident surcharge
Resident +$0 · Non-resident +20%
TIME-BASED
Late booking
< 7 days out +$50 rush fee
PER UNIT / QTY
Add-ons
AV $40 · Cleaning $60 · Security $30/hr
FLAT · REFUNDABLE
Security deposit
$200 — no tax · invoiced after approval
TAX RULE
HST 13%
Applies to base + rental + add-ons · not deposit
Navigation now follows the work being done.
Before publication, the sequence is:
Content → Settings → Publish
After publication, the work changes:
Share → Results
The primary action changes with the form's state, while destructive or uncommon actions move out of the main path. This reduces the chance of an accidental transition without hiding the actions administrators still need.


TRADE-OFF
The system introduced more named states than a single toggle but fewer surprises. In a high-consequence workflow, visible complexity is safer than hidden complexity.
OUTCOME
The redesign gave the team an operating model, not just new screens.
The final handoff included around 150 high-fidelity screens covering navigation, statuses, permissions, configuration, and recovery. More importantly, they were all built from the same lifecycle and payment models. This gave product and engineering a consistent way to discuss edge cases before they reached development.
Publishing was no longer treated as one button, and payment was no longer buried in a condition tree. Each had a structure the team could understand, explain, and extend.
WHAT I CAN VALIDATE
The project moved into implementation after my handoff, but I left the company before its public release. I cannot claim production results or user metrics I did not measure. What I can validate is the design delivered: form states were made clearer, payment logic was separated from question branching, and new scenarios could be supported without adding another one-off rule.
WHAT I LEARNED
Good simplification doesn't remove complexity. It gives it a shape.
Publishing and payments looked like separate feature problems at first. But both kept coming back to the same questions: What state is this in? Who can make a change? What happens after they do? What could go wrong, and can it be reversed?
Once I started asking those questions consistently, individual design decisions became much easier. Public-sector software is complex because the policies and consequences behind it are complex. My job was not to hide that complexity, but to give it a clear structure, show the right information at the right time, and help staff recover when something went wrong.
What I'd measure next
I would first test whether administrators can answer three questions without assistance: Is this form available to the public right now? Why or why not? What action will change that? I would then compare configuration errors and time-on-task across common payment scenarios, and track how often administrators need support to recover from an incorrect state.








