Commit Graph

9 Commits

Author SHA1 Message Date
Jeff Emmett a152e77fed feat: dark mode, community revenue messaging, design catalog update
- Switch to dark theme by default (globals.css + default space.yaml)
- Rewrite landing page copy to emphasize community revenue streams
  - "Revenue for Your Community" hero
  - "Merch That Funds Your Mission" section with revenue breakdown
  - Revenue routing to rFunds/DAOs/treasuries
- Step 1: "Upload or Create a Design"
- Step 3: "Ship Locally — Worldwide" (local fulfillment, less carbon)
- Features: Revenue Streams, Local Fulfillment replace old cards
- All designs now show on default space (space: all)
- DefectFi design gets hoodie product variant
- Fix light-mode hardcoded colors for dark compatibility (red-50, green-600)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 21:38:56 -08:00
Jeff Emmett dd873b91b5 fix: reorder nav buttons to Design, Upload, Shop (highlighted)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 18:14:51 -08:00
Jeff Emmett 500f232a54 feat: redesign landing page to match rApp ecosystem pattern
Replaces simple hero+products page with full rApp-style landing:
- Ecosystem badge ("Part of the rSpace Ecosystem")
- Hero section with gradient text and dual CTA
- "How It Works" 3-step cards (Upload → Pick Products → Ship)
- 6-feature grid (AI Studio, Spaces, Zero Inventory, Mockups, Payments, Ecosystem)
- Featured products section (first 6, with "view all" link)
- CTA card with gradient background
- Sticky nav with logo badge, cart icon, and compact links
- r* ecosystem footer with links to all rApps

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 18:05:23 -08:00
Jeff Emmett 067e14ed0c feat: photorealistic mockups and professional storefront
Backend:
- Replace tiny placeholder templates with photorealistic 1024x1024 product
  photos (blank t-shirt, sticker with peeling corner, framed print)
- Rewrite Pillow compositing: screen blend for dark garments (design looks
  printed on fabric), direct paste for stickers/prints
- Add PRINTFUL_STORE_ID config + X-PF-Store-Id header to Printful client
  (unblocks existing account-level tokens)

Frontend:
- Product listing: rounded cards with shadows, category badges, hover
  animations, lazy loading, empty state
- Product detail: skeleton loading, mockup type switcher with loading
  indicator, raw design preview, inline price in Add to Cart button,
  shipping/quality info section
- Homepage: featured products now show mockups instead of raw designs,
  professional card layout matching products page
- Client-side mockups: updated coordinates for new templates, screen
  blend support via Canvas globalCompositeOperation

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 15:43:49 -08:00
Jeff Emmett acfe6cc350 feat: add Prodigi POD client + server-side product mockup previews
- Prodigi v4 API client for order fulfillment (create/get orders, quotes)
- Server-side mockup generation: Pillow composites designs onto product
  templates (shirt, sticker, print) at GET /api/designs/{slug}/mockup
- Product listing and detail pages now show designs ON products
- Mockup type switcher on product detail page (T-Shirt/Sticker/Art Print)
- Order service submits to Prodigi after successful payment
- POD webhook endpoint for fulfillment status updates

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 13:29:47 -07:00
Jeff Emmett b437709510 feat: replace Stripe with Mollie payments + TBFF revenue split to bonding curve
- Swap stripe SDK for mollie-api-python (Dutch data residency, PCI-DSS L1)
- Mollie redirect checkout flow: create payment → hosted page → webhook
- Rename DB columns: stripe_session_id → payment_id, add payment_provider
- Add revenue split: configurable fraction of each sale deposits to
  flow-service TBFF funnel → Transak on-ramp → bonding curve ($MYCO)
- Add checkout success page with cart cleanup
- Add backlog tasks for remaining work
- Remove @stripe/stripe-js from frontend, Stripe env vars from Docker

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 13:16:39 -07:00
Jeff Emmett 54ccbbc350 feat: add Upload Swag page with product mockup previews
Users can upload their own logo/design, see instant mockup previews on
shirts, stickers, and art prints via client-side Canvas compositing,
then save and activate the design to the store for ordering.

- Backend: POST /api/design/upload with file validation (type, size,
  dimensions), Pillow processing, saves to designs/uploads/
- Frontend: /upload page with drag-and-drop, real-time mockup gallery,
  activate/discard flow matching existing Design Swag pattern
- Fix: activate/delete endpoints now scan all category dirs instead of
  hardcoding stickers/
- Nav: "Upload Swag" button added to header and homepage CTAs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 12:38:58 -07:00
Jeff Emmett 7be99d37d0 feat: add multi-tenant spaces with Fungi Flows storefront
Add subdomain-based spaces system for branded storefronts. Each space
has its own theme, product catalog, and isolated cart via scoped
localStorage keys.

- Backend: SpaceService loads YAML configs, new /api/spaces endpoints,
  design filtering by space, CORS regex for *.rswag.online
- Frontend: Next.js middleware detects subdomain and sets space_id cookie,
  dynamic CSS variable injection for theming, space-aware API calls
- Spaces: _default (rSwag hub, cyan/orange) and fungiflows (gold/green/purple)
- Docker: Traefik wildcard HostRegexp for subdomain routing
- Designs: Placeholder Fungi Flows sticker and logo tee

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 12:20:19 -07:00
Jeff Emmett 72f072f233 Initial commit: rSwag - merch store for the rSpace ecosystem
Forked from mycopunk-swag-store and rebranded for rSpace:
- Next.js 15 + FastAPI + PostgreSQL + Stripe
- Printful + Prodigi POD integration
- AI design generation via Gemini API
- rSpace color scheme (cyan/orange) and branding
- In-repo designs directory (stickers, shirts, misc)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 03:24:22 -07:00