No description
- TypeScript 44.5%
- Kotlin 32.8%
- Rust 15.5%
- SCSS 4.2%
- Shell 1.7%
- Other 1.1%
| .beads | ||
| .mvn/wrapper | ||
| docs | ||
| instances | ||
| jp_focus_android | ||
| jp_focus_collab | ||
| jp_focus_deploy | ||
| jp_focus_editor_web | ||
| jp_focus_service_rs | ||
| jp_focus_tui | ||
| jp_focus_ui | ||
| runtime | ||
| scripts | ||
| shared | ||
| skills | ||
| worktrees | ||
| .envrc | ||
| .gitignore | ||
| AGENTS.md | ||
| docker-compose.yml | ||
| Jenkinsfile | ||
| justfile | ||
| logo.txt | ||
| mvnw | ||
| mvnw.cmd | ||
| README.md | ||
| todo.txt | ||
JP Focus Workspace
JP Focus is a task and focus management platform with a web UI, Android app, backend API, realtime collaboration server, and deployment stack.
The repository now supports an instance-oriented worktree layout:
instances/jp_focus:<slug>/for managed Git worktree checkoutsruntime/<slug>/for generated per-instance state such as Postgres data, OpenAPI output, TLS material, and Cargo target outputworktrees/as a legacy location that is still recognized by the bootstrap scripts
The root checkout still works, but new managed worktrees should be created under instances/.
Repository Layout
jp_focus_ui/- React 19 web app (Vite, TanStack Router/Query, TipTap)jp_focus_android/- Android app (Jetpack Compose, Material 3)jp_focus_service_rs/- Rust backend APIjp_focus_collab/- Hocuspocus/Yjs collaboration serverjp_focus_editor_web/- Standalone minimal rich text editor bundle for Android WebViewjp_focus_deploy/- Docker compose, nginx, deploy scripts, env templatesinstances/- Preferred location for managed worktree checkoutsruntime/- Generated per-instance state shared by all checkouts
Quick Start
From a real checkout, typically instances/jp_focus:develop/ or the root checkout:
just bootstrap
just db-up
just service
just ui
Useful instance helpers:
just envprints the generated instance environmentjust port-mapprints the derived port layoutjust worktree-add <name>creates a managed checkout underinstances/just worktree-listshows every registered worktreejust worktree-rm <name>removes a managed worktree and its runtime state
Prerequisites:
- Bun
- Rust
- Docker
Web UI
cd jp_focus_ui
bun install
bun --bun run dev
Backend API
cd jp_focus_service_rs
cargo run
Realtime Collab Server
cd jp_focus_collab
npm install
npm run dev
Standalone Editor Bundle (for Android WebView)
cd jp_focus_editor_web
bun install
bun run dev
Build and Verify
- Web UI:
cd jp_focus_ui && bun --bun run build - Android compile:
cd jp_focus_android && ./gradlew :app:compileDebugKotlin - Backend verify:
cd jp_focus_service_rs && cargo test - Editor bundle:
cd jp_focus_editor_web && bun run build
Deployment
Deploy tooling lives in jp_focus_deploy/.
- Environment files:
jp_focus_deploy/env/*.sh - Compose templates:
jp_focus_deploy/docker/*/template/docker-compose.yml - Deploy script:
jp_focus_deploy/deploy.sh
The root Jenkinsfile supports path-aware builds and image publishing for:
jp_focus_uijp_focus_servicejp_focus_editor_webjp_focus_collab
Notes
- Do not manually edit generated route files in the web app (for example
jp_focus_ui/src/routeTree.gen.ts). - The Android rich text editor is served from
jp_focus_editor_weband loaded in-app via WebView for full TipTap/Yjs feature parity. just bootstrapgenerates.env.worktree,.cargo/config.toml, and per-instance runtime directories underruntime/<slug>/.