Skip to main content
ShirePath Solutions

Drawing 02.4, marketing site and admin

Stunt Dudes

A site and admin for a professional BMX and skateboard stunt team, a nonprofit that plays school assemblies, festivals, and ministry events: shows, a tour schedule, a media gallery, and a booking form, all edited by the team without a developer.

AWSAWSNeonHTTPSoriginDrizzlemediapresigned PUTinquiry mailOIDC deploy10 s timeout1234567BrowserCloudFrontNext.js onLambdaNeon PostgresS3 mediaGitHub ActionsSendGridAWSAWSNeonHTTPSoriginDrizzlemediapresigned PUTinquiry mailOIDC deploy1234567BrowserCloudFrontNext.js onLambdaNeonPostgresS3 mediaGitHubActionsSendGrid
Fig. 1. One container on Lambda behind CloudFront; a booking lands in Postgres first, then in two inboxes.
Parts list for Stunt Dudes
No.PartWhat it does here
1BrowserPromoters and schools watch the act and send an inquiry; the team edits shows and photos in the admin.
2CloudFrontTLS and the www redirect; caches assets and photos, and passes pages and every form post to Lambda.
3Next.js on LambdaSite, admin, and booking form in one image tagged by commit, with secrets read from SSM at start.
4Neon PostgresShows, athletes, gallery records, inquiries with status, admin accounts, and rate limits.
5S3 mediaPrivate: prebuilt photo sizes and admin uploads, read only through CloudFront.
6GitHub ActionsBuilds the image, migrates, and applies Terraform through OIDC, then refreshes the pages. No stored keys.
7SendGridThe booking note to the team and the confirmation to the promoter, from the authenticated domain.

Why it exists

The act is loud, physical, and genuinely impressive, and their old template made it look like a hobby. A stunt team gets booked because a promoter or a principal watched thirty seconds of footage and believed it, so the site's job is to carry the act and then get out of the way of the booking.

How it is built

It is our usual AWS setup at its simplest: the whole site is one container on AWS Lambda, which runs only when a request comes in, behind the CloudFront CDN. The servers are written down as code in the repo (Terraform), and deploys sign in to AWS with short-lived credentials instead of stored keys. Public pages are static until an admin edit or a deploy refreshes them. They started on a five-minute refresh, which matched the database's idle timer exactly and kept it from ever sleeping; going static let it sleep. CloudFront caches what never changes: assets, photos, and generated images.

A booking is saved to the database before anyone is emailed, behind a hidden field only bots fill in and a limit on how often one visitor can send. Then SendGrid sends one note to the team and a confirmation to the promoter from the team's own verified domain, and the team works the inquiry in the admin by status. Gallery photos are prebuilt into the sizes the page needs and served from S3 through the CDN. There is one seeded admin, no signup, and a forced password change on the first sign-in.

What it does

  • Shows, tour dates, athletes, and a gallery the team edits itself
  • Booking inquiries saved first, then sent to the team and the promoter
  • An inquiry inbox with status and notes
  • Photos uploaded straight to S3 and served from the CDN
  • Pages for schools, corporate events, ministries, and each city they play
  • Structured data and share cards so promoters can find them

Screenshots

Plate 1. Stunt Dudes, as it looks live.

Something like this on your list? Tell us about it.

Talk about a build like this