Customer portals, onboarding flows, approval dashboards, and ops tools built specifically for creative and marketing agencies. Senior engineer on subscription, $4,999/mo.
- Scope
- Ship
- Iterate
monthly subscription
Who this is for
You run a 10 to 50-person creative or marketing agency. Customer onboarding lives in Notion and email, approval threads get buried, and every white-label SaaS tool you try looks generic or costs more than it solves. You need a custom web app for your agency that fits your exact workflow — not another tool your customers ignore.
The pain today
- Customer onboarding is Notion plus email with no audit trail
- Approval threads buried in inboxes — no version history, no accountability
- Off-the-shelf portal tools look nothing like your brand
- Project handoffs from sales to delivery lose context every time
- Report compilation is still manual — someone exports CSVs every Friday
The outcome you get
- Branded customer portal live in 8 to 12 weeks at $4,999/mo
- Approval flows with version tracking and per-stakeholder status
- White-label multi-tenant architecture for 5 to 20+ customers
- Direct integration with your CRM, PM tool, and analytics sources
- 100% code ownership — yours to extend, productise, or hand to any developer
Why agencies outgrow no-code portal tools
Tools like Noloco, Copilot, and ManyRequests solve the first problem fast. They are genuinely good for agencies that need something in a week. Where they break is at the edges: your onboarding form needs conditional logic tied to your CRM, your approval dashboard needs to pull asset versions from your storage, your reporting view needs to blend three data sources into one number your customer can actually read. No-code tools cap out when the workflow is specific enough to matter.
A custom web app for your agency starts where those tools stop. I build the exact flow your team runs — not a generic approximation of it. Norte Web Digital, a Brazilian digital marketing agency, needed a CRM that could turn Google Maps data into a structured lead pipeline. No off-the-shelf tool had that logic. The custom build delivered +500% growth in their lead base and 250 new leads per day from a single source. That is what purpose-built does that template tools cannot.
Branded customer portal live in 8 to 12 weeks at $4,999/mo
The five ops areas I typically build for
Customer onboarding: structured intake forms, account creation, brief generation, and automatic CRM record creation — the same forms your account managers fill out manually right now, automated and auditable.
Approval flows: creative or strategy drafts uploaded once, comment threads attached to specific versions, stakeholder status visible at a glance. No more "which PDF was the final one?" emails.
Reporting dashboards: data pulled from your PM tool, GA4, Meta Ads, and other sources into a single customer-friendly view. Compiled automatically, not by someone exporting CSVs on Friday afternoon.
Asset delivery: final files stored persistently with customer access, version history, and download logs — not a WeTransfer link that expires in seven days.
Internal ops: capacity and utilisation tracking, project profitability per engagement, resource allocation visible to account leads without requiring a call to the ops director.
+500%: Lead base growth.
White-label architecture decisions
White-label means the app serves multiple customers with distinct branding per customer. Three architecture patterns are worth knowing before you start.
Subdomain per customer (client1.yourapp.com) is the most common. Easy to set up, low operational overhead, SSL managed centrally. Good for agencies serving 5 to 20 customers where the URL structure does not matter to the end customer.
Custom domain per customer (client1s-own-domain.com mapped to your app) is worth the added complexity only when customers demand full URL ownership — common in enterprise or white-label reseller contexts. SSL provisioning per tenant adds setup time.
Shared domain with branded theme (yourapp.com/client1 with logo and colour scheme injected per session) is the lightest option and easiest to maintain. Per-customer data isolation still runs at every query layer regardless of which URL pattern you choose.
For most agencies in the 5 to 20 customer range, subdomain plus per-customer theme is the practical sweet spot. I have built all three patterns — the right choice depends on your customers' expectations, not on what is easiest to build.
Real case: Norte Web Digital's custom agency CRM
Norte Web Digital is a digital marketing agency that needed leads, not software advice. Their existing process required manual prospecting from Google Maps data, no structured pipeline, and no way to scale outreach without adding headcount.
I built a custom CRM that pulled Google Maps business data into a structured lead pipeline, automated WhatsApp outreach via Meta API, and pushed contacts into HubSpot for nurturing. The result: +500% growth in their lead base, 250 new leads per day, and a 3 to 4 day lead-to-customer cycle — down from weeks.
The stack was Next.js, TypeScript, Node.js, PostgreSQL, Twilio, WhatsApp Meta API, and HubSpot. None of that logic existed in any off-the-shelf CRM or portal tool. The agency's growth came from having a tool built to its specific acquisition model, not from adopting someone else's workflow.
Pricing and what the subscription covers
Standard engagement is $4,999/mo. Pro tier is $5,499/mo for more complex multi-system builds. Typical agency app engagements run 2 to 4 months — that covers the full build, not a retainer for ongoing feature additions after the fact.
The 14-day money-back guarantee applies. Cancel anytime. Every line of code is yours under Work Made for Hire — you own it, you can white-label it for your own customers, and you can hand it to any developer to extend without a licensing conversation.
I take 1 to 2 new customers per quarter by design. That is not a sales tactic. It is how I keep delivery cycles at 2 to 4 days rather than 2 to 4 weeks. Agencies that need something fast benefit from that directly.
When to build custom and when not to
Honest answer: many agencies do not need a custom app yet. If your agency is under 10 people and customer ops are manageable, a well-configured Notion plus your CRM covers most of the same ground for under $100 per month. I will tell you that in the first call if it is the case.
Custom app work pays back when the agency is past what spreadsheets and general-purpose tools can hold. That threshold is usually somewhere around $1M to $10M in annual revenue with 10 or more customers active at once, where the manual ops cost starts to exceed the build cost within a year.
One signal that matters more than revenue: when your account managers spend more time managing tools than managing customers, the underlying problem is structural — not a Zapier automation away from being fixed.
Recent proof
A comparable engagement, delivered and documented.
A custom CRM that turned Google Maps into a lead machine
Built a purpose-built CRM for a digital agency that captures leads from Google Maps, reaches them via official WhatsApp (Twilio + Meta API), and uses AI to suggest replies and standardize templates. The system scaled the lead base by over 500%, with 250 new leads entering the pipeline every day.
Read the case studyFrequently asked questions
The questions prospects ask before they book.
No-code portal tools are fast and good for straightforward needs. They break when your workflow has enough specific logic — conditional onboarding tied to your CRM, approvals tied to versioned assets, reports that blend three data sources. A custom build starts where those tools cap out. You also own the code outright, so there is no vendor dependency, no per-seat pricing that scales against you, and no feature roadmap you are waiting on.
Yes. Multi-tenant architecture with per-customer branding — logo, colours, typography — and optional per-customer subdomain or custom domain. Agencies serving 5 to 20 customers with distinct brand identities can run all of them on one codebase with tenant isolation at every data layer. For agencies that resell portal access as a product line, that architecture is designed from the start rather than retrofitted. White-label setup is included in the engagement when it is a stated requirement.
My subscription starts at $4,999/mo. A focused portal build — onboarding, approvals, asset delivery, basic reporting — typically takes 2 to 3 months, so the total build cost runs $7,000 to $10,500 before any ongoing retainer. For comparison, bespoke agency software from a full-service dev shop usually starts at $30,000 to $80,000. The subscription model means you pay as it gets built, and you can cancel if the direction is wrong.
Tenant-aware queries at every layer — each customer's data is logically separated, no cross-tenant visibility, and access is logged. For agencies serving customers in regulated industries (healthcare, legal, finance), I can strengthen isolation to separate database schemas or dedicated instances per tenant. That adds modest infrastructure cost — typically $200 to $500 per month per tenant requiring dedicated infrastructure — and is worth discussing early so it is designed in, not bolted on.
Yes. HubSpot, Salesforce, Pipedrive, Monday, Asana, ClickUp, and Notion all expose APIs. Typical patterns: project records created in the portal sync to your PM tool; customers logged in the CRM are routed into the portal onboarding flow; approval outcomes push back to the CRM as engagement milestones. Each integration takes 1 to 2 weeks during the engagement. The Norte Web Digital build wired HubSpot, WhatsApp Meta API, and Google Maps data into a single pipeline — multi-source integrations are standard work, not exceptions.
The core set is project status visibility, asset or deliverable access, an approval or feedback mechanism, and invoice or payment display. Beyond that, it depends on your customer type. Creative agencies need versioned file review. Performance marketing agencies need live reporting pulled from ad platforms. Retainer-based agencies benefit from a clear scope-and-usage tracker. I scope the feature set in the first call based on where your account managers are losing the most time.
If the app has value beyond your internal use, productising is an option. The architectural choices shift slightly — multi-tenant from day one, payments infrastructure built in, usage metering if relevant. Instill, my own self-initiated product, is an example of this pattern: a workflow tool I built for my own process that now serves 30+ active users with 1,000+ skills saved. The initial build and the productised version share most of the same code; the difference is in how access and billing are structured.