{"adoption": {"forks": 1314, "observed_at": "2026-08-28T04:11:20.603442+00:00", "stars": 17965}, "canonical_url": "https://ross.abutalabs.com/products/fastapi-best-practices", "card": {"archived": false, "artifact_type": "learning-resource", "description": "FastAPI Best Practices and Conventions we used at our startup", "domain": ["web-development", "backend", "developer-tools", "tutorials"], "enriched": true, "function": ["web-framework", "documentation"], "health_score": 68, "homepage": null, "language": null, "license": null, "license_family": "other", "maturity": "active", "member_repos": ["zhanymkanov/fastapi-best-practices"], "name": "zhanymkanov/fastapi-best-practices", "platform": ["python"], "pushed_at": "2026-05-03T18:11:59+00:00", "repo": "zhanymkanov/fastapi-best-practices", "stars": 17965, "tags": ["fastapi", "best-practices", "project-structure", "pydantic", "async", "conventions", "api-design"], "topics": ["fastapi", "best-practices"], "urls": [], "use_cases": ["structure a large FastAPI monolith project", "learn FastAPI best practices for production", "organize routers, schemas, and models in FastAPI", "decide between async and sync routes in FastAPI", "set up Pydantic and dependency injection conventions", "configure Alembic migrations and DB naming conventions", "get machine-readable FastAPI guidelines for AI coding agents"], "what_it_is": "An opinionated guide to FastAPI best practices and conventions distilled from production experience at startups. It covers project structure, async routing, Pydantic usage, dependency injection, database conventions, and testing patterns.", "when_to_avoid": ["you need runnable code or a starter template rather than a written guide", "you use a different Python web framework like Django or Flask", "you want an authoritative or official reference rather than one team's opinionated conventions"], "when_to_choose": ["you are starting or scaling a FastAPI codebase and want battle-tested conventions", "you need a scalable domain-based project structure for a monolith", "you want a checklist of common FastAPI pitfalls and anti-patterns"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/fastapi-best-practices", "repo": "zhanymkanov/fastapi-best-practices", "role": "main", "score": 68}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.603442+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:02:12.525270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "321727afc4969a5b01678ff183267cf36c02b01ea53e2975831fccf925a968de", "fetched_at": "2026-08-28T04:11:20.603442+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhanymkanov/fastapi-best-practices"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.603442+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:02:12.525270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "321727afc4969a5b01678ff183267cf36c02b01ea53e2975831fccf925a968de", "fetched_at": "2026-08-28T04:11:20.603442+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhanymkanov/fastapi-best-practices"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:02:12.525270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "321727afc4969a5b01678ff183267cf36c02b01ea53e2975831fccf925a968de", "fetched_at": "2026-08-28T04:11:20.603442+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhanymkanov/fastapi-best-practices"}], "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:11:20.603442+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.603442+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.603442+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:02:12.525270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "321727afc4969a5b01678ff183267cf36c02b01ea53e2975831fccf925a968de", "fetched_at": "2026-08-28T04:11:20.603442+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhanymkanov/fastapi-best-practices"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.603442+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.603442+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:02:12.525270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "321727afc4969a5b01678ff183267cf36c02b01ea53e2975831fccf925a968de", "fetched_at": "2026-08-28T04:11:20.603442+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhanymkanov/fastapi-best-practices"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.603442+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.603442+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.603442+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:02:12.525270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "321727afc4969a5b01678ff183267cf36c02b01ea53e2975831fccf925a968de", "fetched_at": "2026-08-28T04:11:20.603442+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhanymkanov/fastapi-best-practices"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.603442+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.603442+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:02:12.525270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "321727afc4969a5b01678ff183267cf36c02b01ea53e2975831fccf925a968de", "fetched_at": "2026-08-28T04:11:20.603442+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhanymkanov/fastapi-best-practices"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:02:12.525270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "321727afc4969a5b01678ff183267cf36c02b01ea53e2975831fccf925a968de", "fetched_at": "2026-08-28T04:11:20.603442+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhanymkanov/fastapi-best-practices"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:02:12.525270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "321727afc4969a5b01678ff183267cf36c02b01ea53e2975831fccf925a968de", "fetched_at": "2026-08-28T04:11:20.603442+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhanymkanov/fastapi-best-practices"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:02:12.525270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "321727afc4969a5b01678ff183267cf36c02b01ea53e2975831fccf925a968de", "fetched_at": "2026-08-28T04:11:20.603442+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhanymkanov/fastapi-best-practices"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 80, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1485, "days_push": 122, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 68, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}