Skip to content

Commit 8c5d99b

Browse files
committed
docs(copy): rewrite all copy to remove AI marketing tone
- Landing page: replace marketing clichés with direct, realistic descriptions - README: simplify structure, remove excessive formatting, add technical context - Docs: remove sales-y language, use natural conversational tone - All pages: replace overpromises with honest expectations (e.g., "10-30 minutes" instead of "minutes") The goal is to sound like a human describing a real tool, not an AI-generated product launch.
1 parent e8419cd commit 8c5d99b

7 files changed

Lines changed: 149 additions & 212 deletions

File tree

README.md

Lines changed: 51 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -1,133 +1,79 @@
11
# openboot.dev
22

3-
> Website, dashboard, and API for [OpenBoot](https://github.com/openbootdotdev/openboot) — one-line macOS dev environment setup.
3+
Web dashboard and install API for [OpenBoot](https://github.com/openbootdotdev/openboot).
44

55
[![Deploy](https://github.com/openbootdotdev/openboot.dev/actions/workflows/deploy.yml/badge.svg)](https://github.com/openbootdotdev/openboot.dev/actions/workflows/deploy.yml)
66

77
**Live at [openboot.dev](https://openboot.dev)**
88

9-
## What This Repo Does
9+
This repo handles the web interface for managing configs, serving install scripts, and storing snapshots. The CLI lives at [openbootdotdev/openboot](https://github.com/openbootdotdev/openboot).
1010

11-
- **Landing page** — product overview, presets, install commands
12-
- **Dashboard** — create, edit, duplicate, and share custom configs
13-
- **Install API** — serves configs for the OpenBoot CLI
14-
- **Brewfile import** — parse and convert Brewfiles into OpenBoot configs
15-
- **Homebrew search** — live package search from the dashboard
16-
- **CLI auth** — device flow for authenticating the CLI via browser
17-
- **Snapshot API** — receive and store machine snapshots from the CLI
11+
## What's in Here
1812

19-
## Tech Stack
13+
- Landing page + docs (SvelteKit + mdsvex)
14+
- Dashboard for creating and editing configs
15+
- Install script generator (the URL you curl from)
16+
- Brewfile import parser
17+
- Package search proxies (Homebrew, NPM)
18+
- OAuth login (GitHub, Google) + CLI device auth flow
19+
- Snapshot upload API (CLI posts your machine state here)
2020

21-
| Layer | Technology |
22-
|-------|-----------|
23-
| Framework | [SvelteKit 5](https://svelte.dev/) + TypeScript |
24-
| Styling | CSS variables (dark/light theme) |
25-
| Auth | GitHub & Google OAuth |
26-
| Database | Cloudflare D1 (SQLite) |
27-
| Hosting | Cloudflare Workers + Pages |
21+
## Stack
2822

29-
## Development
23+
SvelteKit 5 + TypeScript, Cloudflare Workers + D1 (SQLite), GitHub/Google OAuth.
24+
25+
## Running Locally
3026

3127
```bash
3228
npm install
33-
34-
# Apply all migrations automatically
35-
wrangler d1 migrations apply openboot --local
36-
29+
wrangler d1 migrations apply openboot --local # Sets up DB
3730
npm run dev
3831
```
3932

40-
Create a `.dev.vars` file:
33+
Create `.dev.vars` with your OAuth credentials:
4134

4235
```
43-
GITHUB_CLIENT_ID=your_github_client_id
44-
GITHUB_CLIENT_SECRET=your_github_client_secret
36+
GITHUB_CLIENT_ID=...
37+
GITHUB_CLIENT_SECRET=...
38+
GOOGLE_CLIENT_ID=...
39+
GOOGLE_CLIENT_SECRET=...
4540
```
4641

4742
## Deployment
4843

49-
Automatic on push to `main` via GitHub Actions.
44+
Push to `main` and GitHub Actions deploys to Cloudflare. Runs migrations before deploying code.
5045

51-
```bash
52-
npm run build
53-
wrangler deploy
54-
```
46+
Secrets needed: `CLOUDFLARE_API_TOKEN`, `CLOUDFLARE_ACCOUNT_ID`
5547

56-
GitHub repository secrets required: `CLOUDFLARE_API_TOKEN`, `CLOUDFLARE_ACCOUNT_ID`
57-
58-
## API Endpoints
59-
60-
### Install Scripts
61-
62-
| Endpoint | Description |
63-
|----------|-------------|
64-
| `GET /install` | Default install script |
65-
| `GET /:alias` | Install script for short alias |
66-
| `GET /:username/:slug/install` | Install script for specific config |
67-
| `GET /:username/:slug/config` | Config JSON for CLI consumption |
68-
69-
### Auth
70-
71-
| Endpoint | Description |
72-
|----------|-------------|
73-
| `GET /api/auth/login` | GitHub/Google OAuth login redirect |
74-
| `GET /api/auth/callback/github` | GitHub OAuth callback |
75-
| `GET /api/auth/callback/google` | Google OAuth callback |
76-
| `GET /api/auth/logout` | Clear session |
77-
| `POST /api/auth/cli/start` | Start CLI device auth flow |
78-
| `POST /api/auth/cli/approve` | Approve CLI auth request |
79-
| `GET /api/auth/cli/poll` | Poll CLI auth status |
80-
81-
### Configs
82-
83-
| Endpoint | Description |
84-
|----------|-------------|
85-
| `GET /api/user` | Current user info |
86-
| `GET /api/configs` | List user's configs |
87-
| `POST /api/configs` | Create config |
88-
| `GET /api/configs/:slug` | Get config by slug |
89-
| `PUT /api/configs/:slug` | Update config |
90-
| `DELETE /api/configs/:slug` | Delete config |
91-
| `POST /api/configs/from-snapshot` | Create config from CLI snapshot |
92-
93-
### Utilities
94-
95-
| Endpoint | Description |
96-
|----------|-------------|
97-
| `POST /api/brewfile/parse` | Parse Brewfile content into packages |
98-
| `GET /api/homebrew/search?q=` | Search Homebrew packages |
99-
| `GET /api/npm/search?q=` | Search NPM packages |
100-
101-
## Database Schema
102-
103-
```sql
104-
CREATE TABLE users (
105-
id TEXT PRIMARY KEY,
106-
github_id TEXT UNIQUE,
107-
username TEXT UNIQUE,
108-
email TEXT,
109-
avatar_url TEXT,
110-
created_at TEXT
111-
);
112-
113-
CREATE TABLE configs (
114-
id TEXT PRIMARY KEY,
115-
user_id TEXT,
116-
slug TEXT,
117-
name TEXT,
118-
description TEXT,
119-
base_preset TEXT,
120-
packages TEXT,
121-
custom_script TEXT,
122-
dotfiles_repo TEXT,
123-
snapshot TEXT,
124-
alias TEXT UNIQUE,
125-
visibility TEXT DEFAULT 'unlisted',
126-
install_count INTEGER DEFAULT 0,
127-
created_at TEXT,
128-
updated_at TEXT
129-
);
130-
```
48+
## Key Endpoints
49+
50+
**Install scripts** (what the CLI curls):
51+
- `GET /:alias` — Short alias redirect or install script (curl-detected)
52+
- `GET /:username/:slug/install` — Config install script
53+
- `GET /:username/:slug/config` — Config JSON for CLI
54+
55+
**Configs** (CRUD for dashboard):
56+
- `GET/POST /api/configs` — List/create
57+
- `GET/PUT/DELETE /api/configs/:slug` — Read/update/delete
58+
- `POST /api/configs/from-snapshot` — CLI snapshot upload
59+
60+
**Auth**:
61+
- OAuth callbacks at `/api/auth/callback/{github,google}`
62+
- CLI device flow: `/api/auth/cli/{start,approve,poll}`
63+
64+
**Utilities**:
65+
- `POST /api/brewfile/parse` — Brewfile → package list
66+
- `GET /api/homebrew/search?q=...` — Search Homebrew
67+
- `GET /api/npm/search?q=...` — Search NPM
68+
69+
## Database
70+
71+
D1 (SQLite). Two tables: `users` and `configs`. See `migrations/` for schema. Key fields:
72+
73+
- `configs.packages` — JSON array of {name, type, desc}
74+
- `configs.snapshot` — JSON object from CLI `openboot snapshot`
75+
- `configs.visibility``public` | `unlisted` | `private`
76+
- `configs.alias` — short URL (e.g., `openboot.dev/dev` → redirects)
13177

13278
## Related
13379

src/docs/custom-configs.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ Build your own setup, save it on openboot.dev, and share it as a one-line instal
1111

1212
## Creating a Config
1313

14-
1. **Sign in** with GitHub or Googleclick **Login** in the header (no email/password needed)
15-
2. Go to your **[Dashboard](/dashboard)**
14+
1. Sign in with GitHub or Googleclick **Login** in the header
15+
2. Go to your [Dashboard](/dashboard)
1616
3. Click **Create Config**
17-
4. Pick a **base preset** (`minimal`, `developer`, or `full`) as your starting point
18-
5. **Add or remove packages** using the search
17+
4. Pick a base preset (`minimal`, `developer`, or `full`) to start from
18+
5. Add or remove packages using search
1919
6. Save
2020

2121
## What a Config Can Include
@@ -36,13 +36,13 @@ Already have a Brewfile? Upload it in the dashboard. OpenBoot parses all `brew`
3636

3737
## Sharing
3838

39-
Every config gets a URL:
39+
Every config gets an install command:
4040

4141
```bash
4242
openboot install sarah/frontend-team
4343
```
4444

45-
Put it in your README, onboarding docs, or Slack. One command, same environment for everyone.
45+
Put it in your README, onboarding docs, or Slack. One command, everyone gets the same setup.
4646

4747
## Visibility
4848

src/docs/faq.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ order: 12
99

1010
## Is OpenBoot free?
1111

12-
Yes — free and open source (MIT license). Create configs, use snapshot, share setups, all at no cost. Team management features (org accounts, access controls) are on the roadmap and may have paid tiers.
12+
Yes. Free and open source (MIT license). Create configs, snapshot your setup, share with your team—no cost. Team management features (org accounts, access controls) might have paid tiers later.
1313

1414
## Why not just use Homebrew directly?
1515

16-
Homebrew installs packages. OpenBoot sets up your **entire** environment — packages, GUI apps, shell configuration, dotfiles, and macOS preferences in one command. Think of it as Homebrew + shell setup + dotfiles + system preferences, orchestrated together with an interactive TUI for picking what you want.
16+
Homebrew installs packages. OpenBoot installs packages **and** configures your shell, links dotfiles, and applies macOS preferences. All in one run with a TUI to pick what you want.
1717

18-
If you're happy managing each of those separately, you don't need OpenBoot. If you'd rather do it in 5 minutes instead of an hour, give it a try.
18+
If you're fine managing those separately, you don't need this. If you'd rather automate it, try OpenBoot.
1919

2020
## Should I use Homebrew or the one-line installer?
2121

@@ -33,12 +33,12 @@ Both methods install the exact same binary.
3333

3434
## Is the one-line installer safe?
3535

36-
Fair question. Here's how OpenBoot handles it:
36+
Fair question. Here's how it works:
3737

38-
- The install script is **open source**review it at [github.com/openbootdotdev/openboot](https://github.com/openbootdotdev/openboot)
38+
- Install script is open sourcereview it at [github.com/openbootdotdev/openboot](https://github.com/openbootdotdev/openboot)
3939
- Hosted on openboot.dev (Cloudflare Workers), served over HTTPS
40-
- **Zero telemetry**no analytics, no tracking, no phoning home
41-
- The binary is downloaded from GitHub Releases with **SHA256 checksum verification**
40+
- Zero telemetryno analytics, no tracking, nothing phones home
41+
- Binary downloaded from GitHub Releases with SHA256 checksum verification
4242
- You can inspect the script before running it:
4343

4444
```bash

src/docs/presets.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ order: 3
77

88
# Presets
99

10-
Three curated starting points. Pick one, then customize it in the TUI before installingadd what you want, remove what you don't.
10+
Three curated package sets. Pick one and customize it in the TUI before installingadd what you need, remove what you don't.
1111

1212
## At a Glance
1313

@@ -41,7 +41,7 @@ curl -fsSL https://openboot.dev/install.sh | bash -s -- --preset minimal
4141

4242
## developer
4343

44-
The recommended starting point. Everything you need to start building, nothing you don't.
44+
Default preset. What most developers need without extra stuff you won't use.
4545

4646
**Adds over minimal:**
4747
- **CLI:** node, go, pnpm, docker, docker-compose, lazydocker, tmux, neovim, httpie, pre-commit
@@ -81,16 +81,16 @@ curl -fsSL https://openboot.dev/install.sh | bash -s -- --preset full
8181
```
8282
</details>
8383

84-
## Customizing During Install
84+
## Customizing Before Install
8585

86-
Presets are just the starting selection. When the TUI launches:
86+
Presets are starting selections, not locked-in choices. When the TUI opens:
8787

88-
1. The preset's packages come **pre-selected**
89-
2. Use **arrow keys** to navigate, **Tab** to switch between formulae and casks
90-
3. Press **Space** to toggle any package on or off
91-
4. Press **Enter** to confirm and install
88+
1. Preset packages are pre-selected
89+
2. **Arrow keys** to navigate, **Tab** to switch between formulae and casks
90+
3. **Space** to toggle any package on or off
91+
4. **Enter** to confirm and start installing
9292

93-
Want `developer` but with `kubectl`? Select `developer`, then toggle `kubectl` on. Don't use Notion? Toggle it off. The preset is the starting point, not the final answer.
93+
Want `developer` with `kubectl` added? Pick `developer`, then toggle `kubectl` on. Don't use Notion? Toggle it off. Customize before you commit.
9494

9595
## Skipping the TUI
9696

0 commit comments

Comments
 (0)