Our journey

From first commit to live payments

Invitely went from its first commit to live payments between 2 and 13 October 2026. Here is how it was built, what it runs on, and what we did to keep it fast, low cost and safe.

223
commits
205
issues closed
20
milestones
726
tests, run in about 5 seconds

Numbers as of 13 Oct 2026

Timeline

From 2 Oct to 13 Oct

  1. 2 Oct

    First commit: the invite page with no-signup RSVP, and festival greetings.

  2. 2 Oct

    Billing, tiles, calendar, QR poster and shared album. Security headers and Turnstile.

  3. 3 Oct

    The brand mark and design system v2.

  4. 4 Oct

    Landing page redesign, invite effects and fast node-only tests.

  5. 5 Oct

    Live chat, and the first cost work.

  6. 6 Oct

    Email codes, passkeys and realtime v2.

  7. 10 Oct

    Host preview, a responsive pass and a new database host.

  8. 11 Oct

    All animation moved to motion, and new templates.

  9. 13 Oct

    Live payments, and art served from the CDN.

Tech

What it runs on

  • App

    Next.js 16, React 19, TypeScript

  • Look

    HeroUI v3, Tailwind v4, tailwind-variants, motion

  • Data

    PostgreSQL, Drizzle, DynamoDB for sessions and rate limits

  • Accounts

    Better Auth with email codes, passkeys and Google. Guests need no account.

  • Payments

    Dodo Payments

  • Email

    Amazon SES, react-email

  • Live

    AWS AppSync for chat and live replies

  • Media

    S3, CloudFront, sharp

  • Hosting

    AWS Amplify, CDK

  • Tests

    Vitest, PGlite, MSW

What we tuned

Fast, low cost and safe

  • Speed

    • The invite page is cached at the CDN.
    • Invite data is read from a stored copy before the database.
    • Anonymous visitors cause no database queries.
    • The realtime client (158 KB) loads after the page.
    • The editor makes fewer server calls.
    • Art and sounds are served from the CDN.
  • Cost

    • Analytics are batched and loaded nightly.
    • No hourly job wake-ups.
    • Venue search is cached for each session.
    • The album zip is built in storage.
  • Safety

    • A security policy on every route.
    • Turnstile on sign-up, sign-in and reset.
    • Rate limits.
    • Revoked sessions stop at once.
    • Secrets are kept out of the code.
  • Reliability

    • Backups with a restore drill.
    • An email queue with bounce handling.
    • Structured logs.
    • A load check before launch.