All projects

Developer-Hiring Lead-Gen Site.

A live, SEO-first lead-generation site for a separate developer-hiring brand, built solo from an empty repo.

I built every page (a 21-section landing page, a blog, case studies and a podcast) on Next.js 16, with one structured-data graph that links 10+ schema.org types across the whole site. Leads come through a multi-step form, with Zod checking the email and the final submission; they're enriched server-side with location and posted straight to the sales team's Slack and Discord. A password-protected leads dashboard and push-to-deploy CI round it out.

Role
Solo developer · Softaims
Time
2026
Stack
Next.js · React Compiler · Tailwind CSS · Zod
Access
Private: company project

Constraints

Organic search was the whole point, so every page had to be fast, crawlable and carry valid, consistent structured data, and the contact flow could never block a visitor or lose a lead.

Key decision

I built the structured data as one graph with stable IDs instead of per-page snippets, so the organisation, services, reviews and people link up across the site. The sitemap is generated from the route tree and shares a single redirect list with the Next.js config, so it can't drift as pages are added. If someone closes the form or moves to another page after typing a valid email, a keep-alive request still sends that email, so the lead isn't lost.

A lead is never lostsimplified · example values
Multi-step formstep 3 · emailServer routeenrich with locationSlacksales teamDiscordsales teamDashboardpasswordlogin
  1. Fill: A visitor works through the multi-step form. Zod checks the email when they enter it, and the whole form on submit.
  2. Leave: They close the form or move to another page after typing a valid email. A keep-alive request still sends that email, so the lead isn't lost.
  3. Enrich: On the server, the lead is checked again and tagged with the visitor's city and country, looked up from their IP address.
  4. Notify: It's posted straight to the sales team's Slack and Discord, and shows up in a password-protected leads dashboard.

Fill. A visitor works through the multi-step form. Zod checks the email when they enter it, and the whole form on submit.

Live · built solo, from scratch

Stack

Next.js · React Compiler · Tailwind CSS · Zod · GSAP · GitHub Actions · PM2

Want to talk about this build?

I'm open to remote full-time roles and freelance work, and happy to walk through the decisions behind it.