Operator overview
Everything subQ does, at a glance.
A turnkey research-peptide storefront with a full back office — catalog, cart, accounts, a research-grade dosage calculator, and a role-gated admin console. This page is a plain-English map of what already works.
34
SKUs
8
Categories
28
FAQ entries
30+
Compound refs
01 · Storefront
A cinematic catalog, not a template.
Editorial home page, filterable shop, and per-product detail pages with real scientific specs and generated on-brand imagery.
- 01Home with featured strip and standards band
- 02Shop with live search, category filter, and hairline grid
- 03Product pages with CAS number, molecular formula, purity, size
- 04AI-generated product photography, unique per SKU
- 05Deep link into the dosage calculator from every product
02 · Cart & checkout
Guest-friendly, sign-in gated at commit.
Cart lives in the browser so visitors can shop anonymously; account is required only to place an order — which persists to the database as a real order plus line items.
- 01localStorage-persisted cart, survives reloads
- 02Free shipping over $100, flat rate otherwise
- 03Shipping form with address capture
- 04Orders + order_items written to Postgres on submit
- 05Payments intentionally not wired — clean seam for Stripe/Paddle
03 · Accounts & auth
Email/password and Google, out of the box.
Supabase-backed auth with auto-provisioned profiles. Signed-in users get an account page with orders and saved dosage protocols.
- 01Email/password + Google OAuth
- 02Profile row auto-created on signup via database trigger
- 03Order history with status, totals, and line items
- 04Saved dosage protocols — load, edit, delete
04 · Dosage calculator
Research-grade, guided, printable.
A three-step workflow that walks a researcher from compound to draw volume, validates against literature ranges, and saves the result to their account.
- 01Step flow: compound → reconstitution / dose / frequency → summary
- 02mg / mcg / IU conversions with syringe unit readouts
- 03Live validation with warnings for out-of-range doses or poor draw precision
- 0430+ curated compounds with reference bands and peer-reviewed citations
- 05Copy summary + print styles for lab bench use
- 06Save to account, reload later via ?protocol=<id>
- 07One-click add: correct vial count + bacteriostatic water to cart
05 · Content & SEO
Indexed, shareable, and answer-ready.
Every public route ships its own title, description, and Open Graph tags. The FAQ is structured for rich results.
- 01About, Contact, FAQ, and per-product pages with unique metadata
- 0228-entry FAQ across 8 categories with deep-link anchors
- 03FAQPage JSON-LD for Google rich results
- 04sitemap.xml and robots.txt
06 · Admin dashboard
One console for inventory, orders, alerts, and reseeds.
Available at /admin, gated by a role in user_roles. Four tabs:
- 01Inventory — inline edit price, stock, low-stock threshold, restock note; atomic stock adjustments via an RPC with a full audit trail
- 02Orders — status transitions (pending → processing → shipped → delivered / cancelled) enforced by a database trigger; stock auto-decrements on ship
- 03Alerts — low-stock cards driven by per-product thresholds
- 04Validation & reseed — Zod-based validator catches missing fields, duplicate slugs/names, negative or malformed prices, bad sizes, unknown categories, and allocation-% drift; one-click reseed from the source-of-truth file, preserving live stock
07 · Data model & security
Postgres with RLS on every table.
Nothing is publicly writable. Admin actions run through security-definer functions, and every stock change is audited.
- 01Row-level security on products, orders, order_items, profiles, user_roles, stock_movements
- 02Admin gating via has_role() security-definer function — no recursive-policy footguns
- 03stock_movements audit log for every adjustment and shipment
- 04Order-status transition trigger prevents illegal state changes
08 · Design system
Noir & Gold, Helvetica-first, print-aware.
A disciplined OKLCH token set powers the whole app. Hairline dividers, editorial eyebrows, monospace captions — no purple-gradient AI look.
- 01Single source of truth in styles.css (OKLCH tokens, semantic variables)
- 02Helvetica Neue / Inter / Arial stack
- 03Dedicated print styles for dosage protocols
- 04Fully responsive from mobile to wide desktop
Intentionally not wired
Clean seams left in place so the operator can pick a vendor without rip-and-replace work.
Payment processor
Stripe or Paddle — insert at checkout submit
Shipping labels
ShipStation / EasyPost hook on order → shipped
Transactional email
Resend or Postmark for order and auth events
COA file uploads
Supabase Storage bucket + per-batch link on product