git clone https://github.com/rikurainio/Juu.git
npm install
(I recommend using npm for now) (remember to install ./drizzle-helper package modules too)
package.json
includes scripts for drizzle-kit operations, building, linting, etc.
- Build-tooling: Electron-Vite, Vite
- UI: React
- Styling: TailwindCSS
- Process communication: Electron-tRPC, tRPC
- Routing: TanStack Router
- State management: TanStack Query
- Local Database: Better-sqlite3
- ORM: Drizzle
- Linting, formatting: Biome
-
Use pnpm instead of npm. Configure pnpm to not share better-sqlite3 module since drizzle-kit does not properly work with the version that is compiled for electron
-
Figure out better way to implement drizzle-orm and drizzle-kit. Currently there is seperate helper package called drizzle-helper, with its own better-sqlite3 module. This was the only way I got drizzle-kit to work properly. If I compiled better-sqlite3 for electron, drizzle-kit would not work properly anymore.
-
Figure out better way to handle initial routing on built app. As a quick fix the app manually navigates the user to the root path on initial mount.
I'd love to work on this template with people. I have a lot to learn about Electron and the tooling around it, and native modules. If you have suggestions feel free to contact, make a PR.