Inspiration

Reddit is at its best when it makes strangers feel less like strangers.

For twelve years, Redditgifts demonstrated how powerful that idea could become. People around the world exchanged thoughtful gifts—not for points, rankings or status, but because making something for another person felt meaningful.

Parcel transforms that spirit into a daily Reddit-native ritual. Instead of waiting for a large annual exchange, every player receives a small handmade surprise and an invitation to create something for the next person.

We wanted to build a game where generosity is not decoration around the gameplay. Generosity is the gameplay.

What it does

Parcel is a daily gift exchange between strangers, played entirely inside a Reddit post.

Every visit begins with a wrapped parcel waiting on the player’s doormat. Hold it to shake it, release to unwrap it, and discover the wrapping, note, doodle or trinket another redditor chose for you.

The daily loop has five parts:

  1. Open — Unwrap the parcel waiting on your doormat through a tactile animated reveal.
  2. React — Send the creator a private reaction and optional thank-you note.
  3. Gather — Enter a 24-second Phaser meadow and catch the day’s rotating materials.
  4. Craft — Choose a box, wrapping paper, ribbon, handmade postage seal, doodle, note and optional trinket.
  5. Send — Place the finished parcel into the community queue, where it lands on another redditor’s doormat.

Gather is directly connected to the gift economy. Chaining five catches activates a Postal Sweep, pulling nearby materials into the basket. The material a player catches can become the visible postage seal on the parcel they send. If a golden trinket is visibly caught, it is always awarded and added to the player’s permanent Shelf collection.

Parcel’s central hook is bidirectional anticipation. Players return to discover what arrived for them and to learn how their own parcel landed. Reactions appear on the sender’s porch and can trigger a single opt-in notification.

Long-term progression includes:

  • Daily material and featured-paper rotation
  • Sending streaks with permanent cosmetic unlocks
  • Collectible trinkets in three rarity tiers
  • Direct “send one back” pen-pal chains
  • A Pen Pal achievement and subreddit flair
  • Community-wide parcel milestones
  • Synchronized Street Festival days
  • Scheduled daily community posts
  • A first-session bonus delivery that demonstrates the complete loop immediately

Favorite openings can be separately published to the Gratitude Wall and mirrored into the Reddit discussion. Sharing is private by default, requires the original sender’s consent, can be removed by either participant and can be reported by the community.

How we built it

Parcel is built with Devvit Web and runs as an interactive Reddit post.

The client uses React 19 and TypeScript. It has two entry points: an immediate lightweight doormat experience for the Reddit feed and the complete application for opening, gathering, crafting, sharing and progression.

The Gather minigame is powered by Phaser 4 and loaded only when the player enters the meadow. Its visuals are procedurally generated rather than image-based. The scene includes six material silhouettes, hand-tuned drift and wind movement, particles, synthesized sound effects, a responsive basket and a spatial combo system.

Catalog-driven colors and handmade silhouettes follow each material from the meadow to the header, parcel stamp, craft table and Gratitude Wall, giving Parcel a consistent identity without relying on platform-themed artwork.

Every fifth consecutive catch triggers Postal Sweep. Instead of merely increasing a score, the combo changes the physical playfield by pulling nearby objects into the basket. Daily material rotation also changes the objects and visual identity of the meadow, and the selected catch becomes part of the parcel sent to another player.

A Hono server coordinates authentication, gifting, moderation and progression. Devvit Redis stores player profiles, parcel queues, daily Gather results, trinket collections, reactions, Wall entries, pen-pal routing and shared community progression.

The matching system prioritizes direct pen-pal mail, then player-created stranger mail, then clearly identified Post Office parcels. Devvit Scheduler publishes daily community posts and resolves stale mail, while Devvit Notifications provides one deliberately focused opt-in notification when a parcel receives a reaction.

Player doodles are 32×32 fixed-palette images encoded using a custom run-length format, keeping even complex drawings Redis-friendly.

The production build is protected by TypeScript validation, ESLint and 64 automated tests, including a multi-user, multi-day end-to-end suite running against an in-memory implementation of the Devvit platform.

Challenges we ran into

Building a truthful exchange with unpredictable player supply

A social exchange has two difficult states: too few parcels and too many parcels.

When the player queue is empty, clearly identified Post Office parcels ensure that no new player encounters an empty doormat. When a player-created parcel remains unclaimed for 48 hours, the Post Office opens it and leaves an explicitly labeled reaction so the sender’s emotional loop still closes.

We deliberately avoided pretending that simulated activity came from real players. Every Post Office interaction is identified honestly.

When the queue grows, surplus delivery is capped so extra parcels can move without destroying the daily rhythm.

Making Phaser part of the product

Gather initially risked feeling like a disconnected minigame. We redesigned it so the daily materials affect the meadow, the player’s actions affect the scene through Postal Sweep, and the gathered result becomes the postage seal on a real parcel received by another person.

Phaser now contributes directly to the game’s social economy and visual storytelling.

Treating UGC safety as core infrastructure

Parcel allows notes, doodles, reactions and public sharing, so moderation could not be postponed until after launch.

We implemented client and server filtering for links, contact information and hostile language; a 24-hour free-text restriction for new accounts; explicit Wall consent; separate public-sharing actions; removal by either participant; community reporting; moderation routing; mirrored-comment cleanup; and self-service data deletion.

Protecting daily limits and rewards

Send limits and trinket attachment must remain correct even when requests arrive simultaneously. Server-side atomic counters prevent players from exceeding the three-parcel daily limit or attaching the same trinket multiple times through concurrent requests.

Accomplishments that we're proud of

We built a complete social product loop rather than a disconnected collection of features:

open → react → gather → craft → send → deliver → return for the response

The first session demonstrates that promise immediately through a bonus delivery. The long-term experience develops through streaks, collectibles, pen-pal relationships and synchronized community events.

We are especially proud that Parcel remains honest at every stage:

  • A trinket shown as caught is always awarded.
  • Reactions remain private until explicitly published.
  • Public sharing requires sender consent.
  • Post Office activity is clearly identified.
  • Either participant can remove a public share.
  • Players can delete their Parcel history and authored content.
  • There are no purchases, competitive advantages or pay-to-win systems.

Parcel is concept-complete, mobile-responsive and backed by 64 automated tests covering delivery, concurrency, reporting, privacy, daily limits, streaks, Festival Days, stale mail, notifications and multi-day pen-pal exchanges.

What we learned

The strongest retention is emotional rather than mechanical.

Parcel does not ask players to return only to preserve a number. Players return because somebody may have made something for them and because another person may have responded to what they sent.

We also learned that a game engine is most effective when it participates in the product’s central economy. Phaser became essential when Gather stopped producing abstract points and started producing visible parts of a gift delivered to another human.

Finally, community products become stronger when consent, moderation and deletion are treated as product features from the beginning. These systems did not reduce the warmth of Parcel—they made that warmth trustworthy.

What's next for Parcel

The next stage is a public launch in r/PlayParcel, followed by measured iteration around day-two and day-seven retention.

Our product roadmap includes:

  • Seasonal material and trinket collections
  • Community-designed wrapping-paper sets
  • Richer Street Festival events
  • Subreddit-specific visual themes
  • Collaborative parcels built by an entire community
  • Expanded accessibility and reduced-motion options
  • A moderator dashboard for queue health and safety review
  • More ways for pen-pal relationships to develop without exposing personal information

Parcel will continue to follow one product principle:

Every feature should strengthen the feeling that another human chose to make something for you.

Built With

Share this project:

Updates