Adevien - Svaffold
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
What can be generated
A monorepo that uses Turborepo. It can generate the following empty projects:
SvelteKit:
- [x] Landing page
- [x] Blog
- [x] Custom app
- [x] Component library
Other:
- [x] CMS
- [x] CLI
- [x] Assets (shared static files)
- [x] Config (shared configuration files)
Options
TailwindCSS will be installed, but you can extend it with the following design systems:
- [x] DaisyUI
- [x] SkeletonUI
- [x] None
You can select the following deployment methods:
-
[x] Auto
-
[x] Cloudflare
(A GitHub Workflow will be created to redeploy when the package has changes)
-
[x] Vercel
-
[x] Docker (Node.js)
(A Dockerfile will be generated)
In case you select "Component library", you can choose between the following story builders:
- [x] Storybook
- [ ] Histoire
- [x] None
In case you select "CMS", you can select from the following:
- [x] 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)
- [x] GCP Cloud Storage
- [ ] AWS S3
- [ ] Cloudflare R2
- [x] None
Requirements
- node.js >= 16
- pnpm >= 7
- git
Usage
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 |