GuideAstro integration

Add a waitlist to Astro.

A server endpoint handles the POST. Your Astro component or island makes a client-side fetch to it.

src/pages/api/waitlist.ts
import type { APIRoute } from 'astro';import { Enlist } from '@enlistdev/sdk';const enlist = new Enlist({ apiKey: import.meta.env.ENLIST_API_KEY });export const POST: APIRoute = async ({ request }) => {  const { email } = await request.json();  const signup = await enlist.waitlists.addSignup(    import.meta.env.WAITLIST_ID,    { email },  );  return new Response(    JSON.stringify({ position: signup.position, total: signup.total }),    { headers: { 'Content-Type': 'application/json' } },  );};

What you get

Position in the response. Email on its way. Nothing else to wire up.

01

Position assigned server-side

Inside a locked transaction. The signup response already contains the position and total — no polling, no second request needed to render "you're #47".

02

Signup email included

Sent via your email provider with the position in the body. Delivery, open, and click state is written back onto the signup row.

03

One key, three entry points

REST, TypeScript SDK, and an MCP server for coding agents. All the same API key, all the same response shape.

Wire it into your agent too

Add the MCP server and prompt your coding agent — it creates the waitlist and wires the handler in one shot.