Skip to content

NostrDanish/Playground

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

6 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿพ Blobbi Buddies

A Tamagotchi-style cooperative pet game built entirely on Nostr.

Edit with Shakespeare

Live demo โ†’ https://blobbi-buddies.shakespeare.wtf


What is Blobbi Buddies?

Blobbi Buddies lets you care for a cute pixel-art pet called a Blobbi โ€” solo or together with friends. Every action you take is published as a Nostr event, so your care history lives on the decentralised network forever. Friends can visit your Blobbi, play co-op activities, take photo dates, and compete in daily challenges.

๐Ÿฃ Raise your Blobbi Feed, play, clean, and put it to sleep. Stats decay over time so check in daily.
๐ŸŒŸ Watch it evolve Egg โ†’ Baby โ†’ Child โ†’ Teen โ†’ Adult โ†’ Elder as you accumulate care points.
๐Ÿค Co-op activities Invite friends to picnics, beach days, dinner dates, stargazing, and more.
๐Ÿ“ธ Photo dates Stage a scenic photo with a friend's Blobbi and upload real pictures.
๐ŸŽฎ Mini-games Memory Match, Color Rush, and Feed Frenzy โ€” all award XP.
โญ Daily tasks Four rotating challenges each day with XP rewards and a streak counter.
๐Ÿ’ฌ In-game chat Public game chat powered by Nostr kind-1 notes.
๐Ÿพ Multi-Blobbi Own multiple Blobbis, each with a custom name, colour, and independent stats.

Screenshots

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Blobbi Buddies  ๐Ÿฅš Egg   โญ Lv.3  ๐Ÿ”ฅ 5  โ”‚  โ† sticky header
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  [โ— Blobbi โœ“]  [โ— Luna]  [โ— Mochi]  [+]  โ”‚  โ† switcher bar
โ”‚                                           โ”‚
โ”‚         โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ              โ”‚
โ”‚  โ˜๏ธ      โ”‚    ๐Ÿพ  (park)    โ”‚  ๐ŸŒฟ          โ”‚
โ”‚         โ”‚       Blobbi     โ”‚              โ”‚
โ”‚         โ”‚       Lv.3       โ”‚              โ”‚
โ”‚         โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ              โ”‚
โ”‚  XP โ–“โ–“โ–“โ–“โ–“โ–‘โ–‘โ–‘โ–‘โ–‘  22/50                    โ”‚
โ”‚                                           โ”‚
โ”‚  Hunger   โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘  82                  โ”‚
โ”‚  Happinessโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘  76                  โ”‚
โ”‚  Cleanliness โ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘  34                 โ”‚
โ”‚  Energy  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘  90                   โ”‚
โ”‚                                           โ”‚
โ”‚  [๐ŸŽ Feed] [๐ŸŽพ Play] [๐Ÿซง Clean] [๐Ÿ’ค Sleep]โ”‚
โ”‚                                           โ”‚
โ”‚  โญDaily  ๐ŸŽฎGames  ๐Ÿ“ธPhotos  ๐ŸคCo-op  โ€ฆ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Getting Started

Prerequisites

  • Node.js 18+
  • A Nostr key pair โ€” use a browser extension like Alby or nos2x, or log in with an nsec

Run locally

git clone https://github.com/NostrDanish/Playground.git
cd Playground
npm install
npm run dev

Open http://localhost:5173.

Build for production

npm run build
# output is in ./dist/

How to Play

1. Log in

Click Join in the top-right corner. You can log in with:

  • A Nostr browser extension (NIP-07) โ€” recommended
  • A remote signer via bunker:// URI (NIP-46)
  • Paste an nsec directly (least safe โ€” avoid on shared devices)

2. Care for your Blobbi

Use the four action buttons each day:

Button Effect Daily task progress
๐ŸŽ Feed +8 hunger Counts toward "Feed 3x" task
๐ŸŽพ Play +6 happiness Counts toward "Play 2x" task
๐Ÿซง Clean +10 cleanliness Counts toward "Clean 1x" task
๐Ÿ’ค Sleep +12 energy โ€”

Stats decay about 5 points per hour of neglect, so check in every day to keep your streak alive.

3. Level up

  • Every action earns +5 XP
  • Winning a mini-game earns +15 XP
  • Taking a photo date earns +20 XP
  • Level = floor(XP / 50) + 1, shown on the name plate

4. Evolution stages

Stage Total care needed New features
๐Ÿฅš Egg 0 Just vibing
๐Ÿฃ Baby 5 Cheeks appear
๐Ÿ‘ถ Child 20 Arms grow
๐Ÿง’ Teen 50 Grows bigger
๐ŸŒŸ Adult 100 Tiny wings sprout
๐Ÿ‘‘ Elder 200 Crown unlocked

5. Multiple Blobbis

You can own as many Blobbis as you like:

  1. Tap + in the switcher bar below the header
  2. Give your new Blobbi a name and pick a colour
  3. Tap any Blobbi pill to switch to it instantly
  4. Double-tap a pill to rename, recolour, or remove it

Each Blobbi stores its stats independently on Nostr under its own d-tag.

6. Co-op activities

  1. Go to the ๐Ÿค Co-op tab
  2. Tap + New Activity
  3. Pick one of 10 activities (Walk, Picnic, Beach Day, Dinner Out, etc.)
  4. Paste your friend's npub
  5. Both players see the task โ€” tap Complete Activity to finish it

7. Photo dates

  1. Go to the ๐Ÿ“ธ Photos tab
  2. Tap + New Photo
  3. Pick a scene and enter a friend's npub
  4. See your two Blobbis together in the scene
  5. Optionally upload a real photo (your actual pets, a meal, a walk โ€” anything!)
  6. The photo is uploaded to Blossom and saved to your gallery

8. Mini-games

Go to the ๐ŸŽฎ Games tab and choose:

Game Goal Win condition
๐Ÿƒ Memory Match Flip cards to find matching pairs Match all 6 pairs
๐ŸŽจ Color Rush Tap the named colour before the timer Score 8 in 15 seconds
๐Ÿฝ๏ธ Feed Frenzy Memorise and repeat a food sequence Survive 5 rounds

9. Daily tasks

Four tasks rotate each day (based on date). Complete them for bonus XP. Examples:

  • ๐ŸŽ Hungry Buddy โ€” Feed 3 times (+15 XP)
  • ๐Ÿ‘‹ Social Butterfly โ€” Visit a friend's Blobbi (+20 XP)
  • ๐Ÿค Team Player โ€” Complete a co-op task (+25 XP)
  • ๐Ÿ“ธ Say Cheese! โ€” Take a photo date (+20 XP)
  • ๐Ÿ”ฅ On Fire! โ€” Maintain a 3-day streak (+30 XP)

10. Visiting a friend

  1. Go to the ๐Ÿ‘ซ Pals tab
  2. Tap Visit next to a friend
  3. See their Blobbi's stats and optionally Feed or Play with it
  4. The visit is recorded in both your and their companion state

Nostr Architecture

Blobbi Buddies never touches the original Ditto Blobbi event. All game data lives in separate kinds:

Kind Type Purpose
30311 Addressable (read-only) Ditto Blobbi pet data
32609 Addressable Blobbi Buddies companion state (per Blobbi)
7813 Regular Action events: feed, play, clean, sleep, visit, photo
3173 Regular Co-op task events
1 + #t:blobbichat Regular In-game public chat

See NIP.md for the full event schemas.

Multi-Blobbi d-tags

Each Blobbi gets a unique d-tag for its companion state:

blobbi-buddies-blobbi-1         โ† your first Blobbi
blobbi-buddies-blobbi-2-<ts>    โ† second Blobbi (includes timestamp)

The roster (names, colours, active selection) is stored in localStorage for instant switching.

Relays

The app defaults to:

  • wss://relay.ditto.pub/ (read + write)
  • wss://relay.dreamith.to/ (read + write)
  • wss://relay.primal.net/ (write only)
  • wss://relay.damus.io/ (write only)

Users can configure their own relay list via NIP-65.


Tech Stack

Layer Technology
Framework React 19 + TypeScript
Styling Tailwind CSS v4
UI components shadcn/ui + Radix UI
Nostr Nostrify + nostr-tools
Data fetching TanStack Query v5
Routing React Router v7
Media uploads Blossom via @nostrify/nostrify
Build Vite 8

Project Structure

src/
โ”œโ”€โ”€ components/
โ”‚   โ”œโ”€โ”€ auth/            # Login, account switcher
โ”‚   โ”œโ”€โ”€ game/            # All game UI components
โ”‚   โ”‚   โ”œโ”€โ”€ ActionButtons.tsx
โ”‚   โ”‚   โ”œโ”€โ”€ ActivityFeed.tsx
โ”‚   โ”‚   โ”œโ”€โ”€ BlobbiCreature.tsx   # SVG pixel-art Blobbi
โ”‚   โ”‚   โ”œโ”€โ”€ BlobbiSwitcher.tsx   # Multi-Blobbi roster UI
โ”‚   โ”‚   โ”œโ”€โ”€ ChatPanel.tsx
โ”‚   โ”‚   โ”œโ”€โ”€ CoopTaskPanel.tsx
โ”‚   โ”‚   โ”œโ”€โ”€ DailyTasks.tsx
โ”‚   โ”‚   โ”œโ”€โ”€ FriendsList.tsx
โ”‚   โ”‚   โ”œโ”€โ”€ GameHeader.tsx
โ”‚   โ”‚   โ”œโ”€โ”€ MiniGames.tsx        # Memory, Color Rush, Feed Frenzy
โ”‚   โ”‚   โ”œโ”€โ”€ PhotoDate.tsx
โ”‚   โ”‚   โ”œโ”€โ”€ SceneBackground.tsx  # Themed scene environments
โ”‚   โ”‚   โ”œโ”€โ”€ StatBar.tsx
โ”‚   โ”‚   โ””โ”€โ”€ VisitFriend.tsx
โ”‚   โ””โ”€โ”€ ui/              # shadcn/ui primitives
โ”œโ”€โ”€ hooks/
โ”‚   โ”œโ”€โ”€ useBlobbiActions.ts   # Publish care actions + update state
โ”‚   โ”œโ”€โ”€ useBlobbiActivity.ts  # Fetch activity feed events
โ”‚   โ”œโ”€โ”€ useBlobbiRoster.ts    # Multi-Blobbi roster (localStorage)
โ”‚   โ”œโ”€โ”€ useBlobbiState.ts     # Fetch companion state from Nostr
โ”‚   โ”œโ”€โ”€ useCoopTasks.ts       # Co-op task creation + completion
โ”‚   โ””โ”€โ”€ useFriendsList.ts     # Derive friends from companion state
โ”œโ”€โ”€ lib/
โ”‚   โ””โ”€โ”€ gameTypes.ts          # All types, constants, and compute fns
โ””โ”€โ”€ pages/
    โ””โ”€โ”€ Index.tsx             # Main game page

Contributing

We welcome contributions of all kinds. Please read CONTRIBUTING.md before opening a PR.


License

MIT โ€” free to use, fork, and build upon.


Vibed with โค๏ธ on Shakespeare

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors