Platform features
Rush Notary — Features
A self-guided tour of everything the platform does. Click any section to explore — links open in a new tab so you can click around freely. This page mirrors the engineering FEATURES.md; if a feature ships, it shows up here.
Public Site & SEO Funnel
liveRush Notary indexes hundreds of Florida cities and their government forms. Every county and city has a landing page optimized for search with JSON-LD schema and OpenGraph cards.
Tip: Use-case pages (Power of Attorney, Affidavit, USPS 1583, etc.) and the MDX blog feed the same funnel.
Document Detail & Auto-Attach
liveEach form has its own page with a description, thumbnail preview, and an auto-attached PDF. The customer never has to hunt down the original city document.
Tip: The thumbnail and PDF are served from Cloudflare R2 — not baked into the build — so content updates without redeploying.
Customer Upload & Preview
liveThe core flow: upload a PDF, enter your email, and see your document rendered inline. From there a confirmed customer is handed off to a Rush Notary signing session.
Tip: Uploads land in a private R2 bucket under a cryptographically random UUID and render through a same-origin proxy — no customer auth needed.
Booking Layer (Cal.com)
liveCustomers can schedule an online notarization instead of hitting a dead end. Cal.com cloud (paid Rush Notary team) handles round-robin, availability, and webhook sync into the admin schedule. The standard event is 15 min; the VRO flow gets a dedicated 30-min event.
City Associate Portal
liveInvited city employees sign in with a magic link, see the PDFs approved for their city, submit new or replacement documents, and request publication to the public city page. Admins review through a two-gate queue (submission → promotion).
Tip: Admins can preview the portal as any city via a signed, time-limited impersonation cookie from /admin/demo.
Admin Queue, Mapper & Agents
liveThe scraper drafts form descriptions; admins approve or reject in the queue (writes to R2, goes live via revalidation — no rebuild). The PDF mapper draws fillable fields for the auto-fill pipeline, and notary rosters + availability sync back to Cal.com.
Tip: Admin pages require a magic-link sign-in with an admin email.
Direct Payment
liveA standalone, unlisted payment page for collecting a one-off payment outside the booking flow — handy when a customer needs to pay by link. It embeds a PCI-compliant JotForm payment form, so card data never touches our servers. This page is not linked from navigation and is noindex; we share the URL directly.
VRO Payment
liveThe paid VRO funnel: /vro (landing/explanation, the link we hand to VRO traffic) → /vro-payment (Stripe embedded Checkout — $25 “VRO Notarization” + $1 booking fee, $26 total) → /book/vro (ID upload + scheduling, intro skipped for paid arrivals). All unlisted/noindex, share-by-link. Booking is deliberately not gated on payment. More price options: lib/stripe-prices.ts.
Walkthrough: Upload → Preview
The happy path most customers will take. Open each link in a new tab.
- 1
Start from a city form
Open Tamarac Building Permit → Start
What you should seeYou see the form title, a thumbnail of the blank PDF, and an upload zone. The PDF is already attached — upload your filled-in copy or skip it.
- 2
Enter email and submit
Type any email, optionally attach a PDF, and click Continue →.
What you should see303 redirect to
/start/preview?id=<uuid>&email=…. The page loads within ~1s. - 3
Preview your document
The preview page shows “We got your document,” echoes your email, and renders the PDF in an iframe with a loading spinner.
What you should seeThe PDF renders inline. On mobile it fills the viewport comfortably; on desktop it caps at 720px. A “Start over” link lets the user upload a different document.
- 4
Or book a notary instead
Prefer a scheduled session? Open /book and pick a slot — the confirmation syncs to the admin schedule via the Cal.com webhook.
What's happening under the hood
Frontend
Next.js 14 App Router on Vercel. Static generation for SEO pages, dynamic rendering for the upload/preview and admin surfaces. Tailwind + custom design system.
Storage
Cloudflare R2 via the S3-compatible SDK. PDFs, thumbnails, and queue JSON indexes live in buckets — not in the repo.
Database
Supabase serverless Postgres via Prisma. Bookings, agents, users, and the associate-portal document lifecycle.
Deploy
Vercel auto-deploys every push to GitHub main. Push → next build → live. No manual steps.
Auth
NextAuth v5 + Resend magic-link — no passwords, no OAuth. Admins seeded via ADMIN_EMAILS; role gating in middleware.
Booking
Cal.com cloud (paid Teams plan). Webhook receiver verifies HMAC-SHA256, upserts into Postgres, and round-robins between agents.
Prod: www.rushnotary.com