{"adoption": {"forks": 33, "observed_at": "2026-09-03T02:15:15.682105+00:00", "stars": 1165}, "canonical_url": "https://ross.abutalabs.com/products/formisch", "card": {"archived": false, "artifact_type": "library", "description": "The lightweight, schema-first, and fully type-safe form library for React, Solid, Vue, Svelte and more.", "domain": ["web-development", "frontend"], "enriched": true, "function": ["form-handling", "state-management", "type-system"], "health_score": 100, "homepage": "https://formisch.dev", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["open-circle/formisch"], "name": "open-circle/formisch", "platform": ["browser"], "pushed_at": "2026-09-02T22:17:14+00:00", "repo": "open-circle/formisch", "stars": 1165, "tags": ["forms", "valibot", "schema-validation", "headless", "signals", "react", "solid", "vue", "svelte", "preact", "qwik", "angular", "react-native", "nodejs"], "topics": ["form", "preact", "qwik", "react", "schema", "signals", "solid", "svelte", "typescript", "validation", "vue", "valibot", "bundle-size", "modular", "type-safe", "forms", "form-validation"], "urls": [], "use_cases": ["build type-safe forms in React with Valibot schema validation", "manage form state and validation in Solid or Vue apps", "create lightweight forms with minimal bundle size", "handle dynamic field arrays and deeply nested form values", "connect forms to custom or pre-built UI components headlessly", "validate login forms with email and password schemas"], "what_it_is": "Formisch is a lightweight, schema-first, fully type-safe headless form library for JavaScript frameworks including React, Solid, Vue, Svelte, Angular, Preact, Qwik, and React Native. It uses Valibot schemas as the source of truth for validation and type inference, with a modular design that keeps bundle size starting at 2.5 kB.", "when_to_avoid": ["you prefer Zod or another schema library over Valibot", "you need a batteries-included form library with pre-built UI components", "your project is already invested in a mature form library like React Hook Form or Formik"], "when_to_choose": ["you want schema-based validation with Valibot and full TypeScript type inference", "bundle size and fine-grained DOM update performance are priorities", "you need a headless form library that works across multiple frameworks", "you prefer a minimal, modular API for form state management"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/formisch", "repo": "open-circle/formisch", "role": "main", "score": 82}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-09-03T02:15:15.682105+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:33:29.160432+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "33ae47d34f07980ca41c564a0bda2e728caefa53dd933bb1a8837ddcf8bed7c5", "fetched_at": "2026-09-03T02:15:15.682105+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-circle/formisch"}, {"content_hash": "7695ef07961d76a3fa0067dd631ddf1123c0fccd512707a487b20b4ba5e623ce", "fetched_at": "2026-08-29T12:38:17.538262+00:00", "kind": "homepage", "missing": false, "url": "https://formisch.dev"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-09-03T02:15:15.682105+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:33:29.160432+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "33ae47d34f07980ca41c564a0bda2e728caefa53dd933bb1a8837ddcf8bed7c5", "fetched_at": "2026-09-03T02:15:15.682105+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-circle/formisch"}, {"content_hash": "7695ef07961d76a3fa0067dd631ddf1123c0fccd512707a487b20b4ba5e623ce", "fetched_at": "2026-08-29T12:38:17.538262+00:00", "kind": "homepage", "missing": false, "url": "https://formisch.dev"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:33:29.160432+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "33ae47d34f07980ca41c564a0bda2e728caefa53dd933bb1a8837ddcf8bed7c5", "fetched_at": "2026-09-03T02:15:15.682105+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-circle/formisch"}, {"content_hash": "7695ef07961d76a3fa0067dd631ddf1123c0fccd512707a487b20b4ba5e623ce", "fetched_at": "2026-08-29T12:38:17.538262+00:00", "kind": "homepage", "missing": false, "url": "https://formisch.dev"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-09-03T02:15:15.682105+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-09-03T02:15:15.682105+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-09-03T02:15:15.682105+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:33:29.160432+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "33ae47d34f07980ca41c564a0bda2e728caefa53dd933bb1a8837ddcf8bed7c5", "fetched_at": "2026-09-03T02:15:15.682105+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-circle/formisch"}, {"content_hash": "7695ef07961d76a3fa0067dd631ddf1123c0fccd512707a487b20b4ba5e623ce", "fetched_at": "2026-08-29T12:38:17.538262+00:00", "kind": "homepage", "missing": false, "url": "https://formisch.dev"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-09-03T02:15:15.682105+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-09-03T02:15:15.682105+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:33:29.160432+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "33ae47d34f07980ca41c564a0bda2e728caefa53dd933bb1a8837ddcf8bed7c5", "fetched_at": "2026-09-03T02:15:15.682105+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-circle/formisch"}, {"content_hash": "7695ef07961d76a3fa0067dd631ddf1123c0fccd512707a487b20b4ba5e623ce", "fetched_at": "2026-08-29T12:38:17.538262+00:00", "kind": "homepage", "missing": false, "url": "https://formisch.dev"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-09-03T02:15:15.682105+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-09-03T02:15:15.682105+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-09-03T02:15:15.682105+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:33:29.160432+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "33ae47d34f07980ca41c564a0bda2e728caefa53dd933bb1a8837ddcf8bed7c5", "fetched_at": "2026-09-03T02:15:15.682105+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-circle/formisch"}, {"content_hash": "7695ef07961d76a3fa0067dd631ddf1123c0fccd512707a487b20b4ba5e623ce", "fetched_at": "2026-08-29T12:38:17.538262+00:00", "kind": "homepage", "missing": false, "url": "https://formisch.dev"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-09-03T02:15:15.682105+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-09-03T02:15:15.682105+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:33:29.160432+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "33ae47d34f07980ca41c564a0bda2e728caefa53dd933bb1a8837ddcf8bed7c5", "fetched_at": "2026-09-03T02:15:15.682105+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-circle/formisch"}, {"content_hash": "7695ef07961d76a3fa0067dd631ddf1123c0fccd512707a487b20b4ba5e623ce", "fetched_at": "2026-08-29T12:38:17.538262+00:00", "kind": "homepage", "missing": false, "url": "https://formisch.dev"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:33:29.160432+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "33ae47d34f07980ca41c564a0bda2e728caefa53dd933bb1a8837ddcf8bed7c5", "fetched_at": "2026-09-03T02:15:15.682105+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-circle/formisch"}, {"content_hash": "7695ef07961d76a3fa0067dd631ddf1123c0fccd512707a487b20b4ba5e623ce", "fetched_at": "2026-08-29T12:38:17.538262+00:00", "kind": "homepage", "missing": false, "url": "https://formisch.dev"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:33:29.160432+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "33ae47d34f07980ca41c564a0bda2e728caefa53dd933bb1a8837ddcf8bed7c5", "fetched_at": "2026-09-03T02:15:15.682105+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-circle/formisch"}, {"content_hash": "7695ef07961d76a3fa0067dd631ddf1123c0fccd512707a487b20b4ba5e623ce", "fetched_at": "2026-08-29T12:38:17.538262+00:00", "kind": "homepage", "missing": false, "url": "https://formisch.dev"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:33:29.160432+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "33ae47d34f07980ca41c564a0bda2e728caefa53dd933bb1a8837ddcf8bed7c5", "fetched_at": "2026-09-03T02:15:15.682105+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-circle/formisch"}, {"content_hash": "7695ef07961d76a3fa0067dd631ddf1123c0fccd512707a487b20b4ba5e623ce", "fetched_at": "2026-08-29T12:38:17.538262+00:00", "kind": "homepage", "missing": false, "url": "https://formisch.dev"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 100, "longevity": 36, "rhythm": 86}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 515, "days_push": 0, "days_rel": 13, "gap_med": 0.0, "n_releases_24m": 165}, "score": 82, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 3, "stale_scrape": false}}