Developer Onboarding
How to set up a new machine for development on these projects.
Table of Contents
- Prerequisites
- Clone the Repos
- Make Scripts Executable
- Install Dependencies
- Compile Shared Tools
- Open in VSCode
- Verify Setup
- Project-Specific Config
- Daily Workflow
- Troubleshooting
- Questions?
Prerequisites
You'll need these installed first:
- Node.js (v20 or later) — JavaScript runtime
- Yarn — package manager (preferred over npm)
- Git — version control
- VSCode — editor (recommended)
Installing Prerequisites on Mac
# Install Homebrew (if not already installed)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install Node.js via nvm (recommended for managing Node versions)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# Restart terminal, then:
nvm install 20
nvm use 20
# Install Yarn
npm install -g yarn
# Install Git (usually pre-installed on Mac, but just in case)
brew install git
# Install VSCode
brew install --cask visual-studio-codeClone the Repos
All three repos must be siblings in the same parent directory:
cd ~/GitHub
# Clone all three as siblings
git clone git@github.com:gizmolab10/shared.git shared
git clone git@github.com:gizmolab10/webseriously.git ws
git clone git@github.com:gizmolab10/di.git diYour folder structure should look like:
~/GitHub/
shared/
ws/
di/Important: The relative paths between repos matter. Scripts and configs assume this sibling structure.
Make Scripts Executable
The shared tools include shell scripts that need execute permission:
chmod +x ~/GitHub/shared/tools/*.shInstall Dependencies
Each project has its own dependencies:
# Shared tools (for TypeScript compilation)
cd ~/GitHub/shared/tools
yarn install
# Webseriously
cd ~/GitHub/ws
yarn install
# Di
cd ~/GitHub/di
yarn installCompile Shared Tools
The TypeScript tools need to be compiled before use:
cd ~/GitHub/shared/tools
npx tscThis creates .js files in each project's notes/tools/dist/ directory.
Open in VSCode
Open each repo as a separate VSCode window:
code ~/GitHub/shared
code ~/GitHub/ws
code ~/GitHub/diOr create a workspace that includes all three.
Verify Setup
Test shared tools
cd ~/GitHub/ws
bash ~/GitHub/shared/tools/analyze-counts.sh .Should print file/line counts for the codebase.
Test webseriously
cd ~/GitHub/ws
yarn devShould start the dev server. Open http://localhost:5173 in your browser.
Test di
cd ~/GitHub/di
yarn devShould start the dev server. Open http://localhost:5174 in your browser.
Test docs build (webseriously)
cd ~/GitHub/ws
yarn docs:devShould start the VitePress docs server.
Project-Specific Config
Each project has a config file at notes/tools/config.sh with project-specific settings:
# Example: ws/notes/tools/config.sh
NOTES_DIR="notes"
DOCS_SOURCE_DIR="notes/designs"
DOCS_OUTPUT="src/lib/ts/files/Docs.ts"
NETLIFY_SITE_ID="0770f16d-e009-48e8-a548-38a5bb2c18f5"You shouldn't need to edit these unless you're setting up a new project.
Daily Workflow
Starting work
Pull latest changes from all repos:
bashcd ~/GitHub/shared && git pull cd ~/GitHub/ws && git pull cd ~/GitHub/di && git pullStart the dev server for whichever project you're working on:
bashcd ~/GitHub/ws && yarn dev # or cd ~/GitHub/di && yarn dev
Making changes
- Edit files in VSCode
- Save — the dev server hot-reloads automatically
- Test in browser
Committing
cd ~/GitHub/ws # or whichever repo you changed
git add .
git commit -m "describe your changes"
git pushIf you edited shared
Remember to push shared separately:
cd ~/GitHub/shared
git add .
git commit -m "describe your changes"
git pushAnd tell teammates to pull shared.
Troubleshooting
"command not found: yarn"
Yarn isn't installed. Run:
npm install -g yarn"permission denied" when running scripts
Scripts aren't executable. Run:
chmod +x ~/GitHub/shared/tools/*.shDev server won't start
Dependencies might be missing or outdated:
cd ~/GitHub/ws # or di
rm -rf node_modules
yarn installTypeScript errors in shared/tools
Compile the TypeScript:
cd ~/GitHub/shared/tools
npx tscGit permission denied
Your SSH key isn't set up. Follow GitHub's guide: https://docs.github.com/en/authentication/connecting-to-github-with-ssh
Questions?
Ask Jonathan. Or check the guides in shared/guides/ — especially:
collaborate/chat.md— how to work with Claude effectivelycollaborate/repo.md— how the shared architecture worksdevelop/style.md— code conventions