{"adoption": {"forks": 27, "observed_at": "2026-08-28T04:03:44.811870+00:00", "stars": 1142}, "canonical_url": "https://ross.abutalabs.com/products/alpine-ajax", "card": {"archived": false, "artifact_type": "library", "description": "An Alpine.js plugin for building server-powered frontends.", "domain": ["web-development", "frontend"], "enriched": true, "function": ["http-client", "middleware", "form-handling"], "health_score": 82, "homepage": "https://alpine-ajax.js.org", "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["imacrayon/alpine-ajax"], "name": "imacrayon/alpine-ajax", "platform": ["browser"], "pushed_at": "2026-03-17T16:01:29+00:00", "repo": "imacrayon/alpine-ajax", "stars": 1142, "tags": ["alpinejs", "ajax", "hateoas", "hypermedia", "progressive-enhancement", "html-over-the-wire", "javascript"], "topics": ["hacktoberfest", "ajax", "alpinejs", "fetch", "html", "javascript", "hateoas", "hypermedia", "forms", "utilites", "progressive-enhancement"], "urls": [], "use_cases": ["submit forms via ajax and update part of the page with the server response", "build a search box that fetches filtered results without a full page reload", "add interactivity to a server-rendered site without a SPA framework", "progressively enhance links and forms so they work without JavaScript", "swap HTML fragments from the server into targeted page elements"], "what_it_is": "Alpine AJAX is an Alpine.js plugin that lets forms and links make asynchronous HTTP requests and render server HTML responses directly into the page. It enables building interactive, progressively enhanced websites without writing JSON APIs or custom JavaScript.", "when_to_avoid": ["you need a full single-page application with client-side routing and state management", "your frontend is built with React, Vue, or another component framework", "you need JSON-based data exchange or complex client-side data models", "your team does not use Alpine.js and you'd rather adopt htmx or similar"], "when_to_choose": ["you use Alpine.js and want hypermedia-style interactivity with minimal JavaScript", "your server renders HTML and you want to avoid building a JSON API", "you value progressive enhancement and accessibility", "you want a tiny (~3kB) alternative to heavier libraries like htmx within an Alpine codebase"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/alpine-ajax", "repo": "imacrayon/alpine-ajax", "role": "main", "score": 79}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.811870+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:35:05.411120+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0db81f1414cf141a9b3b6e1e73d91776f6864895b7c68e0c88081629bda19195", "fetched_at": "2026-08-28T04:03:44.811870+00:00", "kind": "readme", "missing": false, "url": "https://github.com/imacrayon/alpine-ajax"}, {"content_hash": "507beb3e1cd578d657b2af369ca623b552751f8c4c4b6e6e610c36e29a36011e", "fetched_at": "2026-08-29T12:40:28.489044+00:00", "kind": "homepage", "missing": false, "url": "https://alpine-ajax.js.org"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.811870+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:35:05.411120+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0db81f1414cf141a9b3b6e1e73d91776f6864895b7c68e0c88081629bda19195", "fetched_at": "2026-08-28T04:03:44.811870+00:00", "kind": "readme", "missing": false, "url": "https://github.com/imacrayon/alpine-ajax"}, {"content_hash": "507beb3e1cd578d657b2af369ca623b552751f8c4c4b6e6e610c36e29a36011e", "fetched_at": "2026-08-29T12:40:28.489044+00:00", "kind": "homepage", "missing": false, "url": "https://alpine-ajax.js.org"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:35:05.411120+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0db81f1414cf141a9b3b6e1e73d91776f6864895b7c68e0c88081629bda19195", "fetched_at": "2026-08-28T04:03:44.811870+00:00", "kind": "readme", "missing": false, "url": "https://github.com/imacrayon/alpine-ajax"}, {"content_hash": "507beb3e1cd578d657b2af369ca623b552751f8c4c4b6e6e610c36e29a36011e", "fetched_at": "2026-08-29T12:40:28.489044+00:00", "kind": "homepage", "missing": false, "url": "https://alpine-ajax.js.org"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.811870+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.811870+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.811870+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:35:05.411120+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0db81f1414cf141a9b3b6e1e73d91776f6864895b7c68e0c88081629bda19195", "fetched_at": "2026-08-28T04:03:44.811870+00:00", "kind": "readme", "missing": false, "url": "https://github.com/imacrayon/alpine-ajax"}, {"content_hash": "507beb3e1cd578d657b2af369ca623b552751f8c4c4b6e6e610c36e29a36011e", "fetched_at": "2026-08-29T12:40:28.489044+00:00", "kind": "homepage", "missing": false, "url": "https://alpine-ajax.js.org"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.811870+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.811870+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:35:05.411120+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0db81f1414cf141a9b3b6e1e73d91776f6864895b7c68e0c88081629bda19195", "fetched_at": "2026-08-28T04:03:44.811870+00:00", "kind": "readme", "missing": false, "url": "https://github.com/imacrayon/alpine-ajax"}, {"content_hash": "507beb3e1cd578d657b2af369ca623b552751f8c4c4b6e6e610c36e29a36011e", "fetched_at": "2026-08-29T12:40:28.489044+00:00", "kind": "homepage", "missing": false, "url": "https://alpine-ajax.js.org"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.811870+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.811870+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.811870+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:35:05.411120+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0db81f1414cf141a9b3b6e1e73d91776f6864895b7c68e0c88081629bda19195", "fetched_at": "2026-08-28T04:03:44.811870+00:00", "kind": "readme", "missing": false, "url": "https://github.com/imacrayon/alpine-ajax"}, {"content_hash": "507beb3e1cd578d657b2af369ca623b552751f8c4c4b6e6e610c36e29a36011e", "fetched_at": "2026-08-29T12:40:28.489044+00:00", "kind": "homepage", "missing": false, "url": "https://alpine-ajax.js.org"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.811870+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.811870+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:35:05.411120+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0db81f1414cf141a9b3b6e1e73d91776f6864895b7c68e0c88081629bda19195", "fetched_at": "2026-08-28T04:03:44.811870+00:00", "kind": "readme", "missing": false, "url": "https://github.com/imacrayon/alpine-ajax"}, {"content_hash": "507beb3e1cd578d657b2af369ca623b552751f8c4c4b6e6e610c36e29a36011e", "fetched_at": "2026-08-29T12:40:28.489044+00:00", "kind": "homepage", "missing": false, "url": "https://alpine-ajax.js.org"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:35:05.411120+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0db81f1414cf141a9b3b6e1e73d91776f6864895b7c68e0c88081629bda19195", "fetched_at": "2026-08-28T04:03:44.811870+00:00", "kind": "readme", "missing": false, "url": "https://github.com/imacrayon/alpine-ajax"}, {"content_hash": "507beb3e1cd578d657b2af369ca623b552751f8c4c4b6e6e610c36e29a36011e", "fetched_at": "2026-08-29T12:40:28.489044+00:00", "kind": "homepage", "missing": false, "url": "https://alpine-ajax.js.org"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:35:05.411120+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0db81f1414cf141a9b3b6e1e73d91776f6864895b7c68e0c88081629bda19195", "fetched_at": "2026-08-28T04:03:44.811870+00:00", "kind": "readme", "missing": false, "url": "https://github.com/imacrayon/alpine-ajax"}, {"content_hash": "507beb3e1cd578d657b2af369ca623b552751f8c4c4b6e6e610c36e29a36011e", "fetched_at": "2026-08-29T12:40:28.489044+00:00", "kind": "homepage", "missing": false, "url": "https://alpine-ajax.js.org"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:35:05.411120+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0db81f1414cf141a9b3b6e1e73d91776f6864895b7c68e0c88081629bda19195", "fetched_at": "2026-08-28T04:03:44.811870+00:00", "kind": "readme", "missing": false, "url": "https://github.com/imacrayon/alpine-ajax"}, {"content_hash": "507beb3e1cd578d657b2af369ca623b552751f8c4c4b6e6e610c36e29a36011e", "fetched_at": "2026-08-29T12:40:28.489044+00:00", "kind": "homepage", "missing": false, "url": "https://alpine-ajax.js.org"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 72, "longevity": 100, "rhythm": 75}, "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": 1908, "days_push": 169, "days_rel": 169, "gap_med": 16.5, "n_releases_24m": 15}, "score": 79, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}