Skip to content
Author with AI

Development Workflow

If you’re developing the Runbooks tool itself, this guide covers the day-to-day workflow.

All tools are managed via mise. Install mise, then run:

Terminal window
mise install

This installs everything you need: Node.js, bun, and just (command runner).

A single command starts the full Electron development environment:

Terminal window
just dev

This runs electron-vite in dev mode with hot module replacement (HMR) for the renderer process.

Frontend (web/src/):

  • Edit files in web/src/
  • Changes auto-reload in the Electron renderer via HMR
  • No restart needed

Backend (src/):

  • Edit files in src/
  • Triggers a main process rebuild and restart

Electron main process (electron/):

  • Edit files in electron/
  • Triggers a rebuild and restart of the main process

Runbook changes:

  • Edit the runbook file you’re testing with
  • Refresh the window
  • No restart needed
Terminal window
# Run all tests
just test
# Unit tests (Vitest)
just test-unit
# End-to-end tests (Playwright)
just test-e2e
Terminal window
# Build the app (electron-vite build)
just build
# Package distributable (electron-builder)
just package
Terminal window
# Lint (oxlint)
just lint
# Type checking (tsc)
just typecheck

This project uses shadcn/ui for UI components.

To add a new component:

Terminal window
cd web
bunx shadcn@latest add <component-name>

For example:

Terminal window
bunx shadcn@latest add dialog
bunx shadcn@latest add dropdown-menu

Components are added to /web/src/components/ui/.