Skip to main content
home35 Designs
All workPlatform

Registered Authentic

End-to-end platform for a motorsport authentication company: public site in 15 languages, payments, live phone-camera capture, a custom photo-comparison tool, certificate generation with blockchain records, and an admin area the owner runs without a developer. Collectors submit an item and pay a deposit, the item is photographed live on the owner's phone or shipped to an intake location, specialists review it in a staff dashboard, and approved items get a tamper-evident certificate. Corey designed and built all of it.

Home page of Registered Authentic

At a glance

Type
Platform
Industry
Motorsport memorabilia
Built with
Next.js 15, React 19, TypeScript, Tailwind CSS, Prisma, next-intl, @react-pdf/renderer, sharp
Timeline
April to October 2026, 174 commits
Codebase
About 50,000 lines of TypeScript across 301 files; 29 pages and 74 API routes
Database
24 models, 11 enums and 19 versioned migrations on Postgres (Neon)
Integrations
Authorize.Net, Clerk, Resend, Vercel Blob, Upstash Redis, Google Places, Polygon

Submission, capture and payments

The submission runs in six steps, from contact details to the deposit, and saves a draft as the customer goes. Contact details are validated on the form, on the server and once more right before the card is charged, and addresses autofill through Google Places.

The item's declared value picks the path. Remote items get a secure link for live capture on the owner's phone: gallery uploads aren't accepted for required shots, and each of 49 shot types comes with a written brief and an example photo. Everything else ships to an intake location the admin manages.

Deposits go through Authorize.Net Accept.js, so card data never touches the server. Balances are hosted invoices, signed webhooks reconcile every payment, and a payment that can't be matched to a submission is recorded for staff instead of being lost.

  • First step of the submission form, with the email field blurred
  • Example-photo manager showing the helmet shots customers are asked to take

Staff dashboard

The dashboard has three roles: admin, authenticator and reviewer. New submissions can stay unassigned, go to one person or rotate round-robin between chosen staff, and each person chooses which email notifications they get.

Every submission follows one status lifecycle, from draft and deposit through review, intake and authentication to approval, the certificate and completion. The help page documents it for staff.

The ledger of issued certificates is write-once: the database itself refuses edits to its rows.

  • Order routing settings for assigning new submissions
  • Staff help page describing the two authentication paths and the status lifecycle
  • Authentication ledger of issued certificates, with one column blurred
  • Intake locations manager in the admin settings

Photo Match

Specialists prove an item is the real race-used piece by ringing matching marks, such as scuffs, stickers, signatures and paint flaws, in the customer's photo and in historical race photography. Pairs are numbered and color-coded with undo and redo, and the tool has zoom, pan, a loupe, view-only brightness and contrast, and keyboard shortcuts throughout.

Overlay mode lays one photo over the other with a fade or a draggable swipe divider. Auto-align works out the move, scale and rotation from the matched points with a least-squares fit; the geometry is custom and unit-tested.

  • Photo Match tool comparing a reference photo with the item side by side
  • Photo Match overlay mode laying the item photo over the reference

Certificates

Each approved item gets a certificate number, a public verification page and a PDF rendered on the server with @react-pdf. The PDF carries the item photos, the photo-match evidence and a verification link, and is stored in Vercel Blob.

An optional record on Polygon puts the certificate on a public blockchain.

  • Public certificate verification page for an authenticated helmet
  • Generated certificate of authenticity PDF

Run by the owner

Settings are stored encrypted in the database, and a value entered in the admin overrides the server configuration, so the owner can rotate a payment key or swap the email provider without a redeploy.

Sandbox and production payment keys are kept side by side. Production can't be selected until all four live keys are in, and a health check covers the keys, the webhook and delivery. A setup checklist lists anything still missing and hides itself when everything is done.

The theme drives everything visual, down to the logo, which is rebuilt as a vector that recolors itself, and the browser and home-screen icons rendered from the same colors.

Going live is a one-time handover. Live payment keys are checked against the gateway, the webhook is registered in one click and confirmed with a test notification, and any launch items skipped are recorded. A flag then takes the site from coming soon to public within about 30 seconds and switches card payments to production.

  • Theme settings with dark and light palettes and a live preview
  • Brand-kit page offering every logo version and a single zip download

Fifteen languages

Every public page is translated into 15 languages, including right-to-left Arabic. Admins can edit marketing text and legal pages in place on the live page, with some legally sensitive text locked.

  • The six-step process section of the Registered Authentic home page
  • Registered Authentic home page on a phone

Highlights

  • A database backup branch before every deploy, before-and-after data snapshots, migrations during the build and an enforced Content Security Policy with a kill switch.
  • API keys entered in the admin area are encrypted at rest, card data never touches the server, and every webhook signature is verified with replay protection.
  • The payment webhook accepts the old or new signing key during rotation, settings fall back to server configuration if the database is unreachable, and the live flag fails closed.
  • Least-squares auto-align in the Photo Match tool, with the geometry unit-tested.
  • 12 automated test suites, and the phone capture flow tested in the iOS Simulator with a fake camera feed.
  • Headless-Chrome visual fingerprints proved a theme change left the existing design unchanged.

Let's talk.

Tell me what you're building. I read every message myself and usually reply within one business day.