{"id":26828278,"url":"https://github.com/torrinworx/destamatic-ui","last_synced_at":"2026-02-20T23:00:31.476Z","repository":{"id":231941345,"uuid":"783025151","full_name":"torrinworx/destamatic-ui","owner":"torrinworx","description":"A batteries-included frontend framework built on fine-grained Observers for fast DOM updates, with components, routing, SSG/SEO, and theming — no React, no VDOM.","archived":false,"fork":false,"pushed_at":"2026-02-10T19:42:38.000Z","size":1223,"stargazers_count":4,"open_issues_count":17,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-02-10T22:51:18.725Z","etag":null,"topics":["components","design-system","dom-manipulation","material-design","state-management","ui-components","ui-framework","vdom","webapp"],"latest_commit_sha":null,"homepage":"https://torrin.me/destamatic-ui","language":"JavaScript","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/torrinworx.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-04-06T18:20:33.000Z","updated_at":"2026-02-10T19:42:43.000Z","dependencies_parsed_at":"2024-07-30T04:07:15.786Z","dependency_job_id":"cbdc268b-0dd2-4552-913f-532cc1cef416","html_url":"https://github.com/torrinworx/destamatic-ui","commit_stats":null,"previous_names":["torrinworx/destamatic-ui"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/torrinworx/destamatic-ui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/torrinworx%2Fdestamatic-ui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/torrinworx%2Fdestamatic-ui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/torrinworx%2Fdestamatic-ui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/torrinworx%2Fdestamatic-ui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/torrinworx","download_url":"https://codeload.github.com/torrinworx/destamatic-ui/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/torrinworx%2Fdestamatic-ui/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29664899,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-20T19:49:36.704Z","status":"ssl_error","status_checked_at":"2026-02-20T19:44:05.372Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["components","design-system","dom-manipulation","material-design","state-management","ui-components","ui-framework","vdom","webapp"],"created_at":"2025-03-30T12:20:20.442Z","updated_at":"2026-02-20T23:00:31.470Z","avatar_url":"https://github.com/torrinworx.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# destamatic‑ui\n\n\u003e A batteries‑included frontend framework built on fine‑grained Observers.  \n\u003e No React, no VDOM. Components, routing, SSG/SEO, theming, icons, and rich text in one stack.\n\n[![Build Status](https://img.shields.io/github/actions/workflow/status/torrinworx/destamatic-ui/build.yml?branch=main)](https://github.com/torrinworx/destamatic-ui/actions)\n[![npm version](https://img.shields.io/npm/v/destamatic-ui)](https://www.npmjs.com/package/destamatic-ui)\n\n- 🌐 **Site \u0026 docs:** https://torrin.me/destamatic-ui  \n- 🧪 **Playground \u0026 examples:** https://torrin.me/destamatic-ui/playground  \n- 📦 **Template starter:** https://github.com/torrinworx/destamatic-template  \n- **Discord** https://discord.gg/BJMPpVwdhz\n\n## What is destamatic‑ui?\n\ndestamatic‑ui is the top layer of the **destam stack**:\n\n- **destam** – fine‑grained Observer based state management (`Observer`, `OObject`, `OArray`, etc.).\n- **destam-dom** – DOM manipulation with direct Observer based updates (**no virtual DOM**).\n- **destamatic‑ui** – batteries‑included framework built on top:\n  - component library\n  - routing \u0026 stages\n  - static site generation / SEO helpers\n  - theming system\n  - rich text\n  - icons and other utilities\n\nMost apps can import almost everything they need from `destamatic-ui` and ignore the other packages until they want lower‑level control.\n\n## Who is this for?\n\n- **Indie devs / solo SaaS / small teams**  \n  Tired of stitching React + Next + Zustand + MUI + Redux + 5 other libs. You want a single stack that just works.\n\n- **Performance / architecture nerds**  \n  You like Solid/Svelte/signals and care about fine‑grained reactivity and benchmarkable performance.\n\n- **JS devs bored with React overhead**  \n  Comfortable with JSX, want a smaller mental model, less boilerplate, and a live playground to try things before committing.\n\n## Key features\n\n- 🧩 **Built‑in component library** – buttons, inputs, layout, navigation, utilities.\n- 🎨 **“Hell and back” theming** – deeply composable, context‑based theming with inheritance and helpers.\n- 🧭 **Routing \u0026 stages** – simple page routing and stage management.\n- 📄 **Static site / SEO tooling** – `\u003cHead\u003e`, `\u003cTitle\u003e`, `\u003cMeta\u003e`, `\u003cLink\u003e`, JSON‑LD helpers; works with SSG.\n- ✏️ **Rich text engine** – `RichArea`, `RichField`, `RichEngine`, `TextModifiers` for custom inline rendering.\n- 🖼️ **Icons** – built‑in support for multiple icon sets \u0026 custom icons.\n- 🧬 **Observer‑based state** – fine‑grained updates, watchers, delta mutations, network‑sync patterns.\n- ⚡ **No VDOM** – `destam-dom` updates real DOM directly, tuned for large lists and high‑frequency updates.\n- 🏭 **Production‑proven** – destam stack has been used in production for 5+ years (Equator Studios + personal projects like torrin.me, OpenGig.org, MangoSync).\n\n## Try it online\n\nYou can play with the stack in the browser before installing anything:\n\n- **Landing \u0026 overview:** https://torrin.me/destamatic-ui  \n- **Interactive Playground:** https://torrin.me/destamatic-ui/playground  \n- **Comprehensive Documentation**: https://torrin.me/destamatic-ui/docs\n\nThe playground includes live examples for:\n\n- destam (Observers),\n- destam‑dom (DOM bindings),\n- destamatic‑ui (components, theming, utils).\n\n## Installation\n\n`destamatic-ui` is published on npm and designed for Vite.\n\n```bash\nnpm install destamatic-ui\n# or\nyarn add destamatic-ui\n# or\npnpm add destamatic-ui\n```\n\nBasic usage:\n\n```jsx\nimport { Observer } from 'destam';\nimport { mount } from 'destam-dom';\nimport { h, Paper, Button, Typography } from '@destamatic/ui';\n\nconst count = Observer.mutable(0);\n\nconst App = () =\u003e \u003cPaper theme=\"column_fill_center\" style={{ gap: 12, padding: 24 }}\u003e\n    \u003cTypography type=\"h3\" label=\"Counter\" /\u003e\n    \u003cTypography type=\"p1\" label={count.map((c) =\u003e `Value: ${c}`)} /\u003e\n    \u003cButton\n      type=\"contained\"\n      label=\"Increment\"\n      onClick={() =\u003e count.set(count.get() + 1)}\n    /\u003e\n\u003c/Paper\u003e;\n\nmount(document.getElementById('root'), \u003cApp /\u003e);\n```\n\nFor Vite setup and JSX transform configuration, see:  \n👉 https://torrin.me/destamatic-ui/docs\n\nOr start from the template:  \n👉 https://github.com/torrinworx/destamatic-template (repo needs an update)\n\n\n## Project status\n\n- ✅ Used in production for multiple apps.\n- ✅ Stable core APIs for most components.\n- 🚧 Docs, examples, and centralized site are being expanded.\n- 🚧 Public roadmap and community (Discord, good first issues) in progress.\n\nIf you hit gaps in the docs or rough edges, please open an issue and describe what you were trying to build.\n\n## Contributing\n\nIssues and pull requests are welcome:\n\n- 🐛 Issues: https://github.com/torrinworx/destamatic-ui/issues  \n- 📥 PRs: open against `main`  \n\nPlanned:\n\n- Public roadmap\n- Discord / chat\n- Labeled “good first issue” tasks\n\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftorrinworx%2Fdestamatic-ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftorrinworx%2Fdestamatic-ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftorrinworx%2Fdestamatic-ui/lists"}