A modular application platform where each page functions as an independent application, sharing only authentication and header styling.
char.build/
├── index.js # Main entry point and router
├── core/ # Shared functionality
│ ├── header.js # Shared header component with auth
│ ├── db.js # Database utilities
│ └── registry.js # App registry for routing
├── apps/ # Individual applications
│ ├── notes/ # Notes application
│ │ ├── index.js # Routes and backend logic
│ │ └── ui.js # Frontend UI
│ ├── template/ # Template for new apps
│ │ ├── index.js # Routes template
│ │ └── ui.js # UI template
│ └── [app-name]/ # Additional applications
└── README.md # This file
lastlogin middlewareapps/template directory to apps/[your-app-name]apps/[your-app-name]/ui.jsapps/[your-app-name]/index.jscore/registry.js:export const appRegistry = {
// Existing apps...
// Add your app
yourAppName: {
name: 'Your App Display Name',
description: 'Brief description of your app',
routes: (await import('../apps/your-app-name/index.js')).default,
},
};
lastlogin is available in all appsThe guiding philosophy is that adding a new page or feature should be as simple as:
No need to modify routing in multiple places or navigate through complex file structures. Everything your app needs should be within its own directory.