Selected work

Case study · 03

2026 · Design, full-stack development & CMS

Pay It Forward Card Shows

A community event platform with a custom CMS and serverless backend for shows and dealers.

Pay It Forward Card Shows homepage featuring trading-card artwork and upcoming show links
Year
2026
Role
Design, full-stack development & CMS
Stack
Next.js · Vercel Functions · Neon
Status
Live and in production

The work, before the process.

Two representative views establish the range before the case study moves into the decisions behind them.

Pay It Forward Card Shows upcoming shows page

Upcoming shows

Dates, venue details, and show information are organized around the next visit.

Pay It Forward Card Shows dealer information and table reservation page

Dealer information

Practical guidance and reservation paths give dealers a clear way to participate.

One event platform for collectors, dealers, and show operations.

I designed and built the public Next.js experience, custom CMS, serverless actions, and Neon data layer behind show discovery, venue details, dealer guidance, table reservations, and community content.

Each show appears across public pages and operational workflows. Dates, venues, reservation paths, email, and structured data have to stay aligned while collectors and dealers receive different routes through the same event.

01

Audiences

One show begins with two different questions.

Collectors need to know when to arrive, where to go, and what to expect. Dealers need table options, operating guidance, and a reservation path. The site serves both journeys without separating them from the event they share.

02

Event data

A date change is an operational change, not a copy edit.

Show records drive the homepage, upcoming-show archive, dealer paths, email, and JSON-LD. A shared date model keeps same-day events, daylight-saving offsets, and public Eastern Time labels consistent across those surfaces.

03

Reliability

Persistence and delivery need separate failure boundaries.

Serverless workflows confirm a reservation in the database before attempting transactional email. A delivery problem is logged separately, so saved data is not presented to the visitor as a failed submission.

A saved form is a success, even if the email fails

A completed database write no longer becomes an apparent failure when email delivery fails. Persistence is confirmed first; delivery is attempted separately and logged if it fails.

Every event time is one timezone, in one place

Homepage, archive, and JSON-LD now use one America/New_York date utility. Same-day events and DST offsets resolve consistently, and public copy labels times as ET.

Reset links expire when the password changes

Reset tokens are tied to the current password hash, so changing the password immediately invalidates older links without another table or expiry system.

User text is escaped before it reaches email HTML

Public form values are escaped before entering email HTML, including subjects and link attributes. Login and recovery rate limits use durable storage rather than a process-local map.

A full-stack event platform in one deployable system.

The public experience, custom administration, event data, and communication workflows share a typed Next.js codebase and managed serverless infrastructure.

What I owned

  1. 01

    Responsive visual direction and frontend development

  2. 02

    Custom CMS for shows, venues, dealer guidance, and community content

  3. 03

    Vercel Serverless Functions for backend and reservation workflows

  4. 04

    Neon Postgres data layer and Vercel deployment

Technology roles

Experience

  • Next.jsPublic site, custom CMS, and server routes
  • ReactShow, dealer, and community interfaces
  • TypeScriptTyped content and application contracts
  • Tailwind CSSResponsive visual system

Data & operations

  • Drizzle ORMTyped schema and queries for the custom CMS
  • NeonManaged serverless PostgreSQL
  • ResendTransactional form and account email
  • VercelApplication and serverless deployment

A custom event stack from page to database.

The Next.js experience is backed by a purpose-built CMS and serverless application layer, keeping event content and operational workflows in one deployable system.

  1. Frontend

    Next.js experience deployed through Vercel

  2. Content

    Custom CMS for shows, venues, dealers, and community information

  3. Backend

    Vercel Serverless Functions for application and reservation workflows

  4. Database

    Neon Postgres

Readable views of the site and the system behind it.

Live and in production

Available in production today; the live experience reflects the system shown throughout this case study.

Discuss a similar project
Next case study

Anne Newgarden