How hassancs91/desktop-app-starter works
This is an Electron desktop-app starter: users navigate its screens, configure settings or an API key, then use AI and file capabilities through a typed, validated main/preload/renderer boundary. The graph also preserves the window/theme/UI kit and logging capabilities. Some handlers and the secret-store implementation were not sampled; their subsystem paths are directories, and uncertain implementation links are omitted.
Main entry points: screens-registry.ts Screen registry · register.ts IPC registration · index.ts Main process · anthropic-client.ts Claude client
Components 27
Window and screens
- App shell
src/renderer/App.tsx - Screen registry
src/renderer/screens-registry.ts - Home screen
src/features/home/components/HomeScreen.tsx - File explorer
src/features/explorer/components/ExplorerScreen.tsx - Settings screen
src/features/settings/components/SettingsScreen.tsx - Settings form
src/features/settings/components/SettingsForm.tsx - AI screen
src/features/ai/components/AiScreen.tsx - API key panel
src/features/ai/components/ApiKeysPanel.tsx - Components gallery
src/features/components-gallery/components/ComponentsGalleryScreen.tsx - Shared components
src/shared/components
IPC and capabilities
- Main process
src/main/index.ts - Preload bridge
src/preload/preload.ts - IPC registration
src/main/ipc/register.ts - AI handlers
src/main/ipc/ai-handlers.ts - File handlers
src/main/ipc/fs-handlers.ts - File service
src/main/services/fs-service.ts
Settings and themes
- Settings handlers
src/main/ipc/settings-handlers.ts - Settings store
src/main/services/settings-store.ts - Theme service
src/main/services/theme-service.ts - Theme context
src/renderer/contexts/ThemeContext.tsx
AI and integrations
- Claude client
src/main/ai/anthropic-client.ts - Anthropic API
- Encrypted key storage
src/main/services
Logging and reliability
- Logging engine
src/logging/log-engine.ts - Log writer
src/logging/log-writer.ts - Crash recovery
src/main/reliability/crash-handler.ts
Other components
- Desktop user
Connections 27
- Desktop user → App shell: uses
README.md - App shell → Screen registry: selects screens
src/renderer/App.tsx - Screen registry → Home screen: registers
README.md - Screen registry → File explorer: registers
README.md - Screen registry → Settings screen: registers
README.md - Screen registry → AI screen: registers
README.md - Screen registry → Components gallery: registers
README.md - Settings screen → Settings form: renders
src/features/settings/components/SettingsScreen.tsx - Desktop user → Components gallery: browses components
README.md - Main process → IPC registration: registers
src/main/index.ts - Main process → Preload bridge: loads bridge
README.md - Preload bridge → IPC registration: exposes typed channels
README.md - IPC registration → AI handlers: registers
src/main/ipc/register.ts - IPC registration → File handlers: registers
src/main/ipc/register.ts - IPC registration → Settings handlers: registers
src/main/ipc/register.ts - File handlers → File service: delegates to
- Settings handlers → Settings store: reads and writes
- Settings store → Theme service: provides settings
src/main/services/theme-service.ts - App shell → Theme context: provides theme
src/renderer/App.tsx - AI screen → API key panel: includes key panel
README.md - AI handlers → Claude client: calls
src/main/ipc/ai-handlers.ts - Claude client → Encrypted key storage: reads API key
src/main/ai/anthropic-client.ts - Claude client → Settings store: reads model setting
src/main/ai/anthropic-client.ts - Claude client → Anthropic API: sends requests
README.md - Main process → Logging engine: initializes
src/main/index.ts - Logging engine → Log writer: writes logs
src/logging/log-engine.ts - Main process → Crash recovery: attaches handler
src/main/index.ts