Skip to content

Commit 8887948

Browse files
committed
feat(docs): add comprehensive documentation pages and update routing
- Add 6 new markdown documentation files (getting-started, cli-reference, presets, custom-configs, faq, snapshot) - Create docs route with page component - Update hooks.server.ts to exclude /docs and /cli-auth from short alias matching - Fix backdrop z-index in docs page styling - Update package dependencies
1 parent 251fe90 commit 8887948

11 files changed

Lines changed: 1197 additions & 5 deletions

package-lock.json

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,8 @@
2020
"typescript": "^5.9.3",
2121
"vite": "^7.3.1",
2222
"wrangler": "^4.61.1"
23+
},
24+
"dependencies": {
25+
"marked": "^17.0.1"
2326
}
2427
}

src/docs/cli-reference.md

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# CLI Reference
2+
3+
The `openboot` command-line tool handles both installation and environment capture.
4+
5+
## Installation Commands
6+
7+
### `openboot`
8+
9+
Run with no arguments to launch the interactive TUI installer. This is the default experience — you'll see a full-screen terminal interface where you can browse and select packages.
10+
11+
```
12+
openboot
13+
```
14+
15+
The TUI starts with the `developer` preset pre-selected. Use arrow keys to navigate, Space to toggle packages, and Enter to confirm.
16+
17+
### `openboot --preset <name>`
18+
19+
Install a preset directly. Available presets: `minimal`, `developer`, `full`.
20+
21+
```
22+
openboot --preset developer
23+
```
24+
25+
This launches the TUI with the specified preset's packages pre-selected.
26+
27+
### `openboot --user <username>/<slug>`
28+
29+
Install from a remote custom config hosted on openboot.dev.
30+
31+
```
32+
openboot --user sarah/frontend-team
33+
```
34+
35+
This fetches the config and launches the TUI with those packages pre-selected.
36+
37+
### `openboot --dry-run`
38+
39+
Preview what would be installed without actually installing anything. Works with any other flag combination.
40+
41+
```
42+
openboot --preset full --dry-run
43+
```
44+
45+
Output shows the full list of formulae and casks that would be installed, along with any shell configuration or macOS preference changes.
46+
47+
## Snapshot Commands
48+
49+
### `openboot snapshot`
50+
51+
Capture your current Mac's development environment. Scans Homebrew packages, macOS preferences, shell config, git config, and installed dev tools.
52+
53+
```
54+
openboot snapshot
55+
```
56+
57+
By default, this scans your system and then walks you through uploading the result to openboot.dev as a shareable config.
58+
59+
### `openboot snapshot --dry-run`
60+
61+
Preview what would be captured without saving or uploading.
62+
63+
```
64+
openboot snapshot --dry-run
65+
```
66+
67+
### `openboot snapshot --json`
68+
69+
Output the snapshot as JSON to stdout. Useful for piping to other tools or inspecting the raw data.
70+
71+
```
72+
openboot snapshot --json
73+
openboot snapshot --json | jq '.homebrew.formulae'
74+
```
75+
76+
### `openboot snapshot --local`
77+
78+
Save the snapshot to `~/.openboot/snapshot.json` instead of uploading to openboot.dev.
79+
80+
```
81+
openboot snapshot --local
82+
```
83+
84+
## Environment Variables
85+
86+
| Variable | Description | Default |
87+
|----------|-------------|---------|
88+
| `OPENBOOT_VERSION` | Override the version of OpenBoot to install | Latest release |
89+
| `OPENBOOT_INSTALL_DIR` | Override the installation directory for the binary | `/usr/local/bin` or `/opt/homebrew/bin` |
90+
91+
### Example
92+
93+
Install a specific version:
94+
95+
```
96+
OPENBOOT_VERSION=0.3.1 curl -fsSL openboot.dev/install | bash
97+
```
98+
99+
Install to a custom directory:
100+
101+
```
102+
OPENBOOT_INSTALL_DIR=~/.local/bin curl -fsSL openboot.dev/install | bash
103+
```

src/docs/custom-configs.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# Custom Configurations
2+
3+
Custom configs let you create, save, and share your own package selections. They're stored on openboot.dev and can be installed by anyone with the URL.
4+
5+
## Create an Account
6+
7+
Sign in with GitHub OAuth — click **Login** in the header or visit the dashboard directly. No email/password required.
8+
9+
## Using the Dashboard
10+
11+
Once logged in, go to your **Dashboard** to manage configs.
12+
13+
### Creating a Config
14+
15+
1. Click **Create Config**
16+
2. Enter a **name** (e.g., "frontend-team") and optional **description**
17+
3. Choose a **base preset** (minimal, developer, or full) as your starting point
18+
4. Add or remove individual packages using the package search
19+
5. Save your config
20+
21+
### Config Options
22+
23+
Each config supports:
24+
25+
- **Homebrew formulae** — CLI tools installed via `brew install`
26+
- **Homebrew casks** — GUI apps installed via `brew install --cask`
27+
- **Custom scripts** — Shell commands that run after package installation (e.g., setting up SSH keys, cloning repos)
28+
- **Dotfiles repo** — A Git URL to your dotfiles repository that gets cloned and stowed
29+
- **macOS preferences** — Whitelisted system settings (Dock autohide, key repeat speed, etc.)
30+
31+
### Import from Brewfile
32+
33+
Already have a Brewfile? Upload it in the dashboard and OpenBoot will parse it into a config. All `brew` and `cask` entries are extracted and mapped to the config format.
34+
35+
## Sharing Configs
36+
37+
Every config gets a shareable install URL:
38+
39+
```
40+
curl -fsSL openboot.dev/<username>/<slug>/install | bash
41+
```
42+
43+
For example, if your GitHub username is `sarah` and your config is named `frontend-team`:
44+
45+
```
46+
curl -fsSL openboot.dev/sarah/frontend-team/install | bash
47+
```
48+
49+
Share this URL in your team's README, onboarding docs, or Slack. Anyone who runs it gets your exact setup.
50+
51+
## Public vs Private Configs
52+
53+
- **Public** (default) — anyone can view and install your config
54+
- **Private** — only you can see the config in the dashboard, but the install URL still works if someone has it
55+
56+
## Custom URL Aliases
57+
58+
Config slugs are auto-generated from the config name, but you can edit them in the dashboard. Keep them short and memorable:
59+
60+
- `openboot.dev/yourname/ios` instead of `openboot.dev/yourname/ios-development-team-2024`
61+
- `openboot.dev/yourname/ml` instead of `openboot.dev/yourname/machine-learning-setup`

src/docs/faq.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# FAQ
2+
3+
## Is OpenBoot free?
4+
5+
Yes. OpenBoot is free and open source (MIT license) for individuals. You can create custom configs, use snapshot, and share setups at no cost. Team management features (org accounts, access controls) are on the roadmap and may have paid tiers.
6+
7+
## Does it work on Linux?
8+
9+
Partially. The Homebrew-based package installation works on Linux since Homebrew supports Linux (Linuxbrew). However, macOS-specific features don't apply:
10+
11+
- macOS preference tweaks are skipped
12+
- Cask installations are skipped (casks are macOS-only)
13+
- Some GUI app detection in snapshot won't work
14+
15+
For Linux, you'll get the CLI tool installations but not the full experience.
16+
17+
## Can I use it for my team?
18+
19+
Yes. The recommended workflow is:
20+
21+
1. Create a custom config on your dashboard with your team's standard tools
22+
2. Share the one-line install URL in your onboarding docs or README
23+
3. New team members run the command and get the exact same environment
24+
25+
Alternatively, a team lead can run `openboot snapshot` on their own machine to capture their proven setup and share it directly.
26+
27+
## Is it safe to pipe curl to bash?
28+
29+
This is a common concern. Here's how OpenBoot handles it:
30+
31+
- The install script is **open source** — review it anytime at [github.com/openbootdotdev/openboot](https://github.com/openbootdotdev/openboot)
32+
- The script is hosted on openboot.dev (Cloudflare Workers) and served over HTTPS
33+
- **No telemetry** is collected — no analytics, no tracking, no phoning home
34+
- You can download and inspect the script before running it: `curl -fsSL openboot.dev/install > install.sh && cat install.sh`
35+
- The binary itself is downloaded from GitHub Releases with checksum verification
36+
37+
## What if I already have Homebrew installed?
38+
39+
OpenBoot detects existing Homebrew installations and skips the Homebrew install step entirely. It also detects already-installed packages and marks them in the TUI so you know what's new versus what's already on your system.
40+
41+
## How do I update OpenBoot?
42+
43+
Re-run the install script:
44+
45+
```
46+
curl -fsSL openboot.dev/install | bash
47+
```
48+
49+
This downloads the latest binary and replaces the existing one. Your configs, snapshots, and auth tokens are not affected.
50+
51+
## Where is my data stored?
52+
53+
- **Configs and user data** — stored in Cloudflare D1 (SQLite-compatible database) on openboot.dev's infrastructure
54+
- **Configs are public by default** — anyone with the URL can install from your config. You can mark configs as private in the dashboard.
55+
- **Auth tokens** — stored locally at `~/.openboot/auth.json` on your machine
56+
- **Local snapshots** — saved to `~/.openboot/snapshot.json` when using `--local`
57+
- **No data is stored on your machine** beyond the binary, auth token, and optional local snapshots
58+
59+
## Can I use OpenBoot without an account?
60+
61+
Yes. You don't need an account to:
62+
63+
- Install using the default presets (`minimal`, `developer`, `full`)
64+
- Use the interactive TUI
65+
- Run `openboot snapshot --local` or `openboot snapshot --json`
66+
67+
An account is only needed to upload configs to openboot.dev and share them via URL.
68+
69+
## What shell does OpenBoot configure?
70+
71+
OpenBoot sets up **Zsh** with **Oh-My-Zsh**, including:
72+
73+
- A curated set of plugins (git, zsh-autosuggestions, zsh-syntax-highlighting)
74+
- A clean theme
75+
- Useful aliases for common developer tasks
76+
77+
If you already have Oh-My-Zsh installed, OpenBoot merges its plugin recommendations without overwriting your existing configuration.

src/docs/getting-started.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Getting Started
2+
3+
OpenBoot is an open-source command-line tool that bootstraps your macOS development environment in minutes. Instead of manually installing Homebrew, CLI tools, GUI apps, configuring your shell, and tweaking macOS settings one by one, OpenBoot handles it all with a single command — through a beautiful interactive TUI that lets you pick exactly what you want.
4+
5+
## System Requirements
6+
7+
- **macOS 12 (Monterey)** or later
8+
- **Apple Silicon (M1/M2/M3/M4)** and **Intel** Macs are both supported
9+
- An internet connection (packages are downloaded from Homebrew)
10+
- Admin privileges (you'll be prompted for your password during install)
11+
12+
## Quick Install
13+
14+
Open Terminal and run:
15+
16+
```
17+
curl -fsSL https://openboot.dev/install | bash
18+
```
19+
20+
That's it. One line.
21+
22+
## What Happens When You Run It
23+
24+
Here's exactly what the install script does, in order:
25+
26+
1. **Downloads the OpenBoot binary** — a small Go binary is fetched from the latest GitHub release and placed in `/usr/local/bin` (Intel) or `/opt/homebrew/bin` (Apple Silicon).
27+
28+
2. **Installs Xcode Command Line Tools** — if not already installed, OpenBoot triggers the macOS CLT installer. These are required for Git, compilers, and Homebrew.
29+
30+
3. **Installs Homebrew** — if Homebrew isn't detected, OpenBoot runs the official Homebrew install script. If you already have Homebrew, it skips this step entirely.
31+
32+
4. **Launches the interactive TUI** — a full-screen terminal interface appears where you can browse and toggle packages on/off using your keyboard. You start with the `developer` preset by default, but every package is individually selectable.
33+
34+
5. **Installs your selections** — once you confirm, OpenBoot installs all selected Homebrew formulae and casks, configures Oh-My-Zsh (with plugins and a theme), sets up useful shell aliases, and applies macOS preference tweaks.
35+
36+
## First Run Experience
37+
38+
When the TUI launches, you'll see:
39+
40+
- **Formulae section** — CLI tools grouped by category (essentials, languages, DevOps, etc.)
41+
- **Casks section** — GUI applications (editors, browsers, utilities, etc.)
42+
- **Navigation** — use arrow keys and Tab to move between sections, Space to toggle individual packages, Enter to confirm
43+
44+
The TUI shows which packages are already installed on your system (marked with a check) so you won't reinstall anything unnecessarily.
45+
46+
After installation completes, restart your terminal or run `source ~/.zshrc` to pick up the new shell configuration.

src/docs/presets.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# Presets
2+
3+
Presets are curated collections of packages designed for different use cases. Each preset is a starting point — when the interactive TUI launches, you can toggle any package on or off before confirming the install.
4+
5+
## Available Presets
6+
7+
### minimal
8+
9+
Lightweight CLI essentials for servers, containers, or developers who prefer a lean setup.
10+
11+
**CLI tools:** curl, wget, jq, yq, ripgrep, fd, bat, eza, fzf, zoxide, htop, btop, tree, tldr, gh, git-delta, lazygit, stow
12+
13+
**GUI apps:** Warp, Raycast, Maccy, Stats
14+
15+
```
16+
curl -fsSL openboot.dev/install | bash -s -- --preset minimal
17+
```
18+
19+
### developer (recommended)
20+
21+
A ready-to-code Mac setup with everything you need to start building immediately. Includes all of `minimal` plus languages, Docker, editors, and browsers.
22+
23+
**CLI tools (additions over minimal):** node, go, pnpm, docker, docker-compose, tmux, neovim, httpie
24+
25+
**GUI apps (additions over minimal):** VS Code, OrbStack, Chrome, Arc, Postman, Notion, Scroll Reverser
26+
27+
```
28+
curl -fsSL openboot.dev/install | bash -s -- --preset developer
29+
```
30+
31+
### full
32+
33+
The complete dev environment — every language, DevOps tool, database, and AI utility we recommend. Best for polyglot developers, DevOps engineers, or anyone who wants it all.
34+
35+
**CLI tools (additions over developer):** python, uv, rustup, deno, bun, kubectl, helm, k9s, terraform, awscli, sqlite, postgresql, redis, duckdb, ollama, llm
36+
37+
**GUI apps (additions over developer):** Cursor, Firefox, Proxyman, Obsidian, Figma, IINA, Keka, AlDente, Rectangle
38+
39+
```
40+
curl -fsSL openboot.dev/install | bash -s -- --preset full
41+
```
42+
43+
## Customizing During Install
44+
45+
You don't have to accept a preset as-is. When the interactive TUI launches:
46+
47+
1. The preset's packages come pre-selected
48+
2. Use **arrow keys** to navigate the package list
49+
3. Press **Space** to toggle any package on or off
50+
4. Press **Enter** to confirm and begin installation
51+
52+
This means you can start with `developer` but add `kubectl` from `full`, or remove `notion` if you don't use it. The preset is just the starting selection.
53+
54+
## Non-Interactive Install
55+
56+
If you want to skip the TUI and install a preset exactly as defined (useful for CI or scripting), the `--preset` flag with no TUI will install everything in the preset without prompting:
57+
58+
```
59+
curl -fsSL openboot.dev/install | bash -s -- --preset developer
60+
```
61+
62+
Add `--dry-run` to preview what would be installed without actually installing anything:
63+
64+
```
65+
curl -fsSL openboot.dev/install | bash -s -- --preset developer --dry-run
66+
```

0 commit comments

Comments
 (0)