Plainbuilt
All projects

Carrier Snail

A calm, anti-urgency reminder app where every to-do is carried to you by a snail crawling across a real map at honest snail speed, inside a collectible creature game.

View source 29 prompts totalExpoReact NativeTypeScriptMapLibreSupabaseMapTilerClaude Opus 4.8GPT-5.5 (Codex)vibe-codedmobile appgame
Carrier Snail screenshot

Carrier Snail is an Expo / React Native app where a snail carries each reminder across a real map at about 0.03 mph. Set "buy milk" and a snail leaves from where you were standing, arriving optimistically sometime next week. The app offers no way to hurry it and sends no notification until it arrives. It is useless for urgent tasks, by design. The reminder system sits inside a collectible game where you hatch and level a stable of snail species, earn "slime" from deliveries and minigames, and spend it in the shop.

I built it over a hackathon weekend using two agents in tandem. Claude Code (Opus 4.8, thinking xhigh) drove the architecture, the constitution in specs/, and most of the features. Codex (GPT-5.5) ran long autonomous /goal loops overnight and handled image generation and sprites.

This is a mobile app, so there is no web demo. The cover above is the in-repo hero banner generated during the build. The full source is on GitHub, where you can build it for your own device.

The prompts

A curated walkthrough of the prompts that moved the build forward: the early prompts that set the direction, followed by the turns that drove features and fixes.

Foundation and constitution

Prompt 1 — The pitch + a specs constitutionClaude Opus 4.8thinking: xhigh
we are building Carrier Snail -- A reminder app where every reminder is delivered by an on-screen snail physically crawling toward you across a real map at actual snail speed (~0.03 mph). Set "buy milk," and the snail sets off from wherever you were standing — arriving, optimistically, sometime next week. There's no speeding it up, no notifications until it arrives, no urgency permitted. It's catastrophically useless for anything time-sensitive, which is the entire point: it forces you to admit that almost nothing you "urgently" remind yourself of actually mattered. The reminders that survive the journey are the only ones that were ever real. Collectible angle (à la Roost's flock): build a stable of snails, each agonizingly slow in its own way — your reliable Garden Snail, a "mythic" racing snail that's merely very slow, a cursed one that occasionally goes backwards.
We draw heavy inspiration from https://play.google.com/store/apps/details?id=com.rookery.courier&hl=en_AU

Let's create a "constitution" in a specs directory:
mission.md
tech-stack.md
roadmap.md for high-level implementation order, in very small phases of work.

Use the /grill-me skill to aid with this endeavour.
Prompt 2 — Keep dependencies and costs minimalClaude Opus 4.8thinking: xhigh
yes. and tell me if theres other dependencies which cost money. i would prefer if we minimize the dependence on APIs and costs
Prompt 3 — Engineer an overnight Codex /goal loopClaude Opus 4.8thinking: xhigh
If i were to set up a extremely long running /goal (potentially nested?) initiated via a prompt in a seperate codex session, what would that prompt be? feel free to also make additions/changes to files in order to set it up. Loop engineering?

This set the pattern for the whole build. I grilled a feature into a tight spec in Claude Code, handed a /goal prompt to a separate Codex session to implement overnight, then returned to Claude to review and steer.

First build on a real map

Prompt 4 — Review what Codex built overnightClaude Opus 4.8thinking: xhigh
I ran the prompt in codex and it seems like it got quite far with its implementation. Can you analyze over and let me know what next steps you recommend taking? Like, I suspect the map isn't working currently.
Prompt 5 — MapTiler key + center the map on the userClaude Opus 4.8thinking: xhigh
my key is Qbw...6lm. you have my permission to add it to .env

The map should be centred and at an appropriate level of zoom on the user's location. The ui should also give the ability to minimize/maximize the size of the map.

The app takes shape

Prompt 6 — Add a classic bottom tab navbarClaude Opus 4.8thinking: xhigh
Okay, I would like for our next big feature to be the addition of a classic navbar at the bottom edge of the screen. (typical of mobile application ui/ux design). Have 4 nav icons (icon + label): "My Snails", "Map", "To Dos", "Notifications" in that order. The view we have currently in the app should align with the "Map". /grill-me till we have little to no abiguity with this feature addition.
Prompt 7 — Gate dev controls, make the snail panel collapsibleClaude Opus 4.8thinking: xhigh
yes, add the gating for speed selection. but, remove the trio/single toggle. I do not get the point of it given that for a snail to appear on the map it needs to be assigned a task in the to do list by the owner. I also think we could hide the coarse location selection (which should be toggle-able to being both on or off) or move it to another page in the app and same goes for the speed selection (for dev). The panel down below should be strictly devoted to displaying details about a snail and their to do list item they've been assigned to notify the user of and should be collapseable. maybe draggable? I'll leave this judgement call to you and your ui/ux expertise. use the /grill-me skill to clear out any ambiguity that remains with this next set of changes I want you to scope out.
Prompt 8 — Make the snail sheet draggableClaude Opus 4.8thinking: xhigh
I feel like many apps have two "locked" views like we have right now for the snail info, except they have a smoother transition between the two through draggability/swipe up+down. Right? Is this an easy modification?
Prompt 9 — Show the user's location + recenterClaude Opus 4.8thinking: xhigh
We should display the user's location, right? And some kind of ease-of-access recentring. /grill-me

A bigger batch, and the Game Corner

Prompt 10 — A batch of features, handed to Codex overnightClaude Opus 4.8thinking: xhigh
I want to discuss with you a set of improvements/features that i want added. Use /grill-me to ensure there's little ambiguity and that we're on the same page. I would like them all to be converted into manageable issues before providing me with a similar /goal prompt to before at the start which i can hand off to codex to handle implementation of it all overnight.

The features that come to mind:
- User should be able to select which snail among their collection that they want tasked with notifying them for a particular todo list item.
- User should be able to give custom names to their snails.
- Add some more excitement around the egg hatching proccess. Confetti, animations, illustrations,
- Introduce illustrated snail avatars. They should have a standing pose and a walking animation. See  [Image #1] for inspiration, the idea is to mimic something similar to like the blue and red snails from maplestory. can look at the assets hosted at maplestory.io for reference. Use codex image-2 to generate the sprites/images. Come up with a series of different snails. another reference image [Image #2]. I want the image of the snail displayed in the "My Snails" page. Show a small image of the snail on the to dos if assigned to. include an iamge of the snail asssociated with a received notification on the notifications page.
- Improve the visuals of the snail's trail to make it more visible on the map. We could also maybe play with the map skin? (Perhaps a selectable option in the settings?)
- Selecting a snail in the "My Snails" page should navigate to a second more detailed page highlight all the facts about the given snail.

Two MapleStory reference images were attached inline at [Image #1] and [Image #2]. Codex used them as the visual target for the snail sprites it generated with image-2.

Prompt 11 — Stable slot limits + a Pokémon-GO release mechanicClaude Opus 4.8thinking: xhigh
Are we curently enforcing the stable slot limits? What should happen once the player runs out of slots? Maybe some kind of "pokemon go"-like mechanism where the user can 'release' snails? /grill-me to come up with a spec.
Prompt 12 — Merge a teammate's minigames into the appClaude Opus 4.8thinking: xhigh
Let's now work on merging Park07's work with ours. they've worked extensively on adding games features to the app, but it might be missing some of the existing context. Could we analyse what they've built and scope out the changes necessary to integrate it with the rest of the app? We should try to match the game ui etc. with the rest of the existing app closely. Rewards for playing games should be a combination of both exp. for the snail the user plays the game as and slimes currency. Play game should be access from the snail details page, but feel free to add actionable elsewhere if it makes sense in your opinion.  /grill-me on any other questions or concerns you have.
Prompt 13 — Fix game lag, hide the navbar in-game, add a game menuClaude Opus 4.8thinking: xhigh
The issue I am generally facing now is that the games all lag a fair amount when playing. Also, we should be hiding the lower navbar when in-game. There should be a game 'menu' icon that gives the plyer the ability to pause/exit etc. Could you analyse and see how we can optimize the performance and fix these ux bugs? /grill-me if necessary.
Prompt 14 — Reconcile a diverged git history before mergingClaude Opus 4.8thinking: xhigh
Seems like the merge is more complicated than i initially thought. Can you utilise /grill-me to ask me a series of questions to gain clarity on how we go about the merge?
Prompt 15 — A batch of UX fixes; retire build/v1Claude Opus 4.8thinking: xhigh
Awesome, okay. Now let's plan for series of new changes. Open issues for each. From now on we'll disregard the build/v1 branch. /grill-me for greater clarity if needed.
1. Once a user adds a new todo list item, the keyboard should hide away.
2. Remove the "Resting carrier + Snail" from above the textfield on the Todos List page of the app
3. Is the shop functional? Let's make the layout for it standout more.
4. From the games corner screen, let's add a back button like on the snail detail page.
5. When the app first loads there's the instructions "garden snail is ready" overlay. Can we add illustration of the garden snail to it?

Visual assets and the pixel-vibrant redesign

Prompt 16 — Experiment with Remotion/Hyperframe for tutorial assetsGPT-5.5 (Codex)
On a worktree, can we experiment with using remotion and/or hyperframe plugins to develop some assets that we can incoporate into app? Maybe starting with a series of animations forming a slide show that we feature in the 'tutorial' overlay when the app first opens?
Prompt 17 — Surface the Slime currency and shop pricesClaude Opus 4.8thinking: xhigh
We aren't displaying how many "Slimes" the user owns. This should be communicated more obviously. Its the currency that users can spend in the shop. It's also not clear how much each of the items in the shop cost in SLIMES
Prompt 18 — Generate a nicer intro-overlay graphicGPT-5.5 (Codex)
I'd like to improve the graphics used in the illustrative "Garden Snail is Ready" how-to intro overlay. Can we use image-2 to generate a nicer graphic that would suit the screen? Make sure the layout still remains clean. /impeccable comes in handy.
Prompt 19 — The snail standoff: snails facing the garden snailGPT-5.5 (Codex)
revert to before where it was just the snail image. instead of garden snail, display 3-4 different snails oriented facing a single garden snail on the right facing back.
Prompt 20 — Drastically redesign: 8-bit, vibrant, MapleStory-likeClaude Opus 4.8thinking: xhigh
Okay, i would like to drastically redesign the color scheme and font choice of the app. Right now it feels to corporate-ey and less game-like. Can we make it more game-like? 8-bit? vibrant colors? Maplestory-like?

README assets, fixes and final polish

Prompt 21 — Offer the APK for download on a websiteClaude Opus 4.8thinking: xhigh
I would like to offer the apk file for download on a website. is that easily feasible with our project? What do i need to do?
Prompt 22 — Install a standalone prod build on my phoneClaude Opus 4.8thinking: xhigh
Okay, i want to install the 'prod' version of the app native build to my android phone so i don't need it to communicate with my dev server to run
Prompt 23 — Fix the unreachable Game Corner back buttonClaude Opus 4.8thinking: xhigh
on the games corner screen, the back button is located way too high on the screen. Its blocked by the android menu. i can't click it. fix.
Prompt 24 — Make the standoff a transparent README bannerGPT-5.5 (Codex)
go with the first path. make sure to have a transparent background.  I plan on using this for the github repository README.md banner.
Prompt 25 — Generate app-preview screenshots of every screenGPT-5.5 (Codex)
Do you reckon its possible to generate screenshots of each of the major screens in the app? Woudl be cool to provide them as app preview in the README.md as demonstration. Thinking:
1) App intro overlay (Get Started)
2) Map page (whilst snail in transit and whoe path in map review with snail details displayed below
3) My Snails Page (with an inventory of 4+ diff. species of snail
4) Screenshot of a snail mid-game in flappy snail
5) Populated To Dos List
6) Populated Notifications Inbox
7) Settings Page
Prompt 26 — Combine the screenshots into a labelled collageGPT-5.5 (Codex)
could you create one large image combining all the images to form a collage? 2 rows, 4 columns. left-to-right, top-to-bottom. Use appropriate spacing/padding and attach a label below each screenshot.
Prompt 27 — Fix data not persisting between sessionsClaude Opus 4.8thinking: xhigh
I notice with the ap that the data does not persist between app sesssions. if i quit the app and close it and reopen, its as if i never opened to app before. What's going on?I thought we had integrated everything with supabase.
Prompt 28 — Tap a snail on the map to open its detailsClaude Opus 4.8thinking: xhigh
yea, proceed to commit. Then, I want you to work on improving the behaviour on the map page. I don't want the selectable list of snails in the snail detail overlay. The idea is the user can tap on a snail ontop of the map and it should bring up their details in the snail detail overlay. If the snail detail overlay is "collapsed/hidden", the it should also slide out. If the user taps elsewhere ontop of the map where no snail resides, then the snail detail overlay should collapse/hide and go back to "tap a snail to watch" (don't even have subtext below it).
Prompt 29 — Polish the collapsed map sheetClaude Opus 4.8thinking: xhigh
i reckon let's relabel from "Tap a snail to watch" to "Tap a snail for details". I also think it should be centred. could you use /impeccable to improve the appearance when collapsed and no snail is selected? I am also thinking the details slide overlay in collapsed state should be lower/reduced.