{"id":24627884,"url":"https://github.com/kayahr/harmless","last_synced_at":"2025-07-12T15:33:30.349Z","repository":{"id":273744035,"uuid":"920734815","full_name":"kayahr/harmless","owner":"kayahr","description":"A minimalistic reactive web frontend framework written in TypeScript.","archived":false,"fork":false,"pushed_at":"2025-04-11T18:35:26.000Z","size":748,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-07T20:02:08.747Z","etag":null,"topics":["framework","harmless","jsx","reactive","typescript","web"],"latest_commit_sha":null,"homepage":"https://kayahr.github.io/harmless/","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/kayahr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/funding.yml","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},"funding":{"github":"kayahr","custom":"https://paypal.me/kayaahr/"}},"created_at":"2025-01-22T17:23:58.000Z","updated_at":"2025-04-11T18:34:22.000Z","dependencies_parsed_at":"2025-05-07T20:02:14.611Z","dependency_job_id":null,"html_url":"https://github.com/kayahr/harmless","commit_stats":null,"previous_names":["kayahr/harmless"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kayahr%2Fharmless","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kayahr%2Fharmless/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kayahr%2Fharmless/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kayahr%2Fharmless/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kayahr","download_url":"https://codeload.github.com/kayahr/harmless/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252949272,"owners_count":21830151,"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":["framework","harmless","jsx","reactive","typescript","web"],"created_at":"2025-01-25T05:13:33.642Z","updated_at":"2025-05-07T20:05:38.338Z","avatar_url":"https://github.com/kayahr.png","language":"TypeScript","readme":"[GitHub] | [NPM] | [API Doc]\n\n| :warning: This project is currently under construction and missing crucial functionality |\n| - |\n\nA minimalistic reactive web frontend framework written in TypeScript.\n\n## Features\n\n* Fine-grained reactive DOM updates via [promises], [observables] and signals using a framework-independent [signal] implementation.\n* Based on standard [JSX] using the automatic runtime (aka `react-jsx` mode), so no special transpiler plugin needed.\n* Supports dependency injection via a framework-independent [cdi] implementation.\n* Provides built-in components for flow control, like [If], [Choose] and [Route].\n* It's just a library without any build system requirements. Use whatever you like.\n* Easily testable with any JSX-capable testing framework (like [Vitest]).\n\nSome features are intentionally missing to keep Harmless small and focused:\n\n* No server rendering. Harmless is a client-only library.\n* No web component support. Should be easy enough to use Harmless inside a web component, though.\n* No CLI tools. Harmless is just a library and doesn't dictate how to structure your project or how to work with it.\n* No CommonJS support. It's time to leave the stone age behind and use [ESM] everywhere.\n\n## TODO\n\n* Write built-in components like `For` to iterate over collections of data.\n* Write documentation\n\n## More\n\nCheck out the [documentation].\n\n\n[API Doc]: https://kayahr.github.io/harmless/modules/_kayahr_harmless.html\n[Documentation]: https://kayahr.github.io/harmless/documents/Getting_started.html\n[GitHub]: https://github.com/kayahr/harmless\n[NPM]: https://www.npmjs.com/package/@kayahr/harmless\n[Vitest]: https://vitest.dev/\n[signal]: https://www.npmjs.com/package/@kayahr/signal\n[cdi]: https://www.npmjs.com/package/@kayahr/cdi\n[promises]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise\n[observables]: https://github.com/tc39/proposal-observable\n[JSX]: https://www.typescriptlang.org/docs/handbook/jsx.html\n[ESM]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules\n[If]: https://kayahr.github.io/harmless/documents/Control_Flow.If.html\n[Choose]: https://kayahr.github.io/harmless/documents/Control_Flow.Choose.html\n[Route]: https://kayahr.github.io/harmless/documents/Control_Flow.Route.html\n","funding_links":["https://github.com/sponsors/kayahr","https://paypal.me/kayaahr/"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkayahr%2Fharmless","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkayahr%2Fharmless","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkayahr%2Fharmless/lists"}