rspace-online/backlog/tasks/task-123 - rSwag-Feature-Pa...

4.1 KiB

id title status assignee created_date updated_date labels dependencies references priority
TASK-123 rSwag Feature Parity — Full 8-Phase Implementation Done
2026-03-21 06:21 2026-03-21 06:21
rswag
feature-parity
pod
dithering
ai-generation
modules/rswag/mod.ts
modules/rswag/pod/printful.ts
modules/rswag/pod/prodigi.ts
modules/rswag/dither.ts
modules/rswag/mockup.ts
modules/rswag/fulfillment.ts
modules/rswag/components/folk-swag-designer.ts
modules/rswag/components/folk-revenue-sankey.ts
high

Description

Brought the rspace.online/rswag module to feature parity with the standalone rswag.online (Next.js + FastAPI + PostgreSQL) application. rSwag now owns design tools, product catalog, mockups, POD clients, dithering, and AI generation. rCart owns cart/checkout/payments/order lifecycle. A bridge connects them via catalog ingest and fulfillment routing.

What was built

Phase 1: POD Provider Clients

  • modules/rswag/pod/types.ts — shared POD TypeScript interfaces
  • modules/rswag/pod/printful.ts — Printful v2 API client (catalog variants, mockup generation, order creation, sandbox mode)
  • modules/rswag/pod/prodigi.ts — Prodigi v4 API client (orders, quotes, status)

Phase 2: Enhanced Image Processing

  • modules/rswag/dither.ts — 11 dithering algorithms (8 error diffusion + 3 ordered), median-cut quantization, screen-print color separations
  • modules/rswag/mockup.ts — Sharp-based mockup compositor with SVG templates + Printful API fallback

Phase 3: AI Design Generation

  • Gemini-powered design generation (gemini-2.5-flash-image)
  • User artwork upload (PNG/JPEG/WebP, min 500x500, max 10MB)
  • Design lifecycle: draft → active → paused → removed

Phase 4: Product Catalog & Mockup Routes

  • ~15 new API routes for designs, mockups, dithering, storefront, fulfillment
  • Filesystem-based design storage with in-memory index
  • 24hr cache for images, LRU caches for dithered/mockup results

Phase 5: Fulfillment Bridge

  • modules/rswag/fulfillment.ts — order routing to Printful/Prodigi
  • Webhook parsers for shipment tracking updates
  • Tracking info lookup

Phase 6: Frontend Design Tools UI

  • 4-tab layout in folk-swag-designer (Browse, Create, HitherDither, Orders)
  • Browse: product grid with search/filter/add-to-cart
  • Create: AI Generate, Upload, My Designs sub-modes
  • HitherDither: algorithm picker, color count, live preview, screen-print separations
  • Orders: fulfillment status and tracking

Phase 7: Revenue Sankey & Enhanced Landing

  • folk-revenue-sankey web component with animated SVG flow + draggable sliders
  • Updated landing page with Sankey embed and new feature descriptions

Phase 8: Admin & Polish

  • Admin routes: design sync, product override, analytics summary
  • Schema migration v1→v2 for existing designs
  • Extended products.ts with POD SKUs and StorefrontProduct type

Acceptance Criteria

  • #1 POD clients (Printful v2, Prodigi v4) implemented with sandbox mode
  • #2 11 dithering algorithms with screen-print color separations
  • #3 AI design generation via Gemini + user artwork upload
  • #4 ~15 new API routes for designs, mockups, dithering, storefront, fulfillment
  • #5 Fulfillment bridge routes orders to correct POD provider
  • #6 4-tab frontend UI (Browse, Create, HitherDither, Orders)
  • #7 Interactive revenue Sankey on landing page
  • #8 TypeScript compiles cleanly (zero errors)

Final Summary

All 8 phases implemented in a single session. Created 7 new files (pod/types.ts, pod/printful.ts, pod/prodigi.ts, dither.ts, mockup.ts, fulfillment.ts, folk-revenue-sankey.ts) and modified 6 existing files (schemas.ts, products.ts, mod.ts, folk-swag-designer.ts, landing.ts, swag.css). TypeScript compiles with zero errors. Ported Python reference code (printful_client.py, prodigi_client.py, dither_service.py, design_generator.py) to TypeScript.