Glenhouse Shop
Glenhouse Shop is a headless Shopify storefront for TikTok creators, built as a sister platform to Glenhouse Live. One main store carries every product, each creator gets a branded mini-store at their own address, and everything goes through one cart and Shopify's hosted checkout. Behind it, a commission ledger credits each sale to the creator whose product sold, and creators withdraw their earnings through Stripe Connect.
At a glance
- Type
- Platform
- Industry
- Creator commerce
- Built with
- Next.js 15, React 19, Tailwind CSS 4, Shopify Storefront API, Prisma on Postgres, Clerk, Stripe Connect, Resend
- Timeline
- June to October 2026, 3 commits
- Codebase
- About 8,000 lines of TypeScript, 19 pages, 10 API routes and 5 data models
One catalog, a store per creator
Each creator's store pulls its products from a Shopify collection or a creator tag and takes its accent color from that creator's entry in a registry, so adding a creator is one entry. Reserved paths such as search, cart and api can never be claimed as a creator's address.
Storefront API calls are cached and refreshed by tag when a Shopify webhook reports a product change. Until Shopify is connected, the whole site runs on a built-in sample catalog with a cookie-based cart, and the interface is the same in both modes.
Creators apply through a form validated with zod, and each application is emailed to the team through Resend.
The commission ledger
A Shopify orders webhook feeds the ledger. It is verified by HMAC or a URL secret, compared in constant time, and refused outright in production when no secret is configured.
Each line item is matched to its product and credited to the creator named in the product's creator field or tag. A processed-order record guards the whole order and every entry is unique by line, so Shopify's retries never credit a sale twice. Orders that come in from TikTok are recorded as their own channel.
Creators connect a Stripe Connect Express account, where Stripe collects their bank and tax details, and take what they are owed as a standard or an instant payout.
Highlights
- Idempotent order ingestion: one guard per order and one ledger entry per line item.
- Webhook verification that fails closed in production.
- A demo mode that runs the full storefront without Shopify credentials.
Let's talk.
Tell me what you're building. I read every message myself and usually reply within one business day.