svaffold
v3.0.0
Published
Scaffold a monorepo to collect Svelte and TypeScript projects
Downloads
14
Maintainers
Readme
Svaffold
Scaffold a monorepo to collect Svelte and TypeScript projects.
⚠️ Warning ⚠️ This is a highly opinionated tool, but PRs are welcome to make it more generalised. Refer to Contributing for more information.
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 |
Contributing
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
Test locally
npm run update-local
svaffold <dir>