• Getting Set Up

    Installing the repository

    To help you get set up, follow this checklist:

    1. Set up a Github account (add your buttonschool.com email under Settings -> Emails if you have an account already)
    2. Ask Nevan (or another admin) for access to the repo, from your account
    3. Install homebrew on your computer
    4. Install VS Code (we recommend using Homebrew: brew install --cask visual-studio-code, or download from code.visualstudio.com)
    5. If you don’t have one, make a directory for projects on your computer (we recommend ~/projects for easy access)
    6. In that directory, clone the buttonschool repo (git clone https://github.com/buttonschool/buttonschool.git)
    7. 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:

    1. Check pnpm is installed: pnpm --version
    2. Verify dependencies are installed: pnpm install (should complete quickly if already installed)
    3. Test Chalkboard: pnpm chalk (should start a dev server)
    4. 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:

    • apps
    • content
    • packages
    • websites
    • lab

    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: