Getting Set Up
Installing the repository
To help you get set up, follow this checklist:
- Set up a Github account (add your buttonschool.com email under Settings -> Emails if you have an account already)
- Ask Nevan (or another admin) for access to the repo, from your account
- Install homebrew on your computer
- Install VS Code (we recommend using Homebrew:
brew install --cask visual-studio-code, or download from code.visualstudio.com) - If you don’t have one, make a directory for projects on your computer (we recommend
~/projectsfor easy access) - In that directory, clone the
buttonschoolrepo (git clone https://github.com/buttonschool/buttonschool.git) - Open the repo in VS Code using the command line (
code .)
Running the setup script
Once you’ve cloned the repository, run the setup script to install dependencies and configure your environment:
chmod +x setup.sh && ./setup.sh
This script will:
- Install required packages from the
Brewfile(including git, node, python, pnpm, and development tools) - Install all pnpm dependencies for the workspace
- Set up your development environment
The setup script uses Homebrew to install system dependencies, so make sure Homebrew is installed first.
Verifying your setup
After running the setup script, verify everything is working:
- Check pnpm is installed:
pnpm --version - Verify dependencies are installed:
pnpm install(should complete quickly if already installed) - Test Chalkboard:
pnpm chalk(should start a dev server) - Test handbook preview:
pnpm handbook(should start a dev server)
If any of these fail, check the error messages and ensure all prerequisites from the checklist are installed.
What’s in the repo?
We have several main directories we work out of:
appscontentpackageswebsiteslab
Content
The bulk of our work happens in content—this is where we keep all our course materials and internal documentation.
Apps
The apps directory contains our internal applications for operations, planning, and feedback—things like the ops hub, launch desk, leads tool, and feedback reviewer.
Packages
The packages directory contains shared libraries and utilities, including Chalk, Workbench, Blueprint, the design system, and the database layer.
Websites
In the websites directory, we keep the source files for our public-facing websites, primarily buttonschool.com.
Lab
The lab directory is for generators, exporters, experimental tools, and prototypes.
For more details on the repository structure, see Repository Structure.
What’s next?
Now that you’re set up, you might want to:
- Learn about the repository structure to understand how things are organized
- Review common workflows for making changes
- Explore the tools and packages available in the repo
- Check out the Style Guide if you’ll be writing content