Clone and install
If you finished the six items in 01-prerequisites.md, this step usually takes between 5 and 10 minutes.
1) Pull the base into your own project
Section titled “1) Pull the base into your own project”There are two ways to bring the base down. If git is new to you, the GitHub Template route is the gentler one.
A. GitHub Template — recommended
Section titled “A. GitHub Template — recommended”- Open the base’s GitHub page at github.com/ddakit/saas-base.
- Click the green Use this template button in the top-right and pick Create a new repository.
- Pick a name under your own GitHub account, e.g.
my-saas. - Press Create repository.
A new copy of the base lands under your account. Now bring it down to your machine. Open a terminal and run:
cd ~/Desktop # or any folder you likegit clone https://github.com/<your-id>/my-saas.gitcd my-saasReplace <your-id> with your GitHub username.
B. Plain git clone — if git already feels comfortable
Section titled “B. Plain git clone — if git already feels comfortable”git clone https://github.com/ddakit/saas-base.git my-saascd my-saasgit remote remove origin # detach the base's remote# Create an empty repo on your GitHub, then re-add it as origin:# git remote add origin https://github.com/<your-id>/my-saas.gitInstead of removing the base remote, you can rename it and keep using it. That is exactly what 10-staying-up-to-date.md leans on later. git remote rename origin base first, then add your own repo as origin.
2) Install dependencies
Section titled “2) Install dependencies”pnpm installIf pnpm is new on your machine, one line installs it:
npm install -g pnpmIf a red line shows up midway, follow the suggestion printed on screen first. If that does not unstick it, jump to the “pnpm install fails with a permission error” entry in 09-troubleshooting.md.
The first run does not always go through cleanly. The most common cause is that the nvm activation from step 1 did not carry into the new terminal. Open a fresh terminal, confirm node --version again, and the install usually goes through clean.
3) Quick sanity check
Section titled “3) Quick sanity check”ls node_modules | head -5If you see folder names like react, vite, @supabase, @tanstack, or react-router-dom, the install finished. If nothing shows up, or if the node_modules folder itself does not exist, step 2 failed.
If there is leftover state from a previous attempt, wipe node_modules/ and pnpm-lock.yaml clean and start over:
rm -rf node_modules pnpm-lock.yamlpnpm installStale files from an earlier build occasionally conflict with a fresh install.
4) Check that a build actually runs
Section titled “4) Check that a build actually runs”The real first run is the next step. But it helps to confirm the environment is in shape before you head into it.
pnpm run typechecktsc --noEmit runs once and exits. If there are no errors, you get a short line back; if there are, a red output follows. If errors show up here, dependencies are not in a clean state — wipe and reinstall using the rm -rf block above, then try again.
5) Optional — rename for your own project
Section titled “5) Optional — rename for your own project”At this point the base is sitting on your machine. If you want to make it yours right away, swap the name and description in package.json, the title in index.html, and the first paragraph of the README. Leave LICENSE and COMMERCIAL-LICENSE.md alone — those are the files spelling out that the template’s usage rights flow through a separate commercial agreement with goldtagworks.
You do not have to rename anything right now. Confirm the first real run goes through, then rename. Branding and design tone get repainted in one pass at 05-customize-design.md.
Once pnpm install and pnpm run typecheck both finish cleanly, head to 03-first-run.md.