Clone and install
If you are coming from 01-prerequisites.md, this step usually takes between five and ten minutes.
1) Get the base into your own project
Section titled “1) Get the base into your own project”There are two ways to grab the base. If git is new to you, the GitHub Template route is friendlier.
A. GitHub Template — recommended
Section titled “A. GitHub Template — recommended”- Open this base’s GitHub page.
- Click the green Use this template button in the top-right corner and pick Create a new repository.
- Pick a name for your new repo under your own GitHub account, e.g.
my-extension. - Click Create repository.
That gives you a fresh copy of the base under your own account. Now pull that copy onto your local machine. Open a terminal and run:
cd ~/Desktop # or any working folder you prefergit clone https://github.com/<your-id>/my-extension.gitcd my-extensionReplace <your-id> with your own GitHub username.
B. Plain git clone (if you are already comfortable with git)
Section titled “B. Plain git clone (if you are already comfortable with git)”git clone https://github.com/<owner>/chrome-ext-base.git my-extensioncd my-extensiongit remote remove origin # disconnect the base's remote# Create an empty repo on your GitHub account, then point this clone at it:# git remote add origin https://github.com/<your-id>/my-extension.git2) Confirm your GitHub repo is the one wired up
Section titled “2) Confirm your GitHub repo is the one wired up”From this point on, every commit you make flows into your own GitHub repo. Check the wiring once and move on.
git remote -vIf you came through route A, two lines should appear:
origin https://github.com/<your-id>/my-extension.git (fetch)origin https://github.com/<your-id>/my-extension.git (push)If your own repo URL sits in the origin slot, you are done. From here a single git push lifts your changes to your repo.
If you came through route B and either origin is missing or still points at the base, create an empty repo on your GitHub account first, then attach it with these two lines:
git remote add origin https://github.com/<your-id>/my-extension.gitgit push -u origin mainThe -u flag pins this destination so later pushes only need git push. You only need it this once.
The base repo gets re-attached as a second remote named base in 10-staying-up-to-date.md. origin for your repo and base for the ddakit update channel end up living side by side.
3) Install dependencies
Section titled “3) Install dependencies”bash init.shThis single line walks through three things in order.
- It checks that your Node.js is version 20 or newer.
- It runs
pnpm installto pull dependencies. - It runs the build once to confirm your environment is in good shape.
If something in the middle goes red, follow whatever the script tells you on screen first. If that does not clear it, the “init.sh failed” section of 06-troubleshooting.md is the next stop.
4) Quick sanity check
Section titled “4) Quick sanity check”ls node_modules | head -5Folders like react, vite, and @crxjs should appear in the output. That confirms the install worked. If nothing shows up, or if it says node_modules does not exist, step 2 did not complete.
If a previous attempt left files behind, clear node_modules/ and pnpm-lock.yaml (if it exists) and start over.
rm -rf node_modules pnpm-lock.yamlbash init.shLeftovers from a previous build sometimes collide with the fresh install.
5) (Optional) Make it your project
Section titled “5) (Optional) Make it your project”At this point the base is sitting on your machine, ready to be turned into your extension. If you want to convert it into your own project right now, the post-clone checklist walks through swapping out package.json and a few other files with your own information. The base’s LICENSE stays as-is; it states that your right to use the template is governed by your commercial license agreement with goldtagworks.
Doing all of that immediately is not required. It is also fine to confirm the first run works before you customize anything.
If init.sh finished cleanly, move on to 03-first-run.md.