Open-source timing and results management software for Kartslalom (JKS/SKS) competitions and training.
Built with Electron + Next.js (via nextron).
- Driver Management — Create and manage driver profiles
- Kart Management — Track kart assignments and history
- Training Sessions — Start, stop, and restore training sessions
- Precision Lap Timing — Record lap times with accuracy down to the millisecond
- Statistics — View aggregated stats from past trainings
- Championships (upcoming in v1.4.0) — Organize series of trainings with standings
| Layer | Technology |
|---|---|
| Desktop Runtime | Electron |
| Application Framework | nextron (Electron + Next.js integration) |
| UI Framework | React 19 with Next.js 16 |
| Component Library | Mantine |
| Database | Dexie.js (IndexedDB wrapper) |
| Persistent Storage | electron-store |
| Logging | electron-log |
| Testing | Vitest |
- Node.js (v20+)
- npm, yarn, or pnpm
# Install dependencies
npm install # or yarn / pnpm
# Start development server
npm run dev
# Build for production
npm run build| Script | Description |
|---|---|
npm run dev |
Start development mode (Hot reload enabled) |
npm run build |
Build for all platforms |
npm run format |
Format code with Prettier |
npm run test |
Run tests with Vitest |
npm run typecheck:renderer |
Type-check the renderer process |
openSlalom/
├── app/ # Production files (generated)
├── main/ # Electron main process
│ ├── ipc/ # IPC handlers (file open, save)
│ └── helpers/ # Window creation utilities
├── renderer/ # Next.js renderer process
│ ├── components/ # React components
│ ├── contexts/ # React contexts
│ ├── hooks/ # Custom hooks
│ ├── lib/ # Database, utilities
│ └── pages/ # App routes
├── resources/ # Platform assets (icons, etc.)
├── electron-builder.yml # Build configuration
└── NOTES.md # Dev notes
This is the code block that represents the suggested code change:
Electron Main Process (main/)
├── Creates browser windows
└── IPC endpoints (save-file, open-file, etc.)
↓ IPC bridge
Next.js Renderer Process (renderer/)
├── React UI components
├── Dexie DB service (IndexedDB)
└── Training state managementMIT