π§ͺ The sandbox for testing new functions and features before they reach the live site. Risky refactors, alternate stacks, new components, weird ideas β all start here.
This is where we shake out anything that might break
roccosalata/madridinsider
(the production site) or
roccosalata/madridinsider-explorer
(the dev source). If it works here and looks good, we promote it. If it
doesn't, we throw it away and the production site never knew.
Nothing in this repo is user-facing.
| Repo | Role |
|---|---|
| roccosalata/madridinsider | Production live site β what users see |
| roccosalata/madridinsider-explorer | Mavis's dev sandbox for stable code |
| roccosalata/madridinsider-data | Content "database" (JSON) |
| roccosalata/madridinsider-lab | This repo β risky experiments & feature tests |
lab (here, experiments) βββΊ explorer (stable) βββΊ madridinsider (production)
β²γγγγ
βββββββ "does it work, scale, look right?" βββββββ
A typical feature goes: drafted in lab β moved to explorer once
clean β promoted to madridinsider once approved.
This repo is intentionally messy. Right now it holds:
app/β a Next.js 14 / App Router build (the historical v0 export) with deep pages for each of the 5 main categories (/essentials,/living,/see,/do,/now) plus hub pages.components/β feature-rich components (quiz, weather widget, floating action ball, newsletter form, etc.) inherited from the original v0 build.lib/,hooks/,styles/β shared utilities.
This is the legacy feature-complete build kept as a reference and
test bed. New experiments should live under experiments/<slug>/ so they
don't tangle with this base.
- Branch off
main:git switch -c exp/your-feature. - Create a folder:
experiments/<your-feature>/. - Keep it self-contained β own
package.json, ownREADME.md, own scripts. Don't pollute the root. - Document it β at the top of your experiment's README, answer:
- What is this testing?
- What's the success criteria?
- How do I run it?
- Open a PR titled
exp: <your-feature>. Reviews are light β this is a sandbox, the bar is "does it work locally".
If your experiment graduates, the next step is to lift it into
madridinsider-explorer ,
not directly into production.
# pnpm is the lockfile-of-record pnpm install # dev server pnpm dev # production build pnpm build # serve the build pnpm start
Node 18+ recommended. Next.js 14.
- No users, no SLA, no monitoring. Break things.
- No production data. Use fixtures in
experiments/<slug>/fixtures/. - No direct deploys. The lab never serves traffic. If you need a public URL for review, deploy from a branch to a preview environment and link it in the PR.
- Clean up or it gets archived. Experiments older than 90 days with
no activity get a
stale-prefix and a friendly ping to the author. - One experiment per folder. Don't mix two ideas.
When an experiment is superseded or abandoned, move (don't delete)
its folder to archive/<date>-<slug>/. The history of what we tried
is half the value of the lab.
Anyone with push access can land experiments. If you don't, fork and PR β Mavis or a maintainer will review.
MIT β fork, customize, ship.