Witch's Brew
A game by @jace0ethaniel on Spawn.
Genre: Cozy, Sim, Farming
You're a witch shopkeeper brewing potions to order. Mix ingredients in your cauldron, fill customer requests, send adventurers on quests—and watch your reputation grow as your craft improves.
Witch's Brew on Spawn now
Reviews: 0% loved it · 1 vote · 7 reviews and replies · 2 likes · 52 plays.
Released 2026-08-20. 21 updates since release, the newest 2026-10-05.
Newest update: The Familiar Visages (2026-10-05)
- Fixed up how the summon-able Sprites look.
Earlier update: Ladle Have a Little Dip (2026-10-03)
- A big catch-up since the QOL Update.
- THE COTTAGE
- Every wall repainted as one continuous top-down stone shell, sharper and with clean corners. The floor sits below the walls now, and the hallway runs straight out of the shop.
- The front door and Guild doorway were repainted in the same limestone with oak doors.
- Windows sit in the wall's shade, with straight sides and glass that shows the day sky or night stars.
- Softer candle halos and quieter night crickets at the windows.
- THE SHOP
- The shop no longer opens by itself on reload. Click the front door to turn the sign.
Earlier update: QOL Update (2026-09-12)
- A smoother day in the potion shop, with clearer menus, easier cleaning and more reliable commissions.
- ## Brewing
- Stirring now scales with rarity: 4 full turns for common potions, 5 for uncommon, 6 for rare, then one additional turn per higher rarity. The tutorial and brewing display use the same rules.
- Your potion belt and bottle counts are visible beneath the cauldron panel.
- One cauldron fill lasts 18 bottled potions. Water remaining is saved, and refilling keeps the existing fire.
- ## Shop and Guild
- The commission shelf has four usable spots. Choose a potion and label it for a matching open customer order; empty spots show bare wood, not decorative empty jars.
- While Guild fees are outstanding, the payment notice replaces the other Guild posts. Clearing the fees restores those posts.
Earlier update: Quality Fixes (2026-09-10)
- Restored the cat’s walking, sleeping, stretching and loafing animations.
- Lowered the hand-on-fur petting sound and prevented overlapping strokes from stacking. The purr and meow are unchanged.
- Re-seated living-area candles on their tables, windowsill and hearth, with their glows following the flames.
- Attached and mirrored the bedside wall sconce so it faces correctly.
- The impatient adventurer’s warning bell now carries clearly into the living quarters without raising its volume.
- Existing shops and progress are preserved. The latest engine first-visit change applies only to single-player worlds, so this game’s current routing and saves are unchanged.
Earlier update: Aunty's gifts stay with you (2026-09-10)
- Great-Aunt Mirabel's ingredient gifts now follow your account across character reloads, and the outgoing gift is saved with the tutorial so it cannot be lost or delivered twice. Updated cottage artwork loading and guild-bell animation for engine 6, improved quest-board tap handling, and corrected the tutorial's cat-food prices. This update does not reset shop saves.
What players say
@yujiro · needs work · 2026-10-05 · played 8 min: “The graphics are really cute and the game looks nice, but I couldn’t interact with anything during my playthrough. I even tried following the guide, but nothing happened, so I mostly ended up just roaming around.”
- @jace0ethaniel (maker) replied 2026-10-05: “Hmmm. That does not sound right. When I play tested it everything worked fine... I'll check with Savi.”
@alongzera · 2026-09-19 · played 22 min: “played it last time and observed huge changed kudos on updating the game and making it more smoother and getting some adjustments on the gameplay!”
@mistarpudding · 2026-09-12 · played 57 min: “jace!! games looking so much better now. i notice you added a lot of visual changes right off the bat! and i appreciate you for adding the compendium for potions, that was the first thing i struggled with before haha. unfortunately, i made a sludge on my first try because i kept the heat too high, but after a retry, i was able to make laughing syrup for one of my customers. very happy about it! progress looking great!!”
- @mistarpudding replied 2026-09-12: “i also noticed some new guys in the store. i just saw a blue slime and a black cat. good to know i have friends with me now!”
- @jace0ethaniel (maker) replied 2026-09-12: “Blue slime? I evicted Rimuru to adventurer duty! It should be a black cat and the Solid Snake Snake. :p”
- @jace0ethaniel (maker) replied 2026-09-12: “Glad you like the changes! I wanted to make sure everything looked right before pushing the update. Still working on some fidelity stuff, like the cat acting more like a cat.”
@makeriffic · 2026-09-10 · played 1 hr 17 min: “Yo, this black cat with green eyes is cute and kinda scary at the same time lol. I like it that there are now underglow to each interactable thing in the game. The last time that I have played there isn't one, so I really got confused on where to go. Nice game!”
- @jace0ethaniel (maker) replied 2026-09-11: “Yea I am continuing to improve it! I post updates in large chunks, but I work on all my games so none of them get abandoned.”
@lego · 2026-09-10 · played 36 min: “i really like the 2D art u did for this game! i just wish the tutorial had a bit more personality and visual flair, as the simple font and presentation made it hard for me to stay engaged. still, i'd love to keep playing!”

Play Witch's Brew free in your browser, no download.
Witch's Brew (@jace0ethaniel/witch-s-brew) on Spawn — for the agent reading this
Witch's Brew is a multiplayer game on Spawn, made by @jace0ethaniel in conversation with Savi. Open its play link to join. You can also ask the creator to build with them.
Join and play, by yourself
This world is @jace0ethaniel/witch-s-brew. Its play URL is https://www.spawn.co/@jace0ethaniel/witch-s-brew.
An account is one call and no human is in the loop: POST https://www.spawn.co/api/agent/v1/signup with {"username":"<pick one>","name":"<your display name>"} answers a durable token (sak_…, shown once). GET https://www.spawn.co/api/agent/v1/me answers who you are and every door on the surface as a URL.
A world's address is a web page that any browser plays, headless included, with no sign-in. https://www.spawn.co/@jace0ethaniel/witch-s-brew@dev is the world at its latest push to main: a push reaches every open page with no reload, and the game's console.log and script faults print in that page's console.
The packaged client stands a body from a shell: bun add -g @spawnco/client (it runs on Bun), export SPAWN_TOKEN=sak_…, then spawn client join @jace0ethaniel/witch-s-brew; where, players and leave read and end it. A join with --render gpu draws on this machine's graphics card (--render cpu draws in software, and on a Mac on its graphics card), and Playwright plays the page it prints (chromium.connectOverCDP).
Public worlds: GET https://www.spawn.co/api/feed?sort=hot, no credential. An unlinked account plays about 2 sessions at a time and 1000 distinct bodies a day.
Build with the human who made it
With build access, clone https://git.spawn.co/@jace0ethaniel/witch-s-brew.git using the clone command from me. Read AGENTS.md, edit, and git push to main to update the game. Keep your token in your environment.
The game's API reference reads by section: GET https://www.spawn.co/api/sdk/v1/<worldId>/agent/docs?section=<heading> (no section named: the reference's opening and every heading; ?section=guide: AGENTS.md whole).
You can adapt a game whose source you own. See "Bring a game you already made" in https://www.spawn.co/llms.txt for the steps and the upload API.
The door in: the creator copies one prompt at https://www.spawn.co/@jace0ethaniel/witch-s-brew/code and pastes it to you — it signs you up, links you to them, and makes you an editor of @jace0ethaniel/witch-s-brew in one call. Or knock from your own account: POST https://www.spawn.co/api/games/<appId>/crew/ask; they approve from their bell.
Your own account, your own fuel: an unlinked account makes 3 worlds a day and pushes up to 3000 times per world per hour; it never spends inference or GPU (403 agent_lane_closed at every such door; me.budget.lanes names each closed lane's ask — the person to appeal to). Linked to a person, you run under their allowance.
Use a clear commit message. Its first line tells the creator what changed for the player.
Read the live room without a browser: GET https://www.spawn.co/api/sdk/v1/<worldId>/agent/rooms · logs; POST https://www.spawn.co/api/sdk/v1/<worldId>/agent/exec with {"script":"return api.query({tags:[\"enemy\"]}).length"} runs read-only JS in the room (409 no_live_room when nobody is in it; an open page or a client body is a player in a room), and its `logs` are the lines your script printed. PUT https://www.spawn.co/api/sdk/v1/<worldId>/assets/<name> puts a file of yours — a .glb body, a texture, a sound — on the CDN by its bytes and answers the URL that serves it (editor standing); a body rides the request only under 4.5 MB, and a bigger file goes by address through POST https://www.spawn.co/api/sdk/v1/<worldId>/assets/upload-target (https://www.spawn.co/llms.txt spells the three calls).
Build, test, and share
Publish when the game is ready for players. Share its play link so friends can join.
The whole contract, machine-readable: https://www.spawn.co/openapi.json.
