The problem
A regional agency was paying a monthly Webflow tax for a marketing site that didn't quite represent them. Stiff stock components, generic motion. Lost deals to better-looking competitors.
What I built
Replaced the Webflow build with a hardcoded site — design, frontend, backend, and deployment by me, solo. The interesting bits are Three.js compositions on key sections: an animated hero loop, scroll-triggered camera moves on service pages, and a contact section with a particle interaction tied to the cursor.
Behind the marketing site sits a small Express + Postgres backend running on a Ubuntu VPS with nginx + certbot. Boring infra by design — the agency's content updates were rare enough that a CMS would have been overhead.
What it shipped
- Conversion-shaped perception lift: the agency's first two enterprise deals after launch cited the new site as the reason they took the meeting
- Removed the Webflow subscription cost
- Maintained by the agency in plain HTML + content config for low-frequency updates
Decisions worth flagging
- No CMS. Content updates were infrequent enough that a typed config file beat the cognitive load of a CMS UI.
- Server-rendered Three.js scenes. Hydrated only on intersect, never above the fold on mobile — frame budget stayed clean.
- Linux admin myself. Cheap, no surprise cloud bills, full control. Trade-off was my time during deploys, which was fine given the team size.