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.

HostingVercel
Auto-deploys from GitHub main
BookingCal.com cloud
Round-robin team event, webhook-synced
AuthMagic link
NextAuth v5 + Resend, no passwords
01

Public Site & SEO Funnel

live

Rush 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.

02

Document Detail & Auto-Attach

live

Each 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.

03

Customer Upload & Preview

live

The 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.

04

Booking Layer (Cal.com)

live

Customers 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.

05

City Associate Portal

live

Invited 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.

06

Admin Queue, Mapper & Agents

live

The 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.

07

Direct Payment

live

A 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.

08

VRO Payment

live

The 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. 1

    Start from a city form

    Open Tamarac Building Permit → Start

    What you should see

    You 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. 2

    Enter email and submit

    Type any email, optionally attach a PDF, and click Continue →.

    What you should see

    303 redirect to /start/preview?id=<uuid>&email=…. The page loads within ~1s.

  3. 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 see

    The 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. 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