renameApp() killed the old process with .kill() but didn't wait for it to actually exit before restarting on the same port. The OS still had the port bound, causing the new process to fail with "port is taken". Additionally, the old process's exit handler would fire after the rename and corrupt the app's state—releasing the new process's port, setting state to 'invalid', and nullifying the proc reference. Fix by: - Making renameApp async and awaiting proc.exited before proceeding - Guarding the exit handler to bail out when a newer process has taken over https://claude.ai/code/session_01W9GF8Cy7T6V2rnVcoNd1Nc |
||
|---|---|---|
| apps | ||
| bin | ||
| docs | ||
| scripts | ||
| src | ||
| templates | ||
| .gitignore | ||
| .npmrc | ||
| bun.lock | ||
| CLAUDE.md | ||
| package.json | ||
| PID.md | ||
| README.md | ||
| tsconfig.json | ||
🐾 Toes
Toes is a personal web server you run in your home.
Plug it in, turn it on, and forget about the cloud.
quickstart
- Plug in and turn on your Toes computer.
- Tell Toes about your WiFi by <using dark @probablycorey magick>.
- Visit https://toes.local to get started!
features
- Hosts bun/hono/hype webapps - both SSR and SPA.
toesCLI for pushing and pulling from your server.toesCLI for local dev mode.- https://toes.local web UI for managing your projects.
- Per-branch staging environments for Claude.
cli configuration
by default, the CLI connects to localhost:3000 in dev and toes.local:80 in production.
toes config # show current host
TOES_URL=http://192.168.1.50:3000 toes list # connect to IP
TOES_URL=http://mypi.local toes list # connect to hostname
set NODE_ENV=production to default to toes.local:80.
fun stuff
- textOS (TODO, more?)
- Claude that knows about all your toes APIS and your projects.
- HTTPS Tunnel for sharing your apps with the world.
- Charts and graphs in the webUI.
february goal
- Corey and Chris are running Toes servers on their home networks, hosting personal projects and games.