{"adoption": {"forks": 143, "observed_at": "2026-08-28T04:06:36.771530+00:00", "stars": 2315}, "canonical_url": "https://ross.abutalabs.com/products/swiftlatex", "card": {"archived": false, "artifact_type": "library", "description": "SwiftLaTeX, a WYSIWYG Browser-based LaTeX Editor ", "domain": ["pdf", "web-development", "text-editors", "education"], "enriched": true, "function": ["editor", "pdf", "compiler"], "health_score": 20, "homepage": "https://www.swiftlatex.com", "language": "C", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["SwiftLaTeX/SwiftLaTeX"], "name": "SwiftLaTeX/SwiftLaTeX", "platform": ["browser", "wasm"], "pushed_at": "2024-06-18T10:03:53+00:00", "repo": "SwiftLaTeX/SwiftLaTeX", "stars": 2315, "tags": ["latex", "wysiwyg", "webassembly", "pdftex", "xetex", "texlive", "client-side-compilation", "typesetting", "pdf-generation", "academic-writing", "javascript-library"], "topics": ["latex", "wysiwyg", "editor", "webassembly"], "urls": [], "use_cases": ["compile latex documents in the browser without a server", "wysiwyg latex editor that edits pdf output directly", "embed pdftex or xetex in my own web page", "generate pdf from latex source in javascript client-side", "online latex editor that runs offline with local computation", "run xetex in webassembly for chinese japanese documents"], "what_it_is": "SwiftLaTeX compiles the PdfTeX and XeTeX LaTeX engines to WebAssembly so LaTeX documents can be compiled entirely in the browser, exposed as a JavaScript library you embed via a script tag. It also provides an optional WYSIWYG browser-based LaTeX editor that lets users edit PDF output directly, though that part is still a work in progress.", "when_to_avoid": ["You need a complete native TeX Live/MiKTeX toolchain with shell-escape, packages installation, or full ICU locale-aware line breaking", "You require a fully polished WYSIWYG LaTeX editing experience, which is still marked as work in progress", "Your users are on constrained devices, since the wasm engine runs roughly 2x slower than native binaries and template downloads can take minutes"], "when_to_choose": ["You need LaTeX compilation to happen fully client-side with no server round-trips", "You want to drop a TeX engine into any webpage with a single script tag and a simple async API", "You need output identical to TeX Live or MiKTeX inside a browser app, including CJK and TrueType font support via XeTeX"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/swiftlatex", "repo": "SwiftLaTeX/SwiftLaTeX", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:36.771530+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:39:25.000102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdd01024235baeb2e70810fdcc668772ad332f34207bc53497aebdc798bc86a5", "fetched_at": "2026-08-28T04:06:36.771530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SwiftLaTeX/SwiftLaTeX"}, {"content_hash": "bbb14c284b5a6af05760ebfa80adcea119dba94ed4d92f6cc647216b84b44c7b", "fetched_at": "2026-08-29T10:19:19.134245+00:00", "kind": "homepage", "missing": false, "url": "https://www.swiftlatex.com"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:36.771530+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:39:25.000102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdd01024235baeb2e70810fdcc668772ad332f34207bc53497aebdc798bc86a5", "fetched_at": "2026-08-28T04:06:36.771530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SwiftLaTeX/SwiftLaTeX"}, {"content_hash": "bbb14c284b5a6af05760ebfa80adcea119dba94ed4d92f6cc647216b84b44c7b", "fetched_at": "2026-08-29T10:19:19.134245+00:00", "kind": "homepage", "missing": false, "url": "https://www.swiftlatex.com"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:39:25.000102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdd01024235baeb2e70810fdcc668772ad332f34207bc53497aebdc798bc86a5", "fetched_at": "2026-08-28T04:06:36.771530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SwiftLaTeX/SwiftLaTeX"}, {"content_hash": "bbb14c284b5a6af05760ebfa80adcea119dba94ed4d92f6cc647216b84b44c7b", "fetched_at": "2026-08-29T10:19:19.134245+00:00", "kind": "homepage", "missing": false, "url": "https://www.swiftlatex.com"}], "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:06:36.771530+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:36.771530+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:36.771530+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:39:25.000102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdd01024235baeb2e70810fdcc668772ad332f34207bc53497aebdc798bc86a5", "fetched_at": "2026-08-28T04:06:36.771530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SwiftLaTeX/SwiftLaTeX"}, {"content_hash": "bbb14c284b5a6af05760ebfa80adcea119dba94ed4d92f6cc647216b84b44c7b", "fetched_at": "2026-08-29T10:19:19.134245+00:00", "kind": "homepage", "missing": false, "url": "https://www.swiftlatex.com"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:36.771530+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:36.771530+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:39:25.000102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdd01024235baeb2e70810fdcc668772ad332f34207bc53497aebdc798bc86a5", "fetched_at": "2026-08-28T04:06:36.771530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SwiftLaTeX/SwiftLaTeX"}, {"content_hash": "bbb14c284b5a6af05760ebfa80adcea119dba94ed4d92f6cc647216b84b44c7b", "fetched_at": "2026-08-29T10:19:19.134245+00:00", "kind": "homepage", "missing": false, "url": "https://www.swiftlatex.com"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:36.771530+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:36.771530+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:36.771530+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:39:25.000102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdd01024235baeb2e70810fdcc668772ad332f34207bc53497aebdc798bc86a5", "fetched_at": "2026-08-28T04:06:36.771530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SwiftLaTeX/SwiftLaTeX"}, {"content_hash": "bbb14c284b5a6af05760ebfa80adcea119dba94ed4d92f6cc647216b84b44c7b", "fetched_at": "2026-08-29T10:19:19.134245+00:00", "kind": "homepage", "missing": false, "url": "https://www.swiftlatex.com"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:36.771530+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:36.771530+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:39:25.000102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdd01024235baeb2e70810fdcc668772ad332f34207bc53497aebdc798bc86a5", "fetched_at": "2026-08-28T04:06:36.771530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SwiftLaTeX/SwiftLaTeX"}, {"content_hash": "bbb14c284b5a6af05760ebfa80adcea119dba94ed4d92f6cc647216b84b44c7b", "fetched_at": "2026-08-29T10:19:19.134245+00:00", "kind": "homepage", "missing": false, "url": "https://www.swiftlatex.com"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:39:25.000102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdd01024235baeb2e70810fdcc668772ad332f34207bc53497aebdc798bc86a5", "fetched_at": "2026-08-28T04:06:36.771530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SwiftLaTeX/SwiftLaTeX"}, {"content_hash": "bbb14c284b5a6af05760ebfa80adcea119dba94ed4d92f6cc647216b84b44c7b", "fetched_at": "2026-08-29T10:19:19.134245+00:00", "kind": "homepage", "missing": false, "url": "https://www.swiftlatex.com"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:39:25.000102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdd01024235baeb2e70810fdcc668772ad332f34207bc53497aebdc798bc86a5", "fetched_at": "2026-08-28T04:06:36.771530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SwiftLaTeX/SwiftLaTeX"}, {"content_hash": "bbb14c284b5a6af05760ebfa80adcea119dba94ed4d92f6cc647216b84b44c7b", "fetched_at": "2026-08-29T10:19:19.134245+00:00", "kind": "homepage", "missing": false, "url": "https://www.swiftlatex.com"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:39:25.000102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdd01024235baeb2e70810fdcc668772ad332f34207bc53497aebdc798bc86a5", "fetched_at": "2026-08-28T04:06:36.771530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SwiftLaTeX/SwiftLaTeX"}, {"content_hash": "bbb14c284b5a6af05760ebfa80adcea119dba94ed4d92f6cc647216b84b44c7b", "fetched_at": "2026-08-29T10:19:19.134245+00:00", "kind": "homepage", "missing": false, "url": "https://www.swiftlatex.com"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2464, "days_push": 806, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}