{"id":18836746,"url":"https://github.com/luanroger/electron-shadcn","last_synced_at":"2025-12-28T16:48:51.116Z","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-10-06T17:33:30.000Z","size":4731,"stargazers_count":517,"open_issues_count":7,"forks_count":95,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-10-06T19:24:12.977Z","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-01-11T13:29:15.000Z","updated_at":"2025-10-06T17:23:14.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,"purl":"pkg:github/LuanRoger/electron-shadcn","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","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuanRoger%2Felectron-shadcn/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280087873,"owners_count":26269718,"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","status":"online","status_checked_at":"2025-10-20T02:00:06.978Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-11-08T02:31:48.261Z","updated_at":"2025-12-28T16:48:51.108Z","avatar_url":"https://github.com/LuanRoger.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"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.png)\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 39](https://www.electronjs.org)\n- [Vite 7](https://vitejs.dev)\n\n### DX 🛠️\n\n- [TypeScript 5.9](https://www.typescriptlang.org)\n- [oRPC](https://orpc.unnoq.com)\n- [Prettier](https://prettier.io)\n- [ESLint 9](https://eslint.org)\n- [Zod 4](https://zod.dev)\n- [React Query (TanStack)](https://react-query.tanstack.com)\n\n### UI 🎨\n\n- [React 19.2](https://reactjs.org)\n- [Tailwind 4](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- [TanStack Router](https://tanstack.com/router) (with file based routing)\n- [Lucide](https://lucide.dev)\n\n### Test 🧪\n\n- [Vitest](https://vitest.dev)\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### 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- [React Compiler](https://react.dev/learn/react-compiler) is enabled by default.\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- React DevTools are installed by default\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\nNow you can go directly to `/src/routes/index.tsx` and modify the app as you want.\n\n\u003e You can also delete the `/src/routes/second.tsx` file if you don't want a second page.\n\n## Auto update\n\n\u003e [!WARNING]\n\u003e This feature only work in open-source repositories in GitHub, if you need to use in a private repository, you need to setup a custom update server. Check the [Updating Applications](https://www.electronjs.org/docs/latest/tutorial/updates) section in the Electron documentation for more details.\n\nThe auto update uses GitHub Releases as source for the updates. The `publish` script will automatically create a new release with the version specified in your `package.json` file. You can run locally the `publish` script to create a new release, but you need to set the `GITHUB_TOKEN` environment variable with a GitHub Personal Access Token that has permission to create releases in your repository.\n\nYou can also use the GitHub Actions workflow to automatically create a new release when you push a new tag to the repository. The workflow need to be triggered manually, but you can modify to fit your needs. Also, the release is created as draft by default, so you can review and set a proper description before publish.\n\n\u003e Check the [`.github/workflows/publish.yml`](https://github.com/LuanRoger/electron-shadcn/blob/main/.github/workflows/publish.yaml) file for more details.\n\nWhen you open the app, it will check for updates automatically. If an update is available, it will download and install the update, after that, it will restart the app to apply the update. This ensure  that your users always have the latest version of your app.\n\nThe auto update is implemented using [update-electron-app](https://github.com/electron/update-electron-app) to check the updates and apply them. For the publishing, it is using the [Electron Forge's GitHub publisher](https://www.electronforge.io/config/publishers/github).\n\n## Documentation\n\nCheck out the full documentation [here](https://docs.luanroger.dev/electron-shadcn).\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- [Wordle Game](https://github.com/masonyekta/wordle-game) - A Wordle game which features interactive gameplay, cross-platform compatibility, and integration with a custom Wordle API for word validation and letter correctness.\n- [Mehr 🌟](https://github.com/xmannii/MehrLocalChat) - A modern, elegant local AI chatbot application using Electron, React, shadcn/ui, and Ollama.\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"}