Overview

The network needed a public home and a way to collect interested engineers long before the platform itself could launch. We built a separate coming-soon site, with its own codebase, its own database and its own deploy, so the waitlist could go live without waiting on, or destabilising, the platform build.

The coming-soon page: brand, the four features in sequence, launch locales, and one thing to do.
The coming-soon page: brand, the four features in sequence, launch locales, and one thing to do.
Client
Professional network for African consulting engineers
Industry
Professional community

The challenge

  • The brand needed somewhere to point people months ahead of the product being usable.
  • Signups had to be an owned asset from day one, not rows locked inside a third-party form tool.
  • It could not borrow the platform's release cycle; a landing page change should never wait on a platform deploy.

Approach

A confirmed signup. The address is written to the client's own Postgres and pushed to the newsletter audience in the same request.
A confirmed signup. The address is written to the client's own Postgres and pushed to the newsletter audience in the same request.
  1. 01

    Deliberately standalone

    A separate Next.js application with no dependency on the platform's frontend or backend. It ships on its own schedule and cannot break, or be broken by, the product being built next door.

  2. 02

    Own the list twice

    Every signup is written to Postgres through Drizzle and pushed to a Resend audience; the list stays queryable in a database the client owns, and is immediately ready to broadcast to.

  3. 03

    Validate at the boundary

    Zod schemas validate submissions before anything reaches the database, so the earliest and least-supervised public surface is also the strictest about what it accepts.

What shipped

Standalone

deploy, independent of the platform's release cycle

2

homes for every signup: owned database and Resend audience

Zod

validation at the public boundary

Stack

  • Next.js 16
  • React 19
  • TypeScript
  • Tailwind 4
  • Drizzle ORM
  • PostgreSQL
  • Resend
  • Zod