No description
  • TypeScript 44.5%
  • Kotlin 32.8%
  • Rust 15.5%
  • SCSS 4.2%
  • Shell 1.7%
  • Other 1.1%
Find a file
2026-03-21 23:13:47 +01:00
.beads Close deployment prep bead 2026-02-22 16:57:58 +01:00
.mvn/wrapper chore(monorepo): add root monorepo baseline 2026-02-14 01:57:01 +01:00
docs add forgejo and jenkins automation helpers 2026-03-21 22:49:38 +01:00
instances feat: worktree harness and instance management 2026-03-17 14:18:08 +01:00
jp_focus_android Prepare deploy and CI for Rust service rollout 2026-02-22 16:56:32 +01:00
jp_focus_collab Add collaborative focus doc support 2026-03-07 00:53:58 +01:00
jp_focus_deploy Add task mentions and HTTPS local dev support 2026-03-07 01:19:25 +01:00
jp_focus_editor_web Add collaborative focus doc support 2026-03-07 00:53:58 +01:00
jp_focus_service_rs Fix service CI swagger UI download 2026-03-21 23:13:47 +01:00
jp_focus_tui Prepare deploy and CI for Rust service rollout 2026-02-22 16:56:32 +01:00
jp_focus_ui redesign 2026-03-21 22:37:06 +01:00
runtime feat: worktree harness and instance management 2026-03-17 14:18:08 +01:00
scripts add forgejo and jenkins automation helpers 2026-03-21 22:49:38 +01:00
shared Prepare deploy and CI for Rust service rollout 2026-02-22 16:56:32 +01:00
skills Prepare deploy and CI for Rust service rollout 2026-02-22 16:56:32 +01:00
worktrees feat: worktree harness and instance management 2026-03-17 14:18:08 +01:00
.envrc feat: worktree harness and instance management 2026-03-17 14:18:08 +01:00
.gitignore feat: worktree harness and instance management 2026-03-17 14:18:08 +01:00
AGENTS.md rm bd 2026-03-07 01:23:02 +01:00
docker-compose.yml add managed worktree harness foundation 2026-03-11 01:59:56 +01:00
Jenkinsfile Add deploy .env loading for reusable secrets 2026-02-22 17:04:31 +01:00
justfile add forgejo and jenkins automation helpers 2026-03-21 22:49:38 +01:00
logo.txt chore(monorepo): add root monorepo baseline 2026-02-14 01:57:01 +01:00
mvnw chore(monorepo): add root monorepo baseline 2026-02-14 01:57:01 +01:00
mvnw.cmd chore(monorepo): add root monorepo baseline 2026-02-14 01:57:01 +01:00
README.md feat: worktree harness and instance management 2026-03-17 14:18:08 +01:00
todo.txt chore(monorepo): add root monorepo baseline 2026-02-14 01:57:01 +01:00

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 checkouts
  • runtime/<slug>/ for generated per-instance state such as Postgres data, OpenAPI output, TLS material, and Cargo target output
  • worktrees/ 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 API
  • jp_focus_collab/ - Hocuspocus/Yjs collaboration server
  • jp_focus_editor_web/ - Standalone minimal rich text editor bundle for Android WebView
  • jp_focus_deploy/ - Docker compose, nginx, deploy scripts, env templates
  • instances/ - Preferred location for managed worktree checkouts
  • runtime/ - 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 env prints the generated instance environment
  • just port-map prints the derived port layout
  • just worktree-add <name> creates a managed checkout under instances/
  • just worktree-list shows every registered worktree
  • just 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_ui
  • jp_focus_service
  • jp_focus_editor_web
  • jp_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_web and loaded in-app via WebView for full TipTap/Yjs feature parity.
  • just bootstrap generates .env.worktree, .cargo/config.toml, and per-instance runtime directories under runtime/<slug>/.