May 22, 2026 — v0.2
Calendar, Organization view, store lifecycle, and a deeper Settings
- Calendar. A complete appointment system: agenda + new-appointment form + per-store and org-wide views, automatic email and SMS reminders (24 hours and one hour out), one-click confirm / cancel straight from the email, bare-keyword SMS replies (“YES” / “CANCEL”) routed back to the right appointment, real invite.ics attachments, and per-user / per-store / org-wide ICS feeds your clients can subscribe to from any calendar app.
- Organization view. A new “Enter organization” choice at sign-in lands you on a workspace-wide dashboard with sales by store, an open-pipeline grid, top clients across the org, and the next seven days of appointments. Org-mode Clients and Orders tabs render cross-store pivots so you can scan every store at once and click any row to drop into its store.
- Store lifecycle controls. Org owners and admins can archive a store from Settings → Store with a name-typed confirmation and a free-text reason. Archived stores stop counting against your plan’s store cap immediately. A 24-hour cooldown protects against accidental reactivation, and a 30-day permanent-deletion lock starts the moment a store is archived — with a warning email seven days before the lock fires so nothing disappears silently.
- Per-store email and SMS templates. Each store can now override the system templates for proposal-sent, invoice-issued, payment-received, fulfillment shipped / delivered / exception, and client-inbox replies — subject, body, from-address, reply-to, SMS body, send style. Defaults still apply when nothing is set. Locale-aware: every outgoing message respects the client’s preferred language.
- Cmd+K across Settings. Press Cmd+K (or Ctrl+K) anywhere in Settings to fuzzy-search across every tab, sub-tab, and field. Selecting a result deep-links straight to the relevant row and flashes it briefly so you don’t have to hunt for it.
- A deeper Settings. “Profile” now means your personal profile (name, login email, language); the old org-and-stores view moves to a renamed Account tab. API keys, Webhooks, Connectors, and Integrations collapse under one Developer parent. Per-store timezone lives on Settings → Store. Upgraded plans can finally add more stores from the store picker. An unsaved-changes guard stops accidental tab switches from dropping in-flight edits. The legal footer no longer floats over content — it sits at the bottom of the page where it belongs.
- Vendor portal polish. The Top up button on an ad campaign now lets you pick the amount (presets at $25 / $50 / $100 / $250 / $500 / $1,000 or a custom dollar input). The “/signup” link from the marketing site reaches the central auth flow instead of a 404. The browser-tab title no longer reads “Claim your vendor account” forever after you sign in. A multi-owner ad-account bug that turned every Top up click into a server error is fixed.
- Admin and back-office polish. A new “Upload price sheet” button lives at the top of the admin imports list so you no longer have to bounce through a vendor detail page. While AI extraction runs, a live activity feed narrates every stage of the work (“downloading file”, “parsing four sheets”, “asking the model”, “matching thirty-eight SKUs”, “done”). The Fulfillment Settings hub toggle actually persists now — previously it looked frozen.
{{EFFECTIVE_DATE}} — v0.1
Initial launch
- Marketing site at peptideclients.com.
- Operator app at app.peptideclients.com. Sign-up, organization + store onboarding, Clients module (CRM).
- Docs & legal site at docs.peptideclients.com (this one).
- Strict tenant isolation verified by a cross-org test suite that runs on every code change.
- Audit log on every operational change in the app.
- Modular architecture — each feature is its own database schema, its own code package, its own dashboard widget. Adding the next module (Orders, Inventory, Shipping, Messaging, Ledger) is mechanical.
Want to know when we ship something new? Subscribe at {{CONTACT_EMAIL}} and we’ll add you to the list. Roughly one email a month, never more.