Replace submodules and symlinks with apps.json registry#1
Merged
BxNxM merged 1 commit intoBxNxM:mainfrom Feb 18, 2026
Merged
Conversation
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
apps.jsonregistryindex.html– no moreAppModulewrappingAPP_PATH=../my-app ./start-even.shworks for one-off testing without editingapps.jsonvite-plugins/directory for app-specific server-side configapp-serverplugin that auto-starts an app's backend server if it has aserver/directoryWhat changed
Removed:
.gitmodulesand all submodule references (chess, epub, reddit, stars, transit, weather, misc/editor)src/*-submodule-adapter.tsfilespreserveSymlinksconfigAdded:
apps.json– maps app names to git URLs (auto-cloned into.apps-cache/) or local pathsvite-plugins/– extracted and new plugins (app-server, browser-launcher, chess-stockfish, reddit-proxy, restapi-proxy)APP_PATHsupport instart-even.shfor pointing to any local app directoryModified:
vite.config.ts– serves external app's ownindex.htmlvia middleware, readsapps.jsonfor aliases andfs.allowsrc/Main.ts– simplified to only handle built-in appsstart-even.sh– reads apps fromapps.json, supportsAPP_PATHshortcut, auto-installs app depsREADME.md– rewritten for v0.0.4How it works
apps/directoryapps.jsonare cloned on first run and served directly – their ownindex.htmlis intercepted and rewritten with/@fs/paths so Vite resolves everything from the app's directoryAPP_PATHlets developers point to any local checkout without touchingapps.jsonTest plan
./start-even.sh– built-in app selection works (demo, clock, timer)./start-even.sh– external apps fromapps.jsonare cloned and launchedAPP_PATH=../my-app ./start-even.sh– local app served correctlyserver/directory get their backend auto-started