{"id":13810325,"url":"https://github.com/LuanRoger/electron-shadcn","last_synced_at":"2025-05-14T10:32:55.341Z","repository":{"id":217041861,"uuid":"741963118","full_name":"LuanRoger/electron-shadcn","owner":"LuanRoger","description":":electron: Electron Forge with shadcn-ui (Vite + Typescript)","archived":false,"fork":false,"pushed_at":"2025-05-04T21:25:56.000Z","size":5124,"stargazers_count":362,"open_issues_count":5,"forks_count":67,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-04T22:31:46.836Z","etag":null,"topics":["electron","electron-forge","geist","github-actions","i18n","icons","jest","linux","macos","playwright","postcss","prettier","react","react-compiler","shadcn-ui","tailwindcss","typescript","vite","windows"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LuanRoger.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-01-11T13:29:15.000Z","updated_at":"2025-05-04T21:26:00.000Z","dependencies_parsed_at":"2024-03-22T18:29:22.924Z","dependency_job_id":"7b83bfa4-be30-473d-9007-2aecfb4c463e","html_url":"https://github.com/LuanRoger/electron-shadcn","commit_stats":{"total_commits":145,"total_committers":4,"mean_commits":36.25,"dds":"0.43448275862068964","last_synced_commit":"071bd2fc1a1a59db2a0521ff93dacfb87fcd45a9"},"previous_names":["luanroger/electron-shadcn"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuanRoger%2Felectron-shadcn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuanRoger%2Felectron-shadcn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuanRoger%2Felectron-shadcn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuanRoger%2Felectron-shadcn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LuanRoger","download_url":"https://codeload.github.com/LuanRoger/electron-shadcn/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254121069,"owners_count":22018098,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["electron","electron-forge","geist","github-actions","i18n","icons","jest","linux","macos","playwright","postcss","prettier","react","react-compiler","shadcn-ui","tailwindcss","typescript","vite","windows"],"created_at":"2024-08-04T02:00:50.417Z","updated_at":"2025-05-14T10:32:50.322Z","avatar_url":"https://github.com/LuanRoger.png","language":"TypeScript","funding_links":[],"categories":["Boilerplates / Templates","TypeScript","Templates","Boilerplates \u0026 Starters","五、项目模板与脚手架"],"sub_categories":["3. 跨平台模板"],"readme":"# electron-shadcn\n\nElectron in all its glory. Everything you will need to develop your beautiful desktop application.\n\n![Demo GIF](https://github.com/LuanRoger/electron-shadcn/blob/main/images/demo.gif)\n\n## Libs and tools\n\nTo develop a Electron app, you probably will need some UI, test, formatter, style or other kind of library or framework, so let me install and configure some of them to you.\n\n### Core 🏍️\n\n- [Electron 32](https://www.electronjs.org)\n- [Vite 5](https://vitejs.dev)\n- [SWC](https://swc.rs)\n\n### DX 🛠️\n\n- [TypeScript 5](https://www.typescriptlang.org)\n- [Prettier](https://prettier.io)\n- [Zod](https://zod.dev)\n- [React Query (Tan Stack)](https://react-query.tanstack.com)\n\n### UI 🎨\n\n- [React](https://reactjs.org)\n- [Tailwind CSS](https://tailwindcss.com)\n- [Shadcn UI](https://ui.shadcn.com)\n- [Geist](https://vercel.com/font) as default font\n- [i18next](https://www.i18next.com)\n- [Lucide](https://lucide.dev)\n\n### Test 🧪\n\n- [Jest](https://jestjs.io)\n- [Playwright](https://playwright.dev)\n- [React Testing Library](https://testing-library.com/docs/react-testing-library/intro)\n\n### Packing and distribution 📦\n\n- [Electron Forge](https://www.electronforge.io)\n\n### Documentation 📚\n\n- [Storybook](https://storybook.js.org)\n\n### CI/CD 🚀\n\n- Pre-configured [GitHub Actions workflow](https://github.com/LuanRoger/electron-shadcn/blob/main/.github/workflows/playwright.yml), for test with Playwright\n\n### Project preferences 🎯\n\n- Use Context isolation\n- `titleBarStyle`: hidden (Using custom title bar)\n- Geist as default font\n- Some default styles was applied, check the [`styles`](https://github.com/LuanRoger/electron-shadcn/tree/main/src/styles) directory\n\n\u003e If you don't know some of these libraries or tools, I recommend you to check their documentation to understand how they work and how to use them.\n\n## Directory structure\n\n```plaintext\n.\n└── ./src/\n    ├── ./src/assets/\n    │   └── ./src/assets/fonts/\n    ├── ./src/components/\n    │   └── ./src/components/ui/\n    ├── ./src/helpers/\n    │   └── ./src/helpers/ipc/\n    ├── ./src/layout/\n    ├── ./src/lib/\n    ├── ./src/pages/\n    ├── ./src/stories/\n    ├── ./src/style/\n    └── ./src/tests/\n```\n\n- `src/`: Main directory\n  - `assets/`: Store assets like images, fonts, etc.\n  - `components/`: Store UI components\n    - `ui/`: Store Shadcn UI components (this is the default direcotry used by Shadcn UI)\n  - `helpers/`: Store IPC related functions to be called in the renderer process\n    - `ipc/`: Directory to store IPC context and listener functions\n      - Some implementations are already done, like `theme` and `window` for the custom title bar\n  - `layout/`: Directory to store layout components\n  - `lib/`: Store libraries and other utilities\n  - `pages/`: Store app's pages\n  - `stories/`: Store Storybook stories\n  - `style/`: Store global styles\n  - `tests/`: Store tests (from Jest and Playwright)\n\n## NPM script\n\nTo run any of those scripts:\n\n```bash\nnpm run \u003cscript\u003e\n```\n\n- `start`: Start the app in development mode\n- `package`: Package your application into a platform-specific executable bundle and put the result in a folder.\n- `make`: Generate platform-specific distributables (e.g. .exe, .dmg, etc) of your application for distribution.\n- `publish`: Electron Forge's way of taking the artifacts generated by the `make` command and sending them to a service somewhere for you to distribute or use as updates.\n- `prett`: Run Prettier to format the code\n- `storybook`: Start Storybook\n- `build-storybook`: Run the Storybook's build command\n- `test`: Run the default unit-test script (Jest)\n- `test:watch`: Run the default unit-test script in watch mode (Jest)\n- `test:unit`: Run the Jest tests\n- `test:e2e`: Run the Playwright tests\n- `test:all`: Run all tests (Jest and Playwright)\n\nThe test scripts involving Playwright require the app be builded before running the tests. So, before run the tests, run the `package`, `make` or `publish` script.\n\n## How to use\n\n1. Clone this repository\n\n```bash\ngit clone https://github.com/LuanRoger/electron-shadcn.git\n```\n\nOr use it as a template on GitHub\n\n2. Install dependencies\n\n```bash\nnpm install\n```\n\n3. Run the app\n\n```bash\nnpm run start\n```\n\n## Used by\n\n- [yaste](https://github.com/LuanRoger/yaste) - yaste (Yet another super ₛᵢₘₚₗₑ text editor) is a text editor, that can be used as an alternative to the native text editor of your SO, maybe.\n- [eletric-drizzle](https://github.com/LuanRoger/electric-drizzle) - shadcn-ui and Drizzle ORM with Electron.\n\n\u003e Does you've used this template in your project? Add it here and open a PR.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](https://github.com/LuanRoger/electron-shadcn/blob/main/LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLuanRoger%2Felectron-shadcn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FLuanRoger%2Felectron-shadcn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLuanRoger%2Felectron-shadcn/lists"}