-
Notifications
You must be signed in to change notification settings - Fork 0
Getting Started
Two ways to see Fifty running: a one-click WordPress Playground demo (everything in your browser, ~60 seconds), or a real local install (you already have a wp-content/themes/ directory you want to drop these into).
Every theme ships a Playground blueprint at <theme>/playground/blueprint.json. Click any link below and a disposable WordPress instance boots in your browser — no local install required. Expect 60 to 90 seconds on first boot while the dataset and product images download.
Each blueprint:
- Boots WordPress (latest) on PHP 8.3 with the kitchen-sink extension bundle and networking enabled.
- Logs you in as
admin(password:password). - Installs WooCommerce and the WordPress Importer from wordpress.org.
- Pulls the theme directly from this repo via Playground's
git:directoryresource (only the matching<theme>/subfolder is fetched, not the whole monorepo). - Imports the Wonders & Oddities sample dataset: 30 products with images, 20 blog posts, 8 pages, menus.
- Configures the WC store: shipping zones (Flat Rate + Free), payment methods (COD + Bank Transfer), store address, pretty permalinks.
- Seeds a sample customer account, 5 orders in varied statuses, 2 variable products, a mix of on-sale / out-of-stock / backorder states, and 12 product reviews.
- Sets
show_on_front=pageto the seededhomepage andpage_for_poststo the seededjournalpage, then lands you at/so you see the designed homepage (not WP's "your latest posts" fallback and not/shop/).
To inspect the customer dashboard, log out and sign in as customer / customer.
GitHub Pages serves docs/ and forwards every short URL below to the canonical Playground deeplink. Generated by python3 bin/build-redirects.py from each theme's playground/blueprint.json.
| Page | Obel | Chonk | Selvedge | Lysholm |
|---|---|---|---|---|
| Home | obel/ |
chonk/ |
selvedge/ |
lysholm/ |
| Shop | obel/shop/ |
chonk/shop/ |
selvedge/shop/ |
lysholm/shop/ |
| Single product | obel/product/bottled-morning/ |
chonk/product/bottled-morning/ |
selvedge/product/bottled-morning/ |
lysholm/product/bottled-morning/ |
| Cart (pre-filled) | obel/cart/ |
chonk/cart/ |
selvedge/cart/ |
lysholm/cart/ |
| Checkout | obel/checkout/ |
chonk/checkout/ |
selvedge/checkout/ |
lysholm/checkout/ |
| My Account | obel/my-account/ |
chonk/my-account/ |
selvedge/my-account/ |
lysholm/my-account/ |
| Journal | obel/journal/ |
chonk/journal/ |
selvedge/journal/ |
lysholm/journal/ |
| 404 | obel/404/ |
chonk/404/ |
selvedge/404/ |
lysholm/404/ |
To enable the short URLs once on a fork: in the GitHub repo's settings → Pages → set Source to "Deploy from a branch", Branch main, Folder /docs, save. New themes get short URLs automatically — python3 bin/build-redirects.py reads each theme's playground/blueprint.json and writes docs/<theme>/<page>/index.html for every entry in its PAGES list. The bin/clone.py workflow runs it as the final step when you scaffold a new theme.
If you can't or don't want to use the short URLs (e.g. running off a fork before GH Pages is enabled), the canonical Playground deeplinks are still the source of truth:
| Page | Obel | Chonk | Selvedge | Lysholm |
|---|---|---|---|---|
| Home | / | / | / | / |
| Shop | /shop/ | /shop/ | /shop/ | /shop/ |
| Single product | /product/bottled-morning/ | /product/bottled-morning/ | /product/bottled-morning/ | /product/bottled-morning/ |
| Cart (pre-filled) | /cart/ | /cart/ | /cart/ | /cart/ |
| Checkout | /checkout/ | /checkout/ | /checkout/ | /checkout/ |
To try an in-flight branch, swap ref in the blueprint to your branch name (keep refType: "branch"). To pin to a specific commit, set ref to the SHA and refType: "commit".
If you want a faster, data-free version (just the theme + WooCommerce, no sample content), copy <theme>/playground/blueprint.json, drop the wordpress-importer plugin, the two runPHP blocks, the importWxr step, and the wp-cli steps, and serve the trimmed blueprint from any HTTPS URL. Same pattern, ~15 second cold start.
WordPress expects each theme as a top-level directory under wp-content/themes/. This repo lives inside wp-content/themes/fifty/, so each theme is symlinked back so WordPress's theme scanner finds it:
wp-content/themes/
├── fifty/ # this monorepo
│ ├── obel/
│ └── chonk/
├── obel -> fifty/obel
└── chonk -> fifty/chonk
Activate a theme via WP CLI using the short alias:
wp theme activate obel
wp theme activate chonk- Project Structure — every directory and what it does.
-
Tooling —
bin/check.py, the snap framework, and the rest of the CLI. - Adding a Theme — clone the base into a new variant in ~5 minutes.
Fifty on GitHub · Live demos · GPL-2.0-or-later · Block-only WooCommerce themes, zero CSS files, zero JS, zero build step