Skip to content

Replace submodules and symlinks with apps.json registry#1

Merged
BxNxM merged 1 commit intoBxNxM:mainfrom
nickustinov:refactor/apps-json-registry
Feb 18, 2026
Merged

Replace submodules and symlinks with apps.json registry#1
BxNxM merged 1 commit intoBxNxM:mainfrom
nickustinov:refactor/apps-json-registry

Conversation

@nickustinov
Copy link
Copy Markdown
Contributor

Summary

  • Replace git submodules, symlinks, and per-app adapter files with a single apps.json registry
  • External apps are now served as standalone web apps through their own index.html – no more AppModule wrapping
  • APP_PATH=../my-app ./start-even.sh works for one-off testing without editing apps.json
  • Extract Vite plugins into vite-plugins/ directory for app-specific server-side config
  • Add app-server plugin that auto-starts an app's backend server if it has a server/ directory
  • Rewrite README with updated architecture, app building guide, and developer tips

What changed

Removed:

  • .gitmodules and all submodule references (chess, epub, reddit, stars, transit, weather, misc/editor)
  • All src/*-submodule-adapter.ts files
  • preserveSymlinks config

Added:

  • apps.json – maps app names to git URLs (auto-cloned into .apps-cache/) or local paths
  • vite-plugins/ – extracted and new plugins (app-server, browser-launcher, chess-stockfish, reddit-proxy, restapi-proxy)
  • APP_PATH support in start-even.sh for pointing to any local app directory

Modified:

  • vite.config.ts – serves external app's own index.html via middleware, reads apps.json for aliases and fs.allow
  • src/Main.ts – simplified to only handle built-in apps
  • start-even.sh – reads apps from apps.json, supports APP_PATH shortcut, auto-installs app deps
  • README.md – rewritten for v0.0.4

How it works

  • Built-in apps (demo, clock, timer, etc.) work exactly as before via apps/ directory
  • External apps registered in apps.json are cloned on first run and served directly – their own index.html is intercepted and rewritten with /@fs/ paths so Vite resolves everything from the app's directory
  • APP_PATH lets developers point to any local checkout without touching apps.json

Test plan

  • ./start-even.sh – built-in app selection works (demo, clock, timer)
  • ./start-even.sh – external apps from apps.json are cloned and launched
  • APP_PATH=../my-app ./start-even.sh – local app served correctly
  • Apps with server/ directory get their backend auto-started

Remove git submodules, symlink support, and per-app adapter files.
External apps are now registered in apps.json (git URLs or local paths)
and served as standalone web apps through their own index.html.

- apps.json maps app names to git URLs (auto-cloned) or local paths
- APP_PATH env var for one-off testing without editing apps.json
- vite-plugins/ directory for app-specific Vite configuration
- app-server plugin auto-starts an app's backend server if present
- Rewrite README to document the new system and app building tips
@BxNxM BxNxM merged commit 1984a5a into BxNxM:main Feb 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants