Premium answers, before the call.
Direct, considered, honest.
Still not sure what you need?
Book a scope call. We'll walk through your project and shape an estimate together before you hang up.
Project timing depends on scope. We shape the timeline together on the scope call — smaller builds move sooner, larger systems take longer. Estimates include realistic timing windows based on what you actually need, not template promises.
Your logo, brand colors, and any copy you already have. We handle the rest — wireframes, design system, layout, and build. If you don't have copy, we can write it during the Scope & Assets phase at a flat add-on rate. No surprises.
Yes — completely. Full source code transferred to your GitHub on launch day. Domain pointed to your Vercel account. Resend configured under your API key. You own everything. We keep nothing.
Each tier includes revision rounds before launch. If you're on the retainer, it covers ongoing support — bug fixes, scope changes, and new features, scoped together rather than billed separately. It's optional; without it you own the site and handle changes as you like.
We scope the project on a call, agree on page count, features, and integrations, then set the build fee — paid 50% to start, 50% at launch. From launch you can add an optional monthly retainer for ongoing care, billed in 3-month terms. No hourly billing, no invoice surprises, no scope creep.
Yes. Everything is remote — scope call on Google Meet, reviews async via Loom or shared staging link, final handoff via GitHub and Vercel. We've launched sites for clients across Canada and internationally. Time zone hasn't been an issue.
If you take the optional retainer, that's your main ongoing cost (billed in 3-month terms). Otherwise, ongoing costs are just third-party: hosting on Vercel's free tier is $0/month for most small business sites ($20/month on Pro if you outgrow it), and domain renewal is typically $15–20/year. No hidden platform fees.
Still have questions?
A scope call answers everything. Partner-led and ongoing — just a conversation about what you need.
