Bubble Mew

Contributing & Project Structure#

How this site is built and how to add or edit strats. If you can edit a text file, you can contribute โ€” no web-development experience required.


Want to Contribute?#

Got a better strat, a fix, or a suggestion? We'd love your help. Reach out to get added to the GitHub repo:

Whether you want to contribute directly or just float an idea, drop a message and we'll get you set up. ๐Ÿซง


What This Site Is#

A Next.js website that renders Markdown files into pages. Every strat page is just a .md file in the content/ folder โ€” those files are the single source of truth. You write Markdown, the site turns it into a styled page automatically.

  • Hosted on Vercel, with a Cloudflare domain.
  • Light/dark theme, sidebar navigation, and mobile layout are handled for you.

Project Structure#

bubblemew/
โ”œโ”€ content/                โ† all strat content (edit these)
โ”‚  โ”œโ”€ ultimate.md          โ†’ /ultimate          (Guides: fundamentals)
โ”‚  โ”œโ”€ about.md             โ†’ /about             (About Us)
โ”‚  โ”œโ”€ contribution.md      โ†’ /contribution      (this page)
โ”‚  โ”œโ”€ party-finder.md      โ†’ /party-finder      (PF overview)
โ”‚  โ”œโ”€ bubble-mew/          โ†’ Bubble Mew Strats
โ”‚  โ”‚  โ”œโ”€ p1.md  p2.md  p3.md
โ”‚  โ”‚  โ”œโ”€ transitions.md
โ”‚  โ”‚  โ””โ”€ enrage.md
โ”‚  โ””โ”€ party-finder/        โ†’ Party Finder Strats
โ”‚     โ”œโ”€ p1.md  p2.md  p3.md
โ”‚     โ”œโ”€ transitions.md
โ”‚     โ””โ”€ enrage.md
โ”œโ”€ app/                    โ† Next.js pages & layout (rarely touched)
โ”œโ”€ components/             โ† Sidebar, Markdown renderer, theme toggle
โ”œโ”€ lib/content.ts          โ† reads content/ and builds the sidebar nav
โ””โ”€ public/logo.png

The rule of thumb: the file path under content/ becomes the URL. For example content/bubble-mew/p1.md is served at /bubble-mew/p1.


Editing a Page#

  1. Open the relevant .md file under content/.
  2. Edit the Markdown. The first # Heading in the file becomes the page title shown in the sidebar.
  3. Save. Locally the page hot-reloads; on the live site it updates after the change is pushed.

Linking between pages#

Link to other content files with a relative Markdown link to the .md file โ€” the site rewrites it into the right URL automatically:

See [the fundamentals](../ultimate.md) for role spots.
[PF strat](../party-finder/p1.md)

Strat conventions#

  • Use the role abbreviations MT ยท OT ยท H1 ยท H2 ยท D1 ยท D2 ยท D3 ยท D4 consistently.
  • Note clock spots (N, NE, E, โ€ฆ) and waymarks (A/B/C/D, 1/2/3/4) the way we set them in-game.
  • Keep callouts short and unambiguous โ€” they get read at a glance during prog.

Adding a New Page#

  1. Create a new .md file in the right content/ subfolder (e.g. a new phase in bubble-mew/).
  2. To make it appear in the sidebar, add it to the nav in lib/content.ts (getNav()). Pages not listed there still work via their URL โ€” they just won't show in the sidebar.

Running Locally#

npm install      # first time only
npm run dev      # dev server with live reload (default http://localhost:3000)

To use a different port: npm run dev -- -p 3002.

Deploying#

Pushes to the main branch deploy automatically via Vercel; pull requests get their own preview URL. See the repo README.md for the Cloudflare domain setup.