New
- Return URL support – Added configurable return URLs across storefront API, admin API, and the SDK so partners can guide guests to custom destinations after checkout.
- Cart metadata hooks – Extended cart payloads so loyalty and analytics tools can append metadata without breaking totals.
Improved
- Mintlify parity – Regenerated OpenAPI artifacts directly from Express routes and rewrote MDX guides so docs mirror production behaviour.
- SDK alignment – Synced storefront SDK method names and request signatures with the latest Swagger definitions.
Fixed
- Spec drift – Resolved schema mismatches between Swagger and Mintlify by pointing both builds at the same generated artifact.
- Checkout redirects – Patched edge cases where return URLs were dropped for certain ordering sessions.
New
- Orders hub – Introduced a token-protected orders portal with session creation, revocation, and analytics wiring for operations teams.
- Embeddable pricing – Shipped a drop-in pricing table, enterprise entity management, and sales-friendly landing pages.
- Responsive UI primitives – Published responsive dialog and sheet components in the shared UI package for both dashboard and storefront use.
Improved
- Tailwind v4 + shadcn – Migrated every app to the Tailwind v4 pipeline, standardized tokens, and removed duplicated component code.
- Onboarding guidance – Added unsaved-change bars, fulfilment method milestones, and confetti banners so merchants know when setup is complete.
Fixed
- Checkout ergonomics – Reworked the cart sidebar, order time picker, and thank-you flow to eliminate crashy states.
- Error consistency – Normalized API error responses and logging across admin, storefront, and order services.
New
- Location wizard – Added account-setup steps with map pickers, contact info endpoints, and multi-location management inside the dashboard.
- Order manager API – Expanded admin endpoints for active, scheduled, and historical orders with dashboards and detail drawers.
- Crave Admin shell – Launched the standalone site for enterprise management alongside embeddable pricing and enterprise profiles.
Improved
- Discount workflow – Polished validation, loading states, and edit/delete flows for promotions.
- Ordering session flow – Hardened session APIs, menu bundles, and redirect handling so storefronts stay in sync.
Fixed
- Environment + slug bugs – Resolved slug mismatches, missing env vars, and redirect loops introduced during the restructure.
- Checkout error states – Tightened error messaging for bundle fetches, checkout validation, and order receipts.
New
- Store settings redesign – Rolled out cohesive layouts for store info, fulfilment, holiday hours, tips, and notifications with mobile-friendly navigation.
- Developer workspace – Introduced a Resend-inspired developer page with code previews, dark mode, and API contact flows.
- Onboarding wizard – Delivered a multi-step welcome flow, sample dashboards, and progress trackers for new organizations.
Improved
- Multi-location support – Upgraded navigation, location selectors, and analytics to handle complex brands.
- Subscription management – Updated pricing tiers, added cancellation banners, and clarified plan benefits in product copy.
Fixed
- Stripe + auth flows – Hardened payment intent handling, sign-up flows, and logout paths across admin and storefront apps.
- Dark mode polish – Cleaned up contrast issues across headers, buttons, and schedule components.
New
- Menu templates & defaults – Seeded menu, category, and modifier forms with templates, default schedules, and currency hints to shorten setup.
- Stytch metadata sync – Synced organization metadata, subscription state, and location identifiers directly with Stytch.
Improved
- Error boundary middleware – Wrapped every admin route with a shared
withErrorHandlerhelper to centralize logging and responses. - Store settings – Upgraded tipping logic, address flows, and onboarding redirects to guide merchants to completion.
Fixed
- Validation gaps – Smoothed subscription persistence, rehydrated location IDs, and tightened toast feedback during onboarding.
- Access controls – Restricted dashboard-only routes and enforced metadata checks before exposing sensitive endpoints.
New
- Comprehensive Swagger docs – Authored storefront, admin, menu, analytics, discounts, and team endpoints with generated JSON sources.
- Shared packages – Promoted env, db, logger, and utils into reusable workspace modules with type-safe exports.
Improved
- Next.js 15 + modules – Upgraded partner and storefront apps to Next.js 15, reorganized imports, and aligned modules with ESM standards.
- Repository hygiene – Removed legacy guest ordering code, normalized naming, and cleaned duplicate utilities.
Fixed
- Stripe + webhook logging – Standardized logging hooks and resolved Stripe route regressions uncovered during doc generation.
- Storybook coverage – Patched component loaders and accessibility props flagged while documenting new flows.
New
- Modular apps – Split the monorepo into dedicated Express admin/storefront APIs and Next.js ordering/partner surfaces using the latest Turbo scaffolding.
- Admin console prototype – Bootstrapped the Crave Admin app with data tables, navigation, and shared UI packages.
- UI kit publishing – Added shadcn-ready components plus shared ESLint and TypeScript configs for every project.
Improved
- Type safety – Centralized types, resolved module resolution pitfalls, and aligned packages on strict TypeScript settings.
- Build tooling – Added pnpm/Turbo scripts to install dependencies, lint, and test reliably across workspaces.
Fixed
- Legacy imports – Cleared unused hooks, duplicate components, and inconsistent paths carried over from earlier repos.
- Order endpoints – Stabilized active/history/scheduled order routes ahead of the new admin console.
New
- Customer card metadata – Aligned stored card records with customer IDs so repeat guests see the right payment options.
- Form primitives – Introduced reusable checkbox and wrapper components ahead of the full shadcn migration.
Improved
- Checkout layout – Tightened page wrappers, skeleton states, and CTA spacing to reduce friction on mobile.
- Cart experience – Smoothed quantity controls and tip defaults while preparing the cart sidebar revamp.
Fixed
- Payment glitches – Resolved regressions around card selection, validation, and optimistic UI while orders are syncing.
- Styling drift – Squashed stray pointer-events, HTML entities, and prop casing issues that surfaced after the holiday builds.
New
- Transactional messaging – Wired SendGrid email and Twilio SMS sends so guests and teams receive real-time order confirmations.
- Store preview mockup – Embedded an iPhone live preview within store settings so teams see branding updates instantly.
- Menu manager shortcuts – Enabled expanding categories by default and adding items/categories directly from the overview screen.
Improved
- Orders workspace – Added filtered views, range calendars, and status chips to streamline fulfillment workflows.
- Dashboard navigation – Introduced dynamic store-settings navigation, refreshed onboarding copy, and persisted trial banners.
Fixed
- Checkout polish – Tightened tip defaults, modifier validation, payment button behaviour, and cart totals after shadcn component migration.
- Menu reliability – Resolved nested button hydration errors, null checks, and pointer-event regressions spotted during QA.
New
- Order operations workspace – Added filtered order lists, export tooling, and richer status insights so operators can reconcile sales without leaving the dashboard.
- Team invitations & roles – Introduced invite flows with pending/expired states, location scoping, and inline status badges for a clearer view of collaborator access.
- API key lifecycle controls – Surfaced key creation and deletion inside the developer settings so teams can rotate credentials without engineering help.
Improved
- Onboarding completion flow – Refined step guidance, loaders, and success messaging to celebrate completion and nudge merchants toward key setup actions.
- Location metadata – Polished slugs, SEO metadata, and storefront links for cleaner sharing and cross-linking across partner surfaces.
Fixed
- Authentication cookies – Hardened Stytch cookie handling to resolve cross-domain login edge cases and flaky session persistence.
- Address capture – Patched location onboarding to guard against partially saved address steps and duplicate business details.
New
- Developer center – Published an in-app developers page with API key generation, waiter tip configuration, and quick links back to docs.
- Discount builder – Delivered a guided form for creating percentage and amount-off promos with usage limits, schedules, and summary previews.
- Store settings depth – Added waiter-tip policies, tax rate cards, and granular fulfillment scheduling to cover operational edge cases.
Improved
- Onboarding progression – Synced the universal task checklist with confetti states, loader components, and error handling for a smoother start.
- Performance polish – Introduced shimmer loaders, refined layout spacing, and reorganized folders to keep the dashboard responsive at scale.
Fixed
- Endpoint reliability – Tightened API contracts, types, and environment configuration so admin traffic stops tripping validation errors in production.
- Discount validation – Addressed edge cases around duplicate codes, date ranges, and negative values before launch.
New
- Guided onboarding – Rolled out progress badges, celebratory confetti, and contextual upsells so merchants know exactly what unlocks go-live.
- Menu studio – Enabled create/edit/delete flows for menus, categories, products, and modifier groups directly inside the dashboard.
- Team management – Connected invite, delete, and list endpoints so admins can manage collaborators without support tickets.
Improved
- Fulfillment settings – Added tabbed forms, schedule pickers, and defaults across delivery, pickup, and room service to cut configuration time.
- Store hours tooling – Synced location hours with validation, auto-fill defaults, and address autocomplete to reduce onboarding friction.
Fixed
- Authentication & routing – Resolved stale token handling, ensured location fetches respect organization context, and removed unused codepaths.
New
- Stripe subscriptions – Wired subscription plans, free trial entry points, and Connect onboarding so teams can self-serve upgrades.
- Discount workflows – Completed the promotion builder with date/time scheduling, code generation, and React Hook Form summaries.
Improved
- Start free trial UX – Refined copy, country defaults, and toast feedback to boost conversion through the billing funnel.
- Connect experiences – Iterated on Stripe Connect screens and reusable dropdowns for a consistent payments setup journey.
Fixed
- Location data hydration – Hardened location loaders and hook defaults so dashboards stop flashing empty states on refresh.
- Package hygiene – Raised dependency baselines to clear high-severity security advisories.
New
- Stytch SSO – Replaced bespoke auth with Stytch-powered signup, login, and organization switching, unlocking OAuth and email-first flows.
- Subscription plans hub – Released subscription management with plan selection, add-ons, and plan enforcement inside the dashboard.
- Analytics foundation – Delivered merchant analytics endpoints, export tooling, and dashboard charts for real-time performance tracking.
Improved
- Scheduling UI – Rebuilt fulfillment scheduling with reusable components, validation, and error prompts that mirror the live storefront logic.
- Order operations – Added order action toasts, filtered lists, and skeleton states to help managers triage tickets faster.
Fixed
- Security posture – Cleared outstanding vulnerability alerts by bumping packages and removing unused dependencies.
- Integration wiring – Consolidated scattered fetchers and unused endpoints to keep telemetry dashboards accurate.
New
- OTP flows – Added resend timers, auto-submit, and inline error toasts for a seamless verification experience on checkout.
- Saved payment controls – Enabled guests to remove saved cards and clear cart state once an order is complete.
Improved
- Loading states – Rolled out skeletons, loaders, and disabled states across homepage, cart, and checkout to improve perceived performance.
- Error messaging – Surfaced precise validation feedback for modifiers, order time selectors, and fulfilment switching.
Fixed
- UI alignment – Patched navbar spacing, modal heights, and image ratios so the storefront feels polished on every device.
- Cart consistency – Squashed duplicate items and race conditions introduced by rapid add/remove actions.
New
- Schedule delivery skeletons – Added skeleton states, map previews, and order-time selectors that respect location availability.
- Complementary cart – Recommended add-on items with dedicated sliders and API-backed data.
- Room service fulfillment – Brought table-side fulfilment parity with delivery and pickup, including modal flows and validations.
Improved
- Cart logic – Refactored prepare-cart flows, ensured location IDs propagate, and tightened revalidation.
- Fulfillment designs – Unified styling and responsiveness for fulfilment tabs, modals, and empty states.
Fixed
- Add to cart edge cases – Addressed rounding, skeleton flickers, and missing imagery in popular-product sliders.
- Type hygiene – Cleaned up lingering TypeScript errors so builds stay green.
New
- Menu editor – Added data tables, inline dialogs, and bulk actions for menus, categories, products, and modifiers.
- Operational pages – Launched dedicated views for discounts, statements, teams, integrations, and account settings.
- Payments setup – Integrated Stripe Setup Intents, OTP flows, and bank account onboarding for merchants.
Improved
- Component library – Expanded Tremor-based components, wrappers, and responsive layouts used across onboarding.
- Cart & checkout UX – Finished checkout flows with skeletons, promo code modals, and cart formatting parity.
Fixed
- Product dialogs – Resolved duplicate renders, scroll traps, and hardcoded imagery that crept into the early rebuild.
- Type coverage – Swept through new packages to align on shared types and eliminate implicit any usage.
New
- Redux Toolkit – Centralized storefront state, unlocking persisted carts, fulfilment toggles, and shared selectors.
- Fulfilment APIs – Completed place-order, delivery timing, and gratuity endpoints with client integrations.
- Location info surface – Exposed location details, tips, and announcements directly in the partner UI.
Improved
- Navigation scaffolding – Tightened sticky tab borders, section scrolling, and category selection experiences.
- Design tokens – Extended Tailwind palette, typography, and shared buttons to keep storefront branding consistent.
Fixed
- Cart formatting – Normalized currency output and ensured duplicate add-to-cart mutations merge correctly.
- Legacy packages – Removed unused dependencies before shipping to partners.
New
- Data fetcher utilities – Added SWR fetchers, shared constants, and API connectors for homepage and menu data.
- Homepage integrations – Wired the Next.js storefront to live product, timing, and location endpoints.
Improved
- Design system – Continued Tailwind UI build-out with iconography, modals, and slider polish.
- Notifications – Adopted react-toast notifications for system feedback.
Fixed
- Code hygiene – Deleted legacy scaffolding and unused exports left over from the first prototype.
- API casing – Corrected header names and auth keys to match production conventions.
New
- API key management – Implemented key generation, rotation, and authorization middleware for partner integrations.
- Order manager endpoints – Delivered status, fulfilment, and export routes for merchants to drive operations from the API.
Improved
- Location access – Linked API keys to location scoping and added guardrails for accessing multi-location menus.
- Documentation tooling – Updated error naming, response shapes, and OpenAPI alignment across new endpoints.
Fixed
- Endpoint inconsistencies – Normalized casing (e.g.,
X-API-Key) and fixed authentication leaks discovered during QA.
New
- Onboarding wizard – Launched multi-step onboarding with business, tax, schedule, and payments configuration.
- Customer auth – Introduced OTP verification, login/logout flows, and customer session middleware.
- Merchant subscription – Added plan subscription, plan cancellation guardrails, and Stripe setup intents.
Improved
- Storybook coverage – Brought all major dashboard and storefront components into Storybook for team-wide reviews.
- UX consistency – Harmonized typography, spacing, and color tokens across shared packages.
Fixed
- Validation gaps – Patched schema validation for forms, ensuring bad inputs are caught client and server side.
- Session handling – Closed logout edge cases and stale cookie states in the customer APIs.
New
- Atoms & molecules – Shipped buttons, tabs, list tiles, checkout cards, toggles, modifiers, and more as reusable components.
- Storybook integration – Documented the new component library with stories for every state.
Improved
- Design tokens – Expanded custom colors, font sizes, and line heights to match brand guidelines.
- Input ergonomics – Refined form components, radio buttons, and selectors based on early feedback.
Fixed
- Naming consistency – Renamed components and files to align with PascalCase/Kebab-case conventions across the monorepo.
- Lint noise – Cleaned up duplicate exports and lint warnings caused by rapid scaffolding.
New
- Next.js partner app – Bootstrapped the partner storefront with routing, layout primitives, and base styling.
- UI primitives – Added dialog, button, store cover, and item card components to accelerate vertical slice builds.
Improved
- Font & theming – Applied the Crave brand typography stack and color palette across the new app.
Fixed
- Component duplication – De-duped early experiments while consolidating on Tremor and internal UI kits.
New
- Cart lifecycle – Implemented create, update, remove, and delete cart endpoints with quantity validation.
- Fulfilment prep – Added cart item routes, gratuity calculations, and groundwork for order placement.
Improved
- Rate limiting – Hardened Express middleware to protect storefront APIs from abusive traffic.
- Code style – Adopted Prettier and repository-wide formatting for the service codebase.
Fixed
- Naming & structure – Normalized file names and tightened up utilities to keep endpoints discoverable.
New
- Express storefront – Shipped the initial Express service with database connectivity, store info, and menu/category endpoints.
- Time utilities – Added shared utilities for operating hours, laying the groundwork for scheduling logic.
Improved
- Database wiring – Iterated on DB connections and data-reading layers to stabilize the new stack.
Fixed
- Deployment scaffolding – Cleaned up early config so the v2 API could run locally and in staging.
New
- White-label iOS pipeline – Enabled merchants to generate branded mobile apps straight from the dashboard with live previews.
- Meta Pixel integration – Brought first-party attribution to both the dashboard and guest storefront for unified campaign tracking.
- Subscription safeguards – Automated Stripe billing with past-due cancellations, trial countdowns, and customer-initiated plan management.
Improved
- Onboarding journey – Smoothed bank setup, delivery toggles, and setup guides so teams can resume exactly where they left off.
- Store settings – Grouped settings by theme, refreshed analytics, and polished navigation for faster daily workflows.
Fixed
- Mobile responsiveness – Tightened guest storefront spacing and padding so menus read cleanly on every device.
- QR exports – Resolved asset generation issues for print collateral and digital signage.
New
- Menu editor revamp – Delivered click-to-edit menus, real-time hours, and search-driven category expansion for faster merchandising.
- Zendesk + Google sign-in – Embedded support workflows and SSO so operators stay productive without tab sprawl.
- Statements & QR tooling – Generated monthly statements and on-demand QR codes for marketing placements.
Improved
- Onboarding controls – Added fulfilment-specific scheduling, tipping policies, and order-receiving preferences across SMS, email, and tablet.
- Guest ordering 2.0 – Honoured location time zones, deep-linked table-side orders, and refined tip behaviour across channels.
Fixed
- DoorDash handoff – Closed the loop on Drive delivery edge cases discovered during pilot launches.
- Global domain routing – Hardened custom domain flows while we wrapped up Apple Pay validation.
New
- Search-first storefront – Launched item and modifier search, popular product carousels, and multi-select modifiers.
- Merchant onboarding – Introduced the first merchant onboarding, settings, and QR generation flows for digital menus.
- PMS ordering – Enabled property management system ordering to serve hotel and resort partners.
Improved
- Design system – Swapped to the Lato typography stack, standardized imagery, and refined touch targets across mobile.
- Brand storytelling – Debuted the EMC brand page with refreshed photography and Google Maps distance calculations.
Fixed
- Tip accuracy – Corrected gratuity calculations for multi-location partners.
- Modal UX – Eliminated scrolling bugs and duplicate popular items during fast cart edits.
Need the original CraveUp v1 timeline? Check the archived 2021–2023 release notes in the internal handbook or reach out at hello@craveup.com.