Description
Describe the problem you want to solve or enhancement you want to bring
Development of Vulcan NPM can become tricky when you want to experiment it in a real app, like in Vulcan Next. We need to use Yalc etc.
Having only one repo containing Vulcan core logic (NPM) + demo apps (Next, Express, Gatsby...) makes it easier to develop the framework.
Cons: can't the monorepo becomes a mess of complicated apps?
Define relevant concepts
Blitz is structured as a monorepo but revolves a lot around the Next app. We'd want to do the reverse: putting Vulcan Next within the monorepo.
Describe your solution
We could have scripts to create apps, based on templates => npx create-vulcan-app next
generate a Next app, a Gatsby app, etc.
We could also keep separate repos like Vulcan Next, but generate them automatically. So that developers can still simply clone Vulcan Next for instance and get the latest code.
Questions to the community
- What's your opinion?
- Are you ok with using commands to create the app like
npx create-vulcan-app next
? - What would be your approach? Eg how do we setup the repo so you can do something like
npx create-vulcan-app
ornpx vulcan create next
? - What would be your preferred syntax and behaviour?
- How can we handle folders that are app and folders that are packages within the Lerna monorepo? Install must not become a mess and build-time must not explode, so the app have to be kept kinda separate of Lerna.
- How do we plug the local packages? So that when we develop, the app automatically use the local versions of @VulcanJS packages
- If you want to contribute: try to setup a demo, for instance a very very simple Express app within the vulcan-npm monorepo.