This repository ships a one-shot installer that scaffolds a SvelteKit app, adds common deps, optionally merges a template, sets up AI toolkit integration, tweaks .gitignore, can copy shared assets from the starter repo, sets a license, and (optionally) makes a local git commit.
Assumes the script lives at
https://raw.githubusercontent.com/bchainhub/sveltekit-starter/main/sv-starter.sh. If you use a different path or branch, adjust the URL accordingly.
Using curl (recommended - maintains interactivity):
Option 1: jsDelivr CDN (faster, more reliable):
bash -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/bchainhub/sveltekit-starter/sv-starter.sh)"
With a specific commit version:
bash -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/bchainhub/sveltekit-starter@beebeaf/sv-starter.sh)"
Option 2: GitHub Raw (original):
bash -c "$(curl -fsSL https://raw.githubusercontent.com/bchainhub/sveltekit-starter/main/sv-starter.sh)"
Or with a custom template repo:
bash -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/bchainhub/sveltekit-starter/sv-starter.sh)" -- --template https://github.com/your-org/your-template.git
wget alternative:
bash -c "$(wget -qO- https://cdn.jsdelivr.net/gh/bchainhub/sveltekit-starter/sv-starter.sh)"
Run locally (if you cloned this repo):
chmod +x sv-starter.sh
./sv-starter.sh --template https://github.com/blockchainhub/sveltekit-mota.git
π‘ You can pass any extra flags after
--and they will go straight tosv create. β οΈ Important: Thebash -c "$(curl ...)"approach maintains proper terminal interactivity, unlike piping with| bash -s --which can break interactive prompts.
npxpnpm, bun, yarn, or npmrsync for robust folder copies)stat commands (macOS -f, Linux -c)Runs SvelteKit creator
Uses npx sv create "$@" to start a new project (your answers go to SvelteKit's wizard).
Detects the created project directory
Automatically cd's into it (even if SvelteKit created a subfolder).
Installs base packages Installs a curated set of deps for this starter.
Auth picker (interactive) Choose:
0 None (default)1 @auth/sveltekit (reminder: install your adapter)2 lucia (reminder: install your adapter)If you choose Auth.js, it also runs npx auth secret.
Database / data layer picker (interactive)
Choose from Prisma, Drizzle ORM, Supabase, Neon, MongoDB, Redis, etc., or None (default).
Some options kick off a small init step (e.g., prisma init, drizzle-kit init).
Translations picker (interactive)
Choose to install typesafe-i18n for internationalization support (default Yes).
AI Toolkit (interactive)
agents-sveltekit repository and places it as AGENTS.md in the project root.specify command is available on your system.specify/ to .gitignore under "# AI Agents" section (default Yes)(Optional) Merge a template repository
By default, uses:
https://github.com/blockchainhub/sveltekit-mota.git
Override with --template <repo-url>.
Before merging, removes src/routes/+page.svelte to avoid conflicts.
Initialize git (if needed) Initializes a repository if none exists.
Augment .gitignore
Appends extra ignores to the end of your existing .gitignore:
._**.log, *.log.*, tool-specific debug logs, logs, *.pid, β¦.idea/, .vscode/, etc..gitignore..specify/ (if Spec-Kit is included, default Yes)(Optional) Copy shared assets from this starter repo
.editorconfig (default Yes):
Pulled from editors/.editorconfig and placed at project root as .editorconfig..github (default No):
Copies providers/.github/ to your project root as .github (includes ISSUE_TEMPLATE).
If retrieval fails, the installer prints a failure and skipsβno fallback files.License selection (interactive) Default is CORE (your org's license). You can also choose from common SPDX licenses or None:
CORE (custom)
https://raw.githubusercontent.com/bchainhub/core-license/refs/heads/main/LICENSELICENSE and sets package.json β "license": "SEE LICENSE IN LICENSE" (npm-compliant for non-SPDX).SPDX licenses (MIT, Apache-2.0, GPL-3.0-or-later, AGPL-3.0-or-later, LGPL-3.0-or-later, BSD-2/3, MPL-2.0, Unlicense, CC0-1.0, ISC, EPL-2.0)
LICENSE and sets package.json β "license": "<SPDX-ID>".None
LICENSE and leaves package.json alone.If the license text can't be fetched, the script prints an error and does not modify
package.json.
Final (optional) local commit Prompt: "Create a single git commit with all current changes?" Default Yes. If Yes, it stages everything and commits locally.
Optionally prompts to push to origin (default No).
--template <git-url>
Use a different template repository for the initial project structure.
Example:
./sv-starter.sh --template https://github.com/your-org/your-sveltekit-template.git
Any additional arguments after -- are forwarded to sv create.
Example:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/bchainhub/sveltekit-starter/main/sv-starter.sh)" -- --name my-app
Auth: pick none/Auth.js/Lucia.
DB: pick a data layer (or None).
Translations: install typesafe-i18n (default Yes).
AI Toolkit:
.specify/ to .gitignore (default Yes)Ignore lockfiles: default Yes (adds them to .gitignore).
Copy .editorconfig: default Yes (from editors/.editorconfig).
Copy .github folder: default No (from providers/.github/).
License: default CORE.
package.json β "SEE LICENSE IN LICENSE".package.json.Final commit: default Yes (optionally push, default No).
Running remote scripts is convenient but sensitive. Review the script URL before running:
curl -fsSL https://cdn.jsdelivr.net/gh/bchainhub/sveltekit-starter/sv-starter.sh | less
Then run it once you are comfortable using:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/bchainhub/sveltekit-starter/main/sv-starter.sh)"
package.json
This only happens if fetching the license text failed. Fix the URL/network and rerun that step, or set license manually.specify command is installed and in your PATH.
Install from: https://github.com/github/spec-kitIf you want to pin the asset copy steps to an exact commit:
Replace the raw base:
https://raw.githubusercontent.com/bchainhub/sveltekit-starter/<COMMIT_SHA>
After cloning the starter repo, check out the same SHA before syncing:
git -C "$STARTER_TMP" checkout <COMMIT_SHA> --quiet || true
package.json with updated dependencies and (optionally) license..gitignore with enhanced ignores (+ optional lockfile excludes, + optional AI Agents section)..editorconfig and .github/ISSUE_TEMPLATE from the starter repo.AGENTS.md (AI constitution file) from agents-sveltekit repository..specify/ directory (if Spec-Kit is included).LICENSE file per your selection.Happy hacking! β¨