{"adoption": {"forks": 151, "observed_at": "2026-08-28T04:07:38.697339+00:00", "stars": 3027}, "canonical_url": "https://ross.abutalabs.com/products/algernon", "card": {"archived": false, "artifact_type": "application", "description": "Small self-contained pure-Go web server with Lua, Teal, Markdown, HTTP/2, QUIC, Redis, TypeScript, npm-less React 19, SQLite, and PostgreSQL support ++", "domain": ["web-development", "backend", "self-hosted", "developer-tools"], "enriched": true, "function": ["http-server", "templating", "rate-limiting", "auth", "authorization", "database", "caching", "llm-inference", "middleware"], "health_score": 99, "homepage": "https://algernon.roboticoverlords.org", "language": "JavaScript", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "active", "member_repos": ["xyproto/algernon"], "name": "xyproto/algernon", "platform": ["windows", "cross-platform", "go", "self-hosted", "cli"], "pushed_at": "2026-08-20T13:13:52+00:00", "repo": "xyproto/algernon", "stars": 3027, "tags": ["http2", "http3", "quic", "lua-scripting", "all-in-one-server", "react19", "typescript", "markdown", "sqlite", "postgresql", "redis", "ollama", "single-binary", "linux", "macos", "docker"], "topics": ["redis", "postgresql", "quic", "mysql", "tls13", "http3", "lua", "pongo2", "algernon", "server-sent-events", "live-reload", "go", "cross-platform", "ollama", "fasthttp", "sqlite", "npm-less", "build-less", "local-llm", "react19"], "urls": [], "use_cases": ["serve a website with markdown and lua without a build step", "self-contained web server with http3 and quic support", "prototype web apps with react and typescript without npm", "host a small site backed by sqlite or redis", "single binary web server with built-in users and permissions", "serve a local llm-powered web app via ollama", "quickly spin up a dev server with live reload"], "what_it_is": "Algernon is a small, self-contained web server and application server written in pure Go, bundling HTTP/2, HTTP/3 (QUIC), Lua/Teal scripting, Markdown, Pongo2 templates, Sass, TypeScript/JSX, npm-less React 19, and multiple database backends (BoltDB, SQLite, PostgreSQL, MySQL, Redis) into one executable. It also includes rate limiting, users and permissions, plugins, graceful shutdown, and optional Ollama LLM integration.", "when_to_avoid": ["you need a highly extensible production stack with a large ecosystem of middleware and frameworks", "your app depends on a specific language runtime or framework not supported by Algernon's built-in scripting", "you require cluster-scale deployment features beyond a single server", "you need deep customization that a monolithic all-in-one server makes harder than a modular stack"], "when_to_choose": ["you want a single self-contained executable that serves dynamic pages with Lua, Markdown, or React without a node/npm toolchain", "you need HTTP/2 or HTTP/3 (QUIC) out of the box with TLS 1.3", "you want built-in database backends, rate limiting, and permissions in one small server", "you prefer lightweight self-hosting with a tiny Docker image"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/algernon", "repo": "xyproto/algernon", "role": "main", "score": 93}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:38.697339+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:29:52.616789+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bf6a23f3cb9d6dd38ed843c86325762e7cdb10f1779ea38fd6e14a307af1e77", "fetched_at": "2026-08-28T04:07:38.697339+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xyproto/algernon"}, {"content_hash": "312d3041fc2c9bef1dacaee6bc7af338a23aafc5f931e8b9ea9a5d1777baad15", "fetched_at": "2026-08-29T09:45:12.423674+00:00", "kind": "homepage", "missing": false, "url": "https://algernon.roboticoverlords.org"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:38.697339+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:29:52.616789+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bf6a23f3cb9d6dd38ed843c86325762e7cdb10f1779ea38fd6e14a307af1e77", "fetched_at": "2026-08-28T04:07:38.697339+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xyproto/algernon"}, {"content_hash": "312d3041fc2c9bef1dacaee6bc7af338a23aafc5f931e8b9ea9a5d1777baad15", "fetched_at": "2026-08-29T09:45:12.423674+00:00", "kind": "homepage", "missing": false, "url": "https://algernon.roboticoverlords.org"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:29:52.616789+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bf6a23f3cb9d6dd38ed843c86325762e7cdb10f1779ea38fd6e14a307af1e77", "fetched_at": "2026-08-28T04:07:38.697339+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xyproto/algernon"}, {"content_hash": "312d3041fc2c9bef1dacaee6bc7af338a23aafc5f931e8b9ea9a5d1777baad15", "fetched_at": "2026-08-29T09:45:12.423674+00:00", "kind": "homepage", "missing": false, "url": "https://algernon.roboticoverlords.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:07:38.697339+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:38.697339+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:38.697339+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:29:52.616789+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bf6a23f3cb9d6dd38ed843c86325762e7cdb10f1779ea38fd6e14a307af1e77", "fetched_at": "2026-08-28T04:07:38.697339+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xyproto/algernon"}, {"content_hash": "312d3041fc2c9bef1dacaee6bc7af338a23aafc5f931e8b9ea9a5d1777baad15", "fetched_at": "2026-08-29T09:45:12.423674+00:00", "kind": "homepage", "missing": false, "url": "https://algernon.roboticoverlords.org"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:38.697339+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:38.697339+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:29:52.616789+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bf6a23f3cb9d6dd38ed843c86325762e7cdb10f1779ea38fd6e14a307af1e77", "fetched_at": "2026-08-28T04:07:38.697339+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xyproto/algernon"}, {"content_hash": "312d3041fc2c9bef1dacaee6bc7af338a23aafc5f931e8b9ea9a5d1777baad15", "fetched_at": "2026-08-29T09:45:12.423674+00:00", "kind": "homepage", "missing": false, "url": "https://algernon.roboticoverlords.org"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:38.697339+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:38.697339+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:38.697339+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:29:52.616789+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bf6a23f3cb9d6dd38ed843c86325762e7cdb10f1779ea38fd6e14a307af1e77", "fetched_at": "2026-08-28T04:07:38.697339+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xyproto/algernon"}, {"content_hash": "312d3041fc2c9bef1dacaee6bc7af338a23aafc5f931e8b9ea9a5d1777baad15", "fetched_at": "2026-08-29T09:45:12.423674+00:00", "kind": "homepage", "missing": false, "url": "https://algernon.roboticoverlords.org"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:38.697339+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:38.697339+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:29:52.616789+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bf6a23f3cb9d6dd38ed843c86325762e7cdb10f1779ea38fd6e14a307af1e77", "fetched_at": "2026-08-28T04:07:38.697339+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xyproto/algernon"}, {"content_hash": "312d3041fc2c9bef1dacaee6bc7af338a23aafc5f931e8b9ea9a5d1777baad15", "fetched_at": "2026-08-29T09:45:12.423674+00:00", "kind": "homepage", "missing": false, "url": "https://algernon.roboticoverlords.org"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:29:52.616789+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bf6a23f3cb9d6dd38ed843c86325762e7cdb10f1779ea38fd6e14a307af1e77", "fetched_at": "2026-08-28T04:07:38.697339+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xyproto/algernon"}, {"content_hash": "312d3041fc2c9bef1dacaee6bc7af338a23aafc5f931e8b9ea9a5d1777baad15", "fetched_at": "2026-08-29T09:45:12.423674+00:00", "kind": "homepage", "missing": false, "url": "https://algernon.roboticoverlords.org"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:29:52.616789+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bf6a23f3cb9d6dd38ed843c86325762e7cdb10f1779ea38fd6e14a307af1e77", "fetched_at": "2026-08-28T04:07:38.697339+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xyproto/algernon"}, {"content_hash": "312d3041fc2c9bef1dacaee6bc7af338a23aafc5f931e8b9ea9a5d1777baad15", "fetched_at": "2026-08-29T09:45:12.423674+00:00", "kind": "homepage", "missing": false, "url": "https://algernon.roboticoverlords.org"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:29:52.616789+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bf6a23f3cb9d6dd38ed843c86325762e7cdb10f1779ea38fd6e14a307af1e77", "fetched_at": "2026-08-28T04:07:38.697339+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xyproto/algernon"}, {"content_hash": "312d3041fc2c9bef1dacaee6bc7af338a23aafc5f931e8b9ea9a5d1777baad15", "fetched_at": "2026-08-29T09:45:12.423674+00:00", "kind": "homepage", "missing": false, "url": "https://algernon.roboticoverlords.org"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 83}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4194, "days_push": 13, "days_rel": 38, "gap_med": 36, "n_releases_24m": 10}, "score": 93, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}