Scaffold a monorepo to collect Svelte and TypeScript projects.
The following assumptions are made:
- The package manager is pnpm
- All projects are using TypeScript
- All web projects are using SvelteKit and TailwindCSS
- If no design system was selected, the forms and typography Tailwind plugins will be installed
A monorepo that uses Turborepo. It can generate the following empty projects:
SvelteKit:
- Landing page
- Blog
- Custom app
- Component library
Other:
- CMS
- CLI
- Assets (shared static files)
- Config (shared configuration files)
TailwindCSS will be installed, but you can extend it with the following design systems:
- DaisyUI
- SkeletonUI
- None
You can select the following deployment methods:
-
Auto
-
Cloudflare
(A GitHub Workflow will be created to redeploy when the package has changes)
-
Vercel
-
Docker (Node.js)
(A Dockerfile will be generated)
In case you select "Component library", you can choose between the following story builders:
- Storybook
- Histoire
- None
In case you select "CMS", you can select from the following:
- Payload
- Sanity
- Storyblok
In case you select "Assets", you can select the following bucket providers:
(A GitHub Workflow will be created to sync the assets with your bucket)
- GCP Cloud Storage
- AWS S3
- Cloudflare R2
- None
- node.js >= 16
- pnpm >= 7
- git
npx svaffold@latest root-dir
Arguments:
Name | Description |
---|---|
directory | root of the monorepo |
Options:
Option | Description |
---|---|
--force |
overwrite existing files (default: false ) |
--verbose |
output the messages of subprocesses (default: false ) |
-h , --help |
display help for command |
-V , --version |
output the version number |
All contributions are welcome, especially ones that make the tool more robust and generalised. To get started:
git clone https://github.com/adevien-solutions/svaffold.git
cd svaffold
npm i
npm run update-local
svaffold <dir>