{"id":13560474,"url":"https://github.com/CodyJasonBennett/preact-reconciler","last_synced_at":"2025-04-03T16:30:42.621Z","repository":{"id":114167730,"uuid":"609633425","full_name":"CodyJasonBennett/preact-reconciler","owner":"CodyJasonBennett","description":"Custom renderers for Preact in \u003c1KB.","archived":false,"fork":false,"pushed_at":"2023-07-31T10:49:29.000Z","size":86,"stargazers_count":113,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-05-01T18:29:28.167Z","etag":null,"topics":["fiber","jsx","minimal","preact","react","reconciliation","renderers","vdom"],"latest_commit_sha":null,"homepage":"https://npmjs.com/preact-reconciler","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/CodyJasonBennett.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":["CodyJasonBennett"]}},"created_at":"2023-03-04T19:11:08.000Z","updated_at":"2024-04-10T10:14:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"fdcb7391-81fc-4453-8652-20a2d9dfea76","html_url":"https://github.com/CodyJasonBennett/preact-reconciler","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodyJasonBennett%2Fpreact-reconciler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodyJasonBennett%2Fpreact-reconciler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodyJasonBennett%2Fpreact-reconciler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodyJasonBennett%2Fpreact-reconciler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CodyJasonBennett","download_url":"https://codeload.github.com/CodyJasonBennett/preact-reconciler/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247036857,"owners_count":20873031,"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":["fiber","jsx","minimal","preact","react","reconciliation","renderers","vdom"],"created_at":"2024-08-01T13:00:44.712Z","updated_at":"2025-04-03T16:30:42.237Z","avatar_url":"https://github.com/CodyJasonBennett.png","language":"TypeScript","funding_links":["https://github.com/sponsors/CodyJasonBennett"],"categories":["TypeScript"],"sub_categories":[],"readme":"[![Size](https://img.shields.io/bundlephobia/minzip/preact-reconciler?label=gzip\u0026style=flat\u0026colorA=000000\u0026colorB=000000)](https://bundlephobia.com/package/preact-reconciler)\n[![Version](https://img.shields.io/npm/v/preact-reconciler?style=flat\u0026colorA=000000\u0026colorB=000000)](https://npmjs.com/package/preact-reconciler)\n[![Downloads](https://img.shields.io/npm/dt/preact-reconciler.svg?style=flat\u0026colorA=000000\u0026colorB=000000)](https://npmjs.com/package/preact-reconciler)\n\n# preact-reconciler\n\nCustom renderers for Preact in \u003c1KB.\n\nThis package implements [`react-reconciler`](https://npmjs.com/react-reconciler) which allows for custom renderers to be implemented and shared between Preact and React such as [`@react-three/fiber`](https://github.com/pmndrs/react-three-fiber#readme).\n\n```jsx\nimport { render } from 'preact'\nimport { Canvas } from '@react-three/fiber'\nimport { OrbitControls } from '@react-three/drei'\n\n// This is the same as ReactDOM.createRoot(root).render(...) with preact/compat\nrender(\n  \u003cCanvas\u003e\n    \u003cOrbitControls /\u003e\n    \u003cmesh\u003e\n      \u003cboxGeometry /\u003e\n      \u003cmeshNormalMaterial /\u003e\n    \u003c/mesh\u003e\n  \u003c/Canvas\u003e,\n  root,\n)\n```\n\n## Installation\n\nTo get started, you'll only need `preact` and `preact-reconciler`. No need to install `react` or `react-dom`.\n\n```bash\nnpm install preact preact-reconciler\nyarn add preact preact-reconciler\npnpm add preact preact-reconciler\n```\n\nWith your choice of tooling, alias `react`, `react-dom`, and its dependencies.\n\n```js\nconst resolve = {\n  alias: {\n    react: 'preact/compat',\n    'react-dom': 'preact/compat',\n    'react-reconciler': 'preact-reconciler',\n  },\n}\n\n// vite.config.js\nexport default { resolve }\n\n// webpack.config.js\nmodule.exports = { resolve }\n\n// next.config.js (webpackFinal for .storybook/main.js)\nmodule.exports = {\n  webpack(config) {\n    Object.assign(config.resolve.alias, resolve.alias)\n    return config\n  },\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCodyJasonBennett%2Fpreact-reconciler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FCodyJasonBennett%2Fpreact-reconciler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCodyJasonBennett%2Fpreact-reconciler/lists"}