{"id":19290490,"url":"https://github.com/jacob-ebey/dream","last_synced_at":"2025-04-22T05:32:28.200Z","repository":{"id":259801734,"uuid":"875065188","full_name":"jacob-ebey/dream","owner":"jacob-ebey","description":"What if...","archived":false,"fork":false,"pushed_at":"2024-11-01T05:31:04.000Z","size":305,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-15T22:35:28.883Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jacob-ebey.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-10-19T02:40:32.000Z","updated_at":"2024-11-13T15:12:34.000Z","dependencies_parsed_at":"2024-10-28T04:10:56.791Z","dependency_job_id":"4f326a3f-e2b6-4cf7-95f5-b83119100db2","html_url":"https://github.com/jacob-ebey/dream","commit_stats":null,"previous_names":["jacob-ebey/dream"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacob-ebey%2Fdream","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacob-ebey%2Fdream/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacob-ebey%2Fdream/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacob-ebey%2Fdream/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jacob-ebey","download_url":"https://codeload.github.com/jacob-ebey/dream/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250175095,"owners_count":21387138,"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":[],"created_at":"2024-11-09T22:19:26.215Z","updated_at":"2025-04-22T05:32:27.623Z","avatar_url":"https://github.com/jacob-ebey.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dream\n\nDream is a set of tools for building web applications with familiar patterns. It's built on native web APIs and is designed with the \"use the platform\" and \"progressive enhancement\" philosophies in mind.\n\n## The Pieces\n\n### JSX Runtime\n\nA stateless JSX runtime that renders to either a `ReadableStream\u003cstring\u003e` for server rendering, and a `ReadableStream\u003cNode\u003e` for use use in the browser.\n\nIt supports:\n\n- the `react-jsx` runtime\n- the `h()` function from Preact\n- sync and async functional components\n- sync and async generator components\n- there is no event / callback system, therefor\n- callbacks such as `onclick` accept strings and render the JS in the attribute\n\n### Browser Runtime\n\nThe browser runtime consists of two sides, the declarative API and the programmatic API.\n\n#### Declarative API\n\nTaking after HTMX, attributes are used to build dynamic interfaces.\n\nSupported attributes are:\n\n- hx-target\n- hx-swap\n- hx-indicator\n- hx-disabled-elt\n\n#### Programmatic API\n\nSometimes the built in declarative API isn't enough to fulfil complex scenarios such as optimistic UI. In these cases we can implement our own declarative APIs with custom elements and utilize the internals of the declarative API.\n\nSupported exports are:\n\n- `swap` - Render JSX into the DOM\n- `defineElement` - A small wrapper around `customElements.define` to help with HMR\n- `querySelectorExt` - An extended query selector\n- `querySelectorAllExt` - An extended query selector all\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacob-ebey%2Fdream","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjacob-ebey%2Fdream","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacob-ebey%2Fdream/lists"}