A cozy, Stardew-Valley-inspired farming sim disguised as a Google Sheets spreadsheet.
You inherit a run-down farm and a 5,000g bank loan. Pay it off by tilling, planting, fishing,
mining, and foraging — except the whole game is dressed up as Q3_Forecast_FINAL_v2.xlsx, so it
looks like you're hard at work on a quarterly forecast. Column letters, row numbers, a formula bar,
conditional-formatted cells, and bottom sheet tabs aren't a skin bolted on top — they are the
interface. Range selection is your tool. Formulas are power-user shortcuts. Tabs are world areas.
🌱 Playable. All four money tracks (farming, fishing, mining, foraging), the RPG/skills layer, weather, the overnight economy, an onboarding Objectives board, and a full celebration/feedback layer are in. Remaining work is content depth, cosmetic sheet themes, audio, and a balance pass — see the roadmap below.
The disguise is the game:
- Cells are tiles. Each cell on the Farm sheet shows its state with an emoji + a conditional-formatting background color: grey untilled dirt, brown tilled, blue-tint watered, crop emoji with a growth ring, gold border when ripe — plus a corner water-status droplet (blue = watered, amber = needs water today) so the morning watering pass reads at a glance.
- Range selection is the core verb. Drag-select a range like
B2:I9and click an action to apply it to the whole field at once (paying energy until it runs out) — exactly how you'd fill a formula across a range in Sheets. - A real formula bar with autocomplete drives the same engine as clicking:
=plant(A1:H1,"turnip")·=water(A1:H8)·=harvest()·=buy("Copper Can")=ship("Potato",20)·=cast()·=mine()·=sleep()·=goto("Mine")
- The HUD is a frozen header row of cells: day, clock, weather + tomorrow's forecast, gold, loan balance, and an energy bar rendered as conditional-formatted cells.
- Tabs are world areas:
Farm · Store · Mine · Pond · Woods · Skills · Mailbox · Almanac · Objectives. - The gag: the browser tab reads
Q3_Forecast_FINAL_v2.xlsx— you're secretly farming at work.
You spend a limited daily energy budget across four income paths, each designed to play differently — not just reskins of one another:
| Track | Capital | Variance | Role |
|---|---|---|---|
| 🌱 Farming | Med (seeds) | Low | The backbone; scales with land + regrow crops + sprinklers |
| 🎣 Fishing | ~0 | High | Best when broke; energy-cheap, time-heavy, weather-boosted |
| ⛏ Mining | Tools | Bursty | Yields the bars that upgrade your tools, not just gold |
| 🌲 Foraging / Lumber | ~0 | Low | Free daily forage + renewable wood, the building-material supply line |
The "best" choice depends on the day: rain means fish or mine (crops self-water for free); broke means fish; saving for a sprinkler means mine + chop for materials.
- Energy / stamina is the central daily limiter (the Stardew model). Watering a full field by hand is intentionally impossible — that tension pushes you toward rain, sprinklers, and watering-can upgrades. Running out fails soft; there's no game over.
- Skills (RPG layer): four skills (Farming / Fishing / Mining / Foraging), levels 1–10, each level granting a concrete unlock — a new crop, a tool tier you become eligible for, a quality bonus, or extra max energy.
- Tool tiers: Watering Can, Hoe, Axe, Pickaxe, and Rod each upgrade through Copper → Iron → Gold → Iridium tiers, gated by skill level + gold + smelted ore bars. Per-tile energy plummets as area grows, so upgrades feel transformative.
- Weather & forecast: rolled overnight and shown one day ahead so you can plan — rain auto-waters every crop for free; storms, heatwaves, and night-only catches change the calculus.
- Overnight resolver: drop harvests/fish/ore into the Mailbox shipping bin, then
=sleep()— the bin sells overnight (with daily price drift), crops advance, weather rerolls, letters arrive, and you wake at 6:00 AM with full energy. - Daily watering loop: every crop must be watered (or rained on) each day to advance a growth stage — skip it and a morning note tells you what didn't grow. Harvesting a single-harvest crop clears the tile back to dirt, so you re-hoe before replanting (regrow crops keep producing).
- Objectives board: a spreadsheet-styled checklist of chained goals (an Act 1 onboarding chain through Act 2 mastery). Each completion is claimable for a reward and reveals the next thing to chase — and the early ones double as the tutorial.
- Feedback & celebrations: floating
+gold/+XPpopups, a morning shipment summary, and milestone overlays for level-ups, tool upgrades, mine depth, and the loan payoff — so progress lands instead of passing by. - Fishing reel: cast, wait for the bite, then hold
SPACE(or the button) to keep the green zone on the darting fish until the catch meter fills; better rods widen the zone. - Farm expansion: buy extra rows/columns of soil from the Market (escalating cost) as your field outgrows the starting 8×8.
- Autosave to
localStorageon every action.
- Vanilla JavaScript — no framework, turn-based engine
(
performAction → advanceTime → render),localStorageautosave. - HTML + CSS with Tailwind CSS precompiled to a static stylesheet (no runtime CDN).
- Content as data tables in
data/(crops.js,fish.js,ore.js,forage.js,tools.js,skills.js,recipes.js,letters.js,objectives.js) — balancing is just editing a table.
index.html # the spreadsheet shell + disguise
engine.js # game state, actions, overnight resolver
ui.js # presentation layer / cell rendering
styles.css # custom styles
tailwind.css # precompiled Tailwind (rebuild via tailwind-input.css + tailwind.config.js)
data/ # crops, fish, ore, forage, tools, skills, recipes, letters, objectives
GAME_DESIGN.md # full design document
stitch_spreadsheet_valley/ # design mockups
docs/screenshot.png
The game loads its data scripts with relative paths, so serve the folder over HTTP rather than
opening index.html from the filesystem:
python -m http.server 8123
# then open http://localhost:8123/index.htmlOr just use the live demo (GitHub Pages, served over HTTPS).
| # | Milestone | Status |
|---|---|---|
| M0 | Shell — tabs, grid, formula bar, HUD, save/load | ✅ |
| M1 | Farming loop — hoe/can/seeds/harvest, store, shipping bin, sleep cycle, energy | ✅ |
| M2 | RPG layer — skills + XP, tool upgrade tiers, weather, sprinklers | ✅ |
| M3 | Fishing — pond tab + hold-SPACE reel mini-game + rod tiers |
✅ |
| M4 | Mining — ore/ladders/elevator, Blacksmith smelting → tool upgrades | ✅ |
| M5 | Lumber & forage — chopping, forage spawns, tree tapping, crafting | ✅ |
| M6 | Story + economy — loan act, tutorial/onboarding, Objectives board, Act 2 unlocks | ✅ core · 🚧 balance pass |
| M7 | Polish — celebrations & feedback ✅ · sheet themes, sfx, accessibility 🚧 | 🚧 |
| M8 | Content depth — cosmetic themes, cooking, more fish/crops, festivals | 🔜 next |
See GAME_DESIGN.md for the full design document.
Working title: GROWTH.xlsx (alt: Cells & Soil). A cozy game about spreadsheets, soil, and slowly clawing your way out of debt.
