CultureHaus
Pending kickoffCultureHaus·Issued 2026-11-09·Team: External backend team
Project overview
CultureHaus is a South African student marketplace connecting brands and suppliers with university students. The platform lets students discover deals, products, and campaigns targeted at the student market. The site is migrating from a Shopify-hosted storefront to a custom headless Next.js frontend, keeping Shopify as the commerce backend for products, cart, and checkout. A lightweight custom backend (Cloudflare Workers and D1) handles student-specific data: profiles, deal redemption tracking, campaign participation, and notifications.
Tech stack
Git access
Send your GitHub username to [email protected] to be added as a collaborator. Use feature branches and pull requests only. Do not push directly to main.
Scope of work
- Cloudflare Workers API — edge API handling student auth (JWT + Shopify Customer Accounts), deal redemption, campaign participation, and notification dispatch
- D1 schema and migrations — SQLite schema for student profiles, quiz history, deal redemption records, campaign participation
- Shopify Metaobject integration — query Storefront API for deals, events, and campaign content defined as Metaobjects
- Webhook handlers — receive and process Shopify webhooks for order, customer, and product events with signature validation
- Environment variable documentation — ensure .env.example is complete before engagement ends
- Changes to the Next.js frontend UI or component library
- Changes to the Shopify store (products, collections, theme, apps)
- DNS, domain, or hosting configuration
- Production deployment (studio handles this)
- Brevo campaign management or list management
- Live payment processing (sandbox only during this engagement)
Definition of done
- All Workers routes deployed to staging and returning correct responses
- D1 schema is migrated and all tables are documented
- Shopify Metaobject queries return live data in staging
- Webhook handlers validate signatures and process events correctly
- .env.example is complete with every required variable
- A pull request is open against main with all work reviewed and passing
Staging vs production rules
- All development and testing happens in the staging environment or on localhost
- No production data is used in staging or local environments
- Do not deploy to production — the studio handles all production deployments
- Do not make changes to DNS, domain, or billing accounts
- Do not add or modify Cloudflare account-level settings outside the scope of work
- Do not create new Shopify apps, OAuth connections, or third-party integrations without written approval
- Do not add collaborators to the GitHub repository or Cloudflare account
Architecture
Browser (student)
|
Next.js 15 frontend (Cloudflare Pages)
| |
| Shopify Storefront API
| (products, cart, checkout)
|
Cloudflare Workers API ← this engagement
| | |
D1 R2 Brevo SMTP
(student data) (assets) (email)
|
Shopify Customer Accounts API (auth)Push all work to the repository and open a pull request. Confirm to the studio in writing that all work is submitted. Delete your local .env.local file. The studio will revoke all access within 2 business days of final sign-off.