{"id":20810796,"url":"https://github.com/dannymcgee/electric","last_synced_at":"2026-04-28T16:03:22.067Z","repository":{"id":184371643,"uuid":"433669239","full_name":"dannymcgee/electric","owner":"dannymcgee","description":"Themable, accessible components for hybrid desktop apps","archived":false,"fork":false,"pushed_at":"2025-08-24T01:47:01.000Z","size":9686,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-10T19:17:50.268Z","etag":null,"topics":["a11y","angular","component-library","components","electron","tauri"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dannymcgee.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2021-12-01T03:26:14.000Z","updated_at":"2025-08-23T17:42:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"00658b9d-e348-400a-b2c4-25ddcda14c23","html_url":"https://github.com/dannymcgee/electric","commit_stats":null,"previous_names":["electric-io/electric","dannymcgee/electric"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dannymcgee/electric","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dannymcgee%2Felectric","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dannymcgee%2Felectric/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dannymcgee%2Felectric/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dannymcgee%2Felectric/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dannymcgee","download_url":"https://codeload.github.com/dannymcgee/electric/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dannymcgee%2Felectric/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32387923,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T14:34:11.604Z","status":"ssl_error","status_checked_at":"2026-04-28T14:32:37.009Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["a11y","angular","component-library","components","electron","tauri"],"created_at":"2024-11-17T20:27:46.717Z","updated_at":"2026-04-28T16:03:22.060Z","avatar_url":"https://github.com/dannymcgee.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Electric\n\nElectric is an experimental project for quickly bootstrapping hybrid desktop applications built with Angular and Tauri (or, maybe someday, Electron).\n\nIt's primarily intended for my own use and isn't really designed for public consumption in its current form. Large portions of the codebase are entirely undocumented, and a few of its features are ad-hoc, half-finished solutions that haven't been rigorously tested.\n\n## Contents\n- `packages` is for shared libraries and is where the bulk of the codebase lives.\n    - [`components`](./packages/components) is the main Angular UI library and design system.\n    - [`ng-utils`](./packages/ng-utils) is an Angular utility library, for reusable Angular features that are unopinionated with regards to styling. Similar in concept to `@angular/cdk`.\n    - [`platform`](./packages/platform) is for abstraction of APIs that are specific to the host environment, like window management.\n    - [`style`](./packages/style) is a Sass utility library with some TypeScript modules that duplicate the APIs of their corresponding Sass modules (in case you need to move some styling logic to runtime).\n    - [`testing`](./packages/testing) is a utility library for working with Jest and Spectator.\n    - [`utils`](./packages/utils) is sort of an extended standard library. A lot of it is re-implemented `lodash` algorithms without the ES6+ polyfilling.\n- `demos` is for library demonstrations.\n    - [`showcase`](./demos/showcase) is a hand-built Angular web application in the vein of Storybook, showing off the main UI library and design system.\n    - `tauri-app` is a Tauri wrapper around `showcase`.\n    - `electron-app` is not a thing yet, but if/when it ever happens, it would be the Electron counterpart to `tauri-app`.\n- `apps` is where actual applications live, but mostly I build apps under their own feature branches to keep their Git histories distinct from the main codebase.\n    - [`tidy`](./apps/tidy) is an imagined solution to my data hoarding problem that I rage-built one night after scrounging for free disk space for the umpteenth time that month. Currently it's just a sad, barely functional file explorer.\n- `tools` is for build tooling. The repo is managed by [Nx](https://nx.dev), which does all of the heavy lifting, so mostly this is a place for custom Nx executors and generators.\n\nProject-specific documentation, where available, can be found in a separate readme at the project's root.\n\n## Development\n\n\u003e **NOTE:** This project is my personal baby, and as such I'm not currently accepting pull requests.\n\nNode.js 16+ is required for installing dependencies and building things. There's a `postinstall` hook that should setup any additional JavaScript prerequisites after running `npm install`.\n\n[Rust](https://www.rust-lang.org/learn/get-started) is required for working with the Tauri apps, but there's no need to globally install the Tauri CLI \u0026mdash; the project executors will use the correct version automatically, as specified via the `npm` dependencies.\n\n### Building / Running / Testing\n\nEach library/application has a `project.json` manifest at its root that enumerates the Nx executors available to that project under the `target` field. These executors can be run by using the following template:\n\n```sh\nnpx nx \u003ctarget-name\u003e \u003cproject-name\u003e\n# OR\nnpx nx run \u003cproject-name\u003e:\u003ctarget-name\u003e[:configuration] [options]\n```\n\nThe options available vary per executor and can be discovered by passing `--help`, e.g.:\n```sh\nnpx nx run components:build --help\n```\n\nGenerally, most projects will have `build` and `test` commands, while applications additionally have a `serve` command to start the web frontend on its own, and `launch` to start both the web frontend and the Tauri native app.\n\nFor example, to start the showcase demo in a web browser, run:\n```sh\nnpx nx serve showcase\n```\n\nOr to launch it as a Tauri app:\n```sh\nnpx nx launch showcase\n```\n\nNote that the applications under `apps` and in feature branches have generally not been designed for web-only compatibility, so they may immediately throw errors if you try to `serve` and open them directly in a web browser.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdannymcgee%2Felectric","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdannymcgee%2Felectric","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdannymcgee%2Felectric/lists"}