fr3n: Print-on-Demand, Raffle Animations, and Miniapp Storage
by Oskar Freye
December shipped Printful integration for print-on-demand, animated raffle winner reveals with confetti, and a miniapp storage API.
December was the month of integrations. Three big ones shipped before the holidays.
Printful: Print-on-Demand for Creators
The full Printful integration went live on Christmas Day (yes, I deploy on holidays). Creators can now sell physical print-on-demand products — merch, posters, apparel — directly through fr3n.
The implementation spans the entire stack:
- Database: OAuth credentials, fulfillment settings, webhook secrets added to the integration model
- Core: Printful commerce bridge with OAuth 2.0 flow, REST API client, product sync service, and webhook handling
- API: OAuth install/callback routes, product listing and import endpoints, webhook receiver for fulfillment events
- Creator Hub: Connect flow, product browser, fulfillment settings with auto-fulfill and review mode toggles
- Fan App: Order tracking with a progress indicator (Ordered → Production → Shipped → Delivered), carrier info, and tracking links
The OAuth implementation had some fun surprises. Printful uses redirect_url not redirect_uri, returns expires_at instead of expires_in, and Public Apps don’t get stores_list scope. Documentation, meet reality.
Raffle Winner Reveals
Raffles got a major UX upgrade. The draw dialog now has phased states — input, drawing, revealing, complete — with sequential winner reveals showing profile pictures and canvas-confetti celebrations. It’s pure dopamine. Creators love it.
I also added auto-draw scheduling via EventBridge. Set a raffle end date, toggle auto-draw, and the system draws winners automatically when the time comes. The scheduler reschedules gracefully when end dates change.
Miniapp Storage API
The last big feature: a storage API for miniapps. Third-party apps embedded in fr3n can now store and retrieve data through a rate-limited API with JWT authentication. The miniapp bridge SDK got bulk operations in v2.1, the creator hub got a storage admin UI and dev workbench, and the fan app integrates a storage proxy in its sandbox.
MCP Server
A quieter but important addition: an MCP (Model Context Protocol) server with OAuth authentication. It uses our existing OpenAuth instead of a custom OAuth implementation. This opens the door for AI assistants to interact with fr3n data.
Version 0.11.22. The feature velocity this month was absurd.