A client-branded intake tool for a LATAM tire & wheel retailer — a static branded shell embedding a self-hosted open-source survey platform, containerized on owned infrastructure behind automatic TLS. No SaaS subscription. No data in someone else's cloud. No moving parts to babysit.
A LATAM tire & wheel retailer needed a clean, branded way to capture customers' vehicle details — make, model, year, current setup — so their team could match the right tires and wheels for each request. The obvious answer was the one every small business reaches for: rent a SaaS form tool, drop a link in WhatsApp, done.
The obvious answer had three problems. First, recurring cost for a static need — a monthly subscription, priced per seat or per response, for what is fundamentally a form. Second, data custody — every customer's vehicle details and contact information would live in a third-party vendor's cloud, under that vendor's retention policy, in that vendor's jurisdiction. Third, brand dilution — customers would be bounced from the retailer's domain to a generic form host that looks like every other survey on the internet.
The brief was simple to state and easy to over-engineer: give the retailer a branded intake tool on their own domain, on infrastructure they control, without inventing a custom form backend from scratch. The interesting part of this project isn't a clever algorithm — it's the delivery pattern that made it shippable in two weeks.
The whole system is two proven pieces composed cleanly: a client-branded static front end, and a self-hosted open-source survey platform embedded inside it. Everything below the surface is standard, containerized, and stateless.
The customer-facing page is plain HTML, CSS, and JavaScript carrying the retailer's branding — logo, colors, copy — served by nginx:alpine. No build pipeline, no framework runtime, no dependency tree to patch quarterly. The intake survey itself is an embedded Formbricks form running on a self-hosted instance, so the form logic, question flow, and response storage are handled by battle-tested open-source software rather than bespoke code.
The shell ships as a single Docker container capped at 64 MB RAM and 0.10 CPU — a smaller footprint than a phone photo. No volumes, no environment variables, no runtime state of any kind. If the container dies, the orchestrator restarts it and nothing is lost, because there is nothing to lose. Survey responses persist on the self-hosted platform, not in the shell. Statelessness here isn't an optimization — it's the reason this deployment has no failure modes worth documenting.
Deployment runs through Coolify on owned infrastructure, with Traefik as the reverse proxy. Point the resource at the client's vanity domain, set the DNS A record, deploy — Traefik provisions and renews the Let's Encrypt certificate automatically. Zero certificate ceremony, zero renewal calendar entries. The retailer's customers see the retailer's domain with a valid padlock, and the retailer never receives a certificate expiry email in their life.
The final step is the one that makes it the client's tool rather than the agency's: the intake page lives on a subdomain of the retailer's own domain. If the engagement ended tomorrow, the retailer keeps the domain, the container image, and every response ever collected. That is the practical definition of zero lock-in — not a promise in a contract, but an architecture where there is nothing to be locked into.
The value delivered isn't a benchmark number — it's the shape of the delivery: fast, cheap to run, and fully in the client's hands.
The real deliverable is the pattern: branded static shell + shared self-hosted survey platform + reverse-proxy TLS + client vanity domain. Nothing in it is specific to tires and wheels. The same four pieces produce a client-branded intake tool for any business — lead capture, service requests, onboarding questionnaires — in days, not sprints, with each new deployment adding one 64 MB container to a platform that already exists. That is what turns a one-off client request into a repeatable product.
Customer vehicle details and contact information land on the self-hosted survey platform — not in a third-party form vendor's cloud. Retention, access, and export are governed by the infrastructure owner, not a vendor's terms of service.
The container is capped at 64 MB of RAM and a tenth of a CPU core. It costs effectively nothing to keep running, shares a server with dozens of other workloads, and will never be the reason an ops dashboard turns red.
A stateless static container has no database migrations, no session store, no framework CVE treadmill. Updates are a rebuild and redeploy of a page. The operational surface area is as close to zero as a live production service gets.
Customers stay on the retailer's own domain, on a page carrying the retailer's identity, with a valid TLS padlock — instead of being handed off to a generic survey host mid-conversation.
I ship client-branded tools on infrastructure you own — fast, self-hosted, and free of SaaS lock-in.
Let's Work Together