Product Overview

Everything you need to launch high-converting stores

A full-stack checkout and commerce kit: production-ready storefront, cart permalink flows, sticky-powered payments & CRM, and an admin console your operators will love.

Next.js 15 + App RouterTypeScript everywhereReact Query data layerDrizzle & sticky-friendly schemaSEO-friendly marketing stack

Secure by design

Built-in validation, secure sticky.io integration, and permissioned admin flows to keep sensitive paths locked down.

Launch fast

Opinionated defaults for pricing, variants, shipping, and pixels so teams can ship in days.

Plug & Launch

Powered by sticky.io for payments. Bring your own UI or use our kit—the robust backend handles the rest flawlessly.

Product pillars

Opinionated where it matters, flexible everywhere else. Each pillar is ready for real revenue.

Modern storefront UI showing product cards, filters, and prominent add-to-cart buttons.

Storefront & Shop

Elegant, conversion-ready storefront pages with polished product grids, filters, and instant add-to-cart.

Checkout page pre-populated via permalink with items and quantities ready for order.

Cart Permalink

Shareable cart links that pre-fill items and variants, perfect for campaigns and personalized offers.

Customer dashboard showing latest purchase, recent orders, and membership status.

User Dashboard

A clean customer portal with orders, memberships, and account details in one view.

Admin dashboard with analytics cards, product table, and order management widgets.

Admin Console

Operational cockpit for products, orders, pixels, shippings, users, and plugins — all in one place.

Architecture

Robust backend with a plug-and-play UI layer

A typed data model (Drizzle) powers products, variants, orders, pixels, shippings, and users. The frontend ships with React Query, schema-driven forms, and reusable blocks for checkout, upsells, and order success. Swap data sources without rewriting the experience.

Payments & CRM
Sticky-style flows
Cart permalinks
Shareable deep links
Admin surface
Products, orders, pixels
Launch time
Hours, not weeks
Admin & Ops Snapshot
Products & VariantsInventory-ready
Orders & FulfillmentShippable-aware
Pixels & PluginsPlug & play
Billing TermsTrials & rebills
Image placeholder — Admin dashboard overview with KPIs, orders, and catalog controls.

How to use this kit

Ship funnels fast with permalinks, plugins, and drop-in UI blocks.

Products & Shop

Display and filter your catalog

A complete solution for displaying products with built-in filtering, sorting, and detailed product views. Powered by React Query and URL state.

1Key files & locations

Product components are organized to separate UI from logic.

Shop
apps/www/src/components/shop

Main shop grid and filtering components.

shop-products.tsx — Main grid component
use-shop-products.ts — Hook for filtering & pagination
Product
apps/www/src/components/products

Individual product page components.

product-page.tsx — Product details layout
use-product-page.ts — Hook for variant logic

2Shop component

The ShopProducts component handles the entire product grid logic:

import
{ ShopProducts } from "@/components/shop/shop-products"

export default function Page() {
return (
<ShopProducts />
)
}

3URL-based filtering

State is managed via URL parameters, making results shareable and SEO-friendly.

ParameterDescriptionExample
categoryIdFilter by category ID?categoryId=cat_123
minPriceMinimum price filter?minPrice=100
sortBySort field (price/createdAt)?sortBy=price

4Product details

Dynamic Gallery

Automatically filters images based on the selected variant color or style.

Variant Logic

Smart selection that pre-selects valid combinations and handles out-of-stock states.

5Customization strategies

Hooks
Use the hooks directly

Import useShopProducts or useProductPage to build completely custom UIs while keeping all the logic, filtering, and state management.

Components
Extend existing components

The ShopProducts and ProductPage components are designed to be copied and modified to fit your brand's specific needs.

Cart Permalinks

Pre-fill carts with shareable links

Generate URLs that automatically add products to the cart and redirect to checkout. Perfect for email campaigns, social ads, or influencer promotions.

1Link format

All cart permalinks follow this pattern:

https://yoursite.com/processing/[items]

2Usage examples

Basic
Single product, default quantity

Add one unit of a product without variants.

https://yoursite.com/processing/PROD-123:1
Replace PROD-123 with your product's stickyProductId.
Quantity
Product with custom quantity

Pre-set quantity for bulk offers or kits.

https://yoursite.com/processing/PROD-123:3
Change the quantity to any positive integer (e.g., 2, 5, 10).
Variant
Product with specific variant

Target a specific size, color, or option.

https://yoursite.com/processing/PROD-123:VAR-456:2
Include stickyVariantId after the product ID. If omitted, the first variant is selected.
Bundle
Multiple products at once

Add several items to the cart in one link.

https://yoursite.com/processing/PROD-123:1,PROD-789:VAR-999:2
Separate multiple items with a comma (,). Mix and match products with/without variants.

3Quick reference

PatternDescription
productId:qtyAdd product with specified quantity
productId:variantId:qtyAdd specific product variant
item1,item2,item3Add multiple items (comma-separated)
Plugins

Extend functionality with plugins

Add tracking pixels, CRM integrations, payment processors, and analytics without touching core code. Plugins hook into lifecycle events and run automatically.

1Installation & management

Plugins are managed through the Admin console. You can browse, install, configure, and enable them.

Browse
Find available plugins

Navigate to Admin → Plugins → Available to see all plugins from the plugin server.

Use the search bar to filter by name, category, or functionality.
Browse by pagination (12 plugins per page).
Install
Add a plugin to your system

Click the plugin card, review details, then click "Install" to add it to your workspace.

Plugins are pulled from the plugin server or uploaded manually.
After installation, configure plugin settings (API keys, tracking IDs, etc.).
Enable
Activate the plugin

Toggle the plugin to "Enabled" in the Installed tab to start firing hooks.

Only enabled plugins execute client-side and server-side hooks.

2Built-in lifecycle hooks

Client plugins auto-load via PixelProvider and fire on key events. No manual triggering needed.

HookTrigger
pageViewEvery route change / page load
onLoadCheckoutPageUser lands on checkout page
beforeAddToCartBefore item added to cart
afterAddToCartAfter item added to cart
beforeRemoveFromCartBefore item removed from cart
afterRemoveFromCartAfter item removed from cart
afterCheckoutPayloadCreatedAfter checkout form submitted

3Custom event hooks

For custom events, manually call executeClientHook to run all enabled plugins that listen for your custom hook.

executeClientHook runs client-side code from all enabled plugins, then posts to /hooks for server logging.
Customize UI

Build custom checkout experiences

The checkout UI is fully customizable. Edit components, swap layouts, or build entirely new flows while keeping the same data layer and logic.

1Key files & locations

Checkout components are organized in a clear structure. Here's where to find them.

Core
apps/www/src/components/globals/forms/checkout

Main checkout form components and logic.

checkout-form.tsx — Primary checkout UI
checkout-form-alt.tsx — Alternative theme
use-checkout.ts — Hook with all logic & state
Page
apps/www/src/app/(marketing)/checkout

Marketing checkout page route.

This is the entry point—imports and renders CheckoutForm or your custom variant.

2The useCheckout hook

All form state, validation, pricing, and handlers are centralized in useCheckout. Import and use it in any custom component.

The hook returns everything you need: form state, cart data, pricing, countries/states, and submission handlers.

3Customization strategies

Light
Tweak existing components

Edit checkout-form.tsx to adjust styling, add fields, or reorder sections.

Medium
Clone & modify a variant

Duplicate checkout-form-alt.tsx, rename it, and customize the layout/theme while keeping the same hook.

Full
Build from scratch

Create a new component, import useCheckout, and design your own checkout flow with custom UI/UX.