Roadmap
What v0.x ships, what's deferred, and why.
Shipped (v0.3.x)
Phase A — scaffolding end-to-end:
create-propeller-shopCLI with full prompt flow +--yesdefaultspropeller doctor— manifest-vs-shop drift checkshop-nexttemplate — runnable Next.js shopshop-vuetemplate — runnable Vue 3 + Vite SSR shopcms-adapter-strapi— Strapi v5 REST implementationcms-adapter-cms— generic Propeller-CMS stubpropeller.jsonschema + Zod validation- B2B route tree (split into
b2b-routes/per template, scaffolded only formode !== 'b2c') - Per-route
<RequireUserMode>(Next) / router guard (Vue) for hybrid shops - Flat
<shop>/{frontend,cms}/output (droppedpublic_html/in 0.3.2)
Deferred (Phase B)
propeller upgrade [--to <version>]
Pull template + UI-package updates into an existing shop without clobbering local edits.
The shape:
- Precomputed diffs between template versions ship with each CLI release.
- For each changed file: skip if path is in
propeller.json -> customisations.ejected; apply if the shop's file equals the previous-version base; 3-way merge (usingdiff3/git merge-file) otherwise. - Per-version codemods (
jscodeshiftfor.tsx,ts-morphfor.ts, custom Vue SFC walker for.vue). - Conflict reporter writes standard git markers.
- Checks
template.propellerCompatagainst installed package versions before proceeding.
propeller eject <path>
Append a path to propeller.json -> customisations.ejected. Future
upgrade runs will skip it.
Why deferred: needs a precomputed-diff pack format + tooling that's
non-trivial to design. The schema + ejected field are wired in from
day one so adding upgrade later is non-breaking.
Deferred (Phase C)
propeller migrate-mode <new-mode>
Re-run the scaffolder in dry-run for the mode diff, apply only newly-required routes; never remove files.
Why deferred: rare operation; manual re-scaffold + diff is acceptable until there's user pressure.
Probably never
- Nuxt template — would duplicate the Vue template's deeply Nuxt-coupled parts (server.js, vite.config.ts) without buying much. If the Propeller Vue stack moves to Nuxt, the Vue template would migrate; a separate Nuxt template is unlikely.
- Mobile templates — out of scope. Shops needing native apps consume the SDK directly.
When?
No commit. Phase B's diff-pack design is the biggest open question; it needs at least a few real upgrade scenarios to validate the codemod-vs-merge split. Phase C is on hold until a shop actually needs it.
Things that aren't roadmap items but get asked about
- Tags? Per-package
v<X.Y.Z>tags are now created by GitLab CI on every release commit. See the per-package GitHub releases page. - npm publishing? Not yet — packages are consumed via
github:propeller-commerce/<pkg>#masterpins until a 1.0 line stabilises. - changesets / semantic-release? Not yet. Manual
Release X.Y.Zcommits + a CHANGELOG entry are the current discipline; the SDK has used it for a year without friction.