{"id":370043,"url":"https://github.com/feldroy/air","last_synced_at":"2026-05-31T20:30:31.195Z","repository":{"id":53535721,"uuid":"47806393","full_name":"feldroy/air","owner":"feldroy","description":"The first web framework designed for AI to write. Built on Python, FastAPI, Pydantic, and HTMX. By the authors of Two Scoops of Django.","archived":false,"fork":false,"pushed_at":"2026-05-08T06:23:02.000Z","size":8404,"stargazers_count":875,"open_issues_count":61,"forks_count":98,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-05-08T09:07:17.319Z","etag":null,"topics":["ai","fastapi","pydantic","python","starlette","web"],"latest_commit_sha":null,"homepage":"https://airwebframework.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/feldroy.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG/0.10.0.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["feldroy"]}},"created_at":"2015-12-11T05:08:09.000Z","updated_at":"2026-05-05T09:05:04.000Z","dependencies_parsed_at":"2023-12-13T05:32:27.428Z","dependency_job_id":"8acb0898-8c99-4aa3-8229-0e39bd766efc","html_url":"https://github.com/feldroy/air","commit_stats":{"total_commits":4,"total_committers":2,"mean_commits":2.0,"dds":0.25,"last_synced_commit":"56bece511e64befb54c1cf89fe6785bd6a9cd55e"},"previous_names":["audreyr/air","audreyfeldroy/air"],"tags_count":58,"template":false,"template_full_name":null,"purl":"pkg:github/feldroy/air","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feldroy%2Fair","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feldroy%2Fair/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feldroy%2Fair/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feldroy%2Fair/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/feldroy","download_url":"https://codeload.github.com/feldroy/air/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feldroy%2Fair/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33622070,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-28T02:00:06.440Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"feldroy","name":"Feldroy","uuid":"60417019","kind":"organization","description":"The little indie research lab of @pydanny and @audreyfeldroy that builds cool stuff.","email":"hello@feldroy.com","website":"https://www.feldroy.com","location":"United States of America","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/60417019?v=4","repositories_count":38,"last_synced_at":"2026-04-23T13:08:01.519Z","metadata":{"has_sponsors_listing":true,"funding":{"github":["feldroy"]}},"html_url":"https://github.com/feldroy","funding_links":["https://github.com/sponsors/feldroy"],"total_stars":1527,"followers":106,"following":0,"created_at":"2022-11-16T14:01:07.273Z","updated_at":"2026-04-23T13:08:01.519Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/feldroy","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/feldroy/repositories"},"packages":[{"id":2635316,"name":"air","ecosystem":"pypi","description":"The new Python web framework by the authors of Two Scoops of Django. Built with FastAPI, Starlette, and Pydantic.","homepage":"https://github.com/feldroy/air","licenses":"MIT License\n         \n         Copyright (c) 2025-2026 Daniel and Audrey Roy Greenfeld\n         \n         Permission is hereby granted, free of charge, to any person obtaining a copy\n         of this software and associated documentation files (the \"Software\"), to deal\n         in the Software without restriction, including without limitation the rights\n         to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n         copies of the Software, and to permit persons to whom the Software is\n         furnished to do so, subject to the following conditions:\n         \n         The above copyright notice and this permission notice shall be included in all\n         copies or substantial portions of the Software.\n         \n         THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n         IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n         FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n         AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n         LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n         OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n         SOFTWARE.","normalized_licenses":["Other"],"repository_url":"https://github.com/feldroy/air","keywords_array":["air","air-tags","api","async","backend","css","fastapi","fasthtml","framework","frontend","fullstack","html","javascript","jinja","jinja2","openapi","pydantic","python","rest","restapi","restful","server","templates","uvicorn","web"],"namespace":null,"versions_count":63,"first_release_published_at":"2023-08-17T11:28:19.414Z","latest_release_published_at":"2026-04-03T03:39:40.000Z","latest_release_number":"0.48.1","last_synced_at":"2026-05-14T13:02:39.889Z","created_at":"2022-04-10T09:59:43.606Z","updated_at":"2026-05-14T13:02:39.890Z","registry_url":"https://pypi.org/project/air/","install_command":"pip install air --index-url https://pypi.org/simple","documentation_url":"https://air.readthedocs.io/","metadata":{"funding":"https://github.com/sponsors/feldroy","documentation":null,"classifiers":["Development Status :: 3 - Alpha","Environment :: Web Environment","Framework :: FastAPI","Framework :: Pydantic","Framework :: Pydantic :: 2","Intended Audience :: Developers","License :: OSI Approved :: MIT License","Natural Language :: English","Operating System :: MacOS","Operating System :: Microsoft :: Windows","Operating System :: OS Independent","Operating System :: Unix","Programming Language :: JavaScript","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3 :: Only","Programming Language :: Python :: 3.13","Programming Language :: Python :: 3.14","Programming Language :: Python :: Implementation :: CPython","Topic :: Internet","Topic :: Internet :: WWW/HTTP","Topic :: Internet :: WWW/HTTP :: HTTP Servers","Topic :: Software Development","Topic :: Software Development :: Libraries","Topic :: Software Development :: Libraries :: Application Frameworks","Topic :: Software Development :: Libraries :: Python Modules","Topic :: Text Processing","Topic :: Text Processing :: Markup","Topic :: Text Processing :: Markup :: HTML","Typing :: Typed"],"normalized_name":"air","project_status":null},"repo_metadata":{"id":53535721,"uuid":"47806393","full_name":"feldroy/air","owner":"feldroy","description":"The first web framework designed for AI to write. Built on Python, FastAPI, Pydantic, and HTMX. By the authors of Two Scoops of Django.","archived":false,"fork":false,"pushed_at":"2026-04-28T12:56:16.000Z","size":8627,"stargazers_count":873,"open_issues_count":60,"forks_count":98,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-05-01T05:31:13.250Z","etag":null,"topics":["ai","fastapi","pydantic","python","starlette","web"],"latest_commit_sha":null,"homepage":"https://airwebframework.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/feldroy.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG/0.10.0.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["feldroy"]}},"created_at":"2015-12-11T05:08:09.000Z","updated_at":"2026-04-30T14:09:59.000Z","dependencies_parsed_at":"2023-12-13T05:32:27.428Z","dependency_job_id":"8acb0898-8c99-4aa3-8229-0e39bd766efc","html_url":"https://github.com/feldroy/air","commit_stats":{"total_commits":4,"total_committers":2,"mean_commits":2.0,"dds":0.25,"last_synced_commit":"56bece511e64befb54c1cf89fe6785bd6a9cd55e"},"previous_names":["audreyr/air","audreyfeldroy/air"],"tags_count":58,"template":false,"template_full_name":null,"purl":"pkg:github/feldroy/air","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feldroy%2Fair","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feldroy%2Fair/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feldroy%2Fair/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feldroy%2Fair/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/feldroy","download_url":"https://codeload.github.com/feldroy/air/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feldroy%2Fair/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32524565,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-02T01:12:54.858Z","status":"online","status_checked_at":"2026-05-02T02:00:05.923Z","response_time":132,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"feldroy","name":"Feldroy","uuid":"60417019","kind":"organization","description":"The little indie research lab of @pydanny and @audreyfeldroy that builds cool stuff.","email":"hello@feldroy.com","website":"https://www.feldroy.com","location":"United States of America","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/60417019?v=4","repositories_count":38,"last_synced_at":"2026-04-23T13:08:01.519Z","metadata":{"has_sponsors_listing":true,"funding":{"github":["feldroy"]}},"html_url":"https://github.com/feldroy","funding_links":["https://github.com/sponsors/feldroy"],"total_stars":1527,"followers":106,"following":0,"created_at":"2022-11-16T14:01:07.273Z","updated_at":"2026-04-23T13:08:01.519Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/feldroy","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/feldroy/repositories"},"tags":[]},"repo_metadata_updated_at":"2026-05-10T13:13:49.550Z","dependent_packages_count":0,"downloads":1829,"downloads_period":"last-month","dependent_repos_count":4,"rankings":{"downloads":null,"dependent_repos_count":7.537737604474993,"dependent_packages_count":10.002282794063202,"stargazers_count":31.900032803175193,"forks_count":29.793723659146238,"docker_downloads_count":null,"average":19.808444215214905},"purl":"pkg:pypi/air","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/air","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/air","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/air/dependencies","status":null,"funding_links":["https://github.com/sponsors/feldroy"],"critical":null,"issue_metadata":{"last_synced_at":"2026-04-28T15:01:40.318Z","issues_count":162,"pull_requests_count":320,"avg_time_to_close_issue":487315.85714285716,"avg_time_to_close_pull_request":114700.16176470589,"issues_closed_count":98,"pull_requests_closed_count":204,"pull_request_authors_count":32,"issue_authors_count":10,"avg_comments_per_issue":0.24074074074074073,"avg_comments_per_pull_request":0.55,"merged_pull_requests_count":174,"bot_issues_count":1,"bot_pull_requests_count":61,"past_year_issues_count":162,"past_year_pull_requests_count":316,"past_year_avg_time_to_close_issue":487315.85714285716,"past_year_avg_time_to_close_pull_request":115264.0197044335,"past_year_issues_closed_count":98,"past_year_pull_requests_closed_count":203,"past_year_pull_request_authors_count":32,"past_year_issue_authors_count":10,"past_year_avg_comments_per_issue":0.24074074074074073,"past_year_avg_comments_per_pull_request":0.5569620253164557,"past_year_bot_issues_count":1,"past_year_bot_pull_requests_count":60,"past_year_merged_pull_requests_count":173,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/feldroy%2Fair/issues","maintainers":[{"login":"pydanny","count":298,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pydanny"},{"login":"tallerasaf","count":38,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/tallerasaf"},{"login":"audreyfeldroy","count":22,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/audreyfeldroy"},{"login":"Isaac-Flath","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Isaac-Flath"},{"login":"pygarap","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pygarap"}],"active_maintainers":[{"login":"pydanny","count":298,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pydanny"},{"login":"tallerasaf","count":38,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/tallerasaf"},{"login":"audreyfeldroy","count":19,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/audreyfeldroy"},{"login":"Isaac-Flath","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Isaac-Flath"},{"login":"pygarap","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pygarap"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/air/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/air/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/air/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/air/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/air/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/air/codemeta","maintainers":[{"uuid":"audreyr","login":"audreyr","name":null,"email":null,"url":null,"packages_count":39,"html_url":"https://pypi.org/user/audreyr/","role":null,"created_at":"2022-11-15T01:25:46.292Z","updated_at":"2022-11-15T01:25:46.292Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/audreyr/packages"},{"uuid":"pydanny","login":"pydanny","name":null,"email":null,"url":null,"packages_count":83,"html_url":"https://pypi.org/user/pydanny/","role":"Maintainer","created_at":"2025-07-03T07:33:19.424Z","updated_at":"2025-07-03T07:33:19.424Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/pydanny/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":873148,"maintainers_count":373398,"namespaces_count":0,"keywords_count":280639,"github":"pypi","metadata":{"funded_packages_count":53810},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2026-05-13T05:09:37.527Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}}],"commits":{"id":1648183,"full_name":"feldroy/air","default_branch":"main","total_commits":1884,"total_committers":55,"total_bot_commits":80,"total_bot_committers":2,"mean_commits":34.25454545454546,"dds":0.6565817409766455,"past_year_total_commits":1846,"past_year_total_committers":55,"past_year_total_bot_commits":76,"past_year_total_bot_committers":2,"past_year_mean_commits":33.56363636363636,"past_year_dds":0.6495124593716143,"last_synced_at":"2026-05-21T11:38:09.594Z","last_synced_commit":"0bb94b0dcf656c3bc3c8f22d5ab4c2699905c942","created_at":"2024-08-19T16:23:44.724Z","updated_at":"2026-05-21T11:38:01.628Z","committers":[{"name":"Daniel Roy Greenfeld","email":"daniel@feldroy.com","login":"pydanny","count":647},{"name":"pygarap","email":"pygarap@gmail.com","login":"pygarap","count":393},{"name":"Audrey M. Roy Greenfeld","email":"audrey@feldroy.com","login":"audreyfeldroy","count":328},{"name":"Asaf Taller","email":"tallerasaf@gmail.com","login":"tallerasaf","count":170},{"name":"Martin Saizar","email":"saizar.martin@gmail.com","login":"msaizar","count":70},{"name":"renovate[bot]","email":"29139614+renovate[bot]","login":"renovate[bot]","count":46},{"name":"Isaac Flath","email":"Isaac.flath@gmail.com","login":"Isaac-Flath","count":35},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":34},{"name":"sankarebarri","email":"sankarebarri_dev@yahoo.com","login":"sankarebarri","count":22},{"name":"vanessapigwin","email":"72374043+vanessapigwin","login":"vanessapigwin","count":13},{"name":"alasdiel","email":"alex.albinda9@gmail.com","login":"alasdiel","count":9},{"name":"Abram","email":"git.skimming549@passinbox.com","login":"aybruhm","count":8},{"name":"Hamel Husain","email":"hamel.husain@gmail.com","login":"hamelsmu","count":8},{"name":"Ned Palacios","email":"npdoesmc@gmail.com","login":"nedpals","count":8},{"name":"hardwyrd","email":"hardwyrd@gmail.com","login":"hardwyrd","count":7},{"name":"KevsterAmp","email":"kevinamparado13@gmail.com","login":"KevsterAmp","count":6},{"name":"David Fundakowski","email":"dmfundakowski@gmail.com","login":"dfundako","count":6},{"name":"mecit-san","email":"mecitakay92@gmail.com","login":"mecit-san","count":5},{"name":"Zorex Salvo","email":"zorexsalvo@gmail.com","login":"zorexsalvo","count":5},{"name":"Md Al Amin","email":"alaminopu.me@gmail.com","login":"alaminopu","count":5},{"name":"Ellaine Dela Cruz","email":"ellegdlcrz@gmail.com","login":"elliedel","count":5},{"name":"aaronjalapon","email":"aaronjalapon@gmail.com","login":"aey12345","count":4},{"name":"bren","email":"breindelm6@gmail.com","login":"kindadailybren","count":4},{"name":"Denrei Keith","email":"42316655+dkeithdj","login":"dkeithdj","count":4},{"name":"わなかち","email":"108060912+WatanabeChika","login":"WatanabeChika","count":3},{"name":"Prodigius","email":"prodigisoftwares@gmail.com","login":"prodigisoftwares","count":3},{"name":"Gabby","email":"gabxiane@gmail.com","login":"gabxiane","count":3},{"name":"rcrizal@up.edu.ph","email":"marbinoks@Marv.","login":null,"count":2},{"name":"David Larlet","email":"3556+davidbgk","login":"davidbgk","count":2},{"name":"Mehran Kader","email":"kmehran.1106@gmail.com","login":"kmehran1106","count":2},{"name":"Romuald OUATTARA","email":"ouattararomuald@gmail.com","login":"ouattararomuald","count":2},{"name":"joohhhnnnny","email":"johnbongcacjohn@gmail.com","login":"joohhhnnnny","count":2},{"name":"Samiul Sk","email":"sam91v@gmail.com","login":"samims","count":1},{"name":"Edchel Stephen Nini","email":"ed@Edchels-MacBook-Pro.local","login":null,"count":1},{"name":"Sony","email":"shunyvaldez@gmail.com","login":"MrValdez","count":1},{"name":"Tames McTigue","email":"tames@tamerz.com","login":"Tamerz","count":1},{"name":"Xiaochuan Ye","email":"tap91624@gmail.com","login":"XueSongTap","count":1},{"name":"aaronjalapon","email":"arquillanoaaron974@gmail.com","login":"aaronjalapon","count":1},{"name":"chalorejo","email":"charissecardineslorejo@gmail.com","login":"chalorejo","count":1},{"name":"francisdbillones","email":"francisd.billones@gmail.com","login":"francisdbillones","count":1},{"name":"jl","email":"orionjl1106@gmail.com","login":"jlorion","count":1},{"name":"ogbinar","email":"myk.ogbinar@yahoo.com.ph","login":"ogbinar","count":1},{"name":"oreocapybara","email":"71880256+oreocapybara","login":"oreocapybara","count":1},{"name":"trbyte","email":"lavieenalvarez.213@gmail.com","login":"trbyte","count":1},{"name":"AHM Modasser Billah","email":"imtishad@gmail.com","login":"modasserbillah","count":1},{"name":"Akhilanandateja","email":"akhilanandatejasanga@gmail.com","login":"Akhilanandateja","count":1},{"name":"Ben Soyka","email":"hello@bsoyka.me","login":"bsoyka","count":1},{"name":"Edchel Stephen Nini","email":"edchelstephens@gmail.com","login":"edchelstephens","count":1},{"name":"Eleanor Berger","email":"elle.fnord@gmail.com","login":"intellectronica","count":1},{"name":"Enrique Soria","email":"EnriqueSoria","login":"EnriqueSoria","count":1},{"name":"John Franey","email":"1728528+johnfraney","login":"johnfraney","count":1},{"name":"Lucas Garzuze Cordeiro","email":"lucasgarzuze@gmail.com","login":"garzuze","count":1},{"name":"Michael","email":"ohhaus84@gmail.com","login":"ohhaus","count":1},{"name":"Ngô Quang Đạt","email":"141558675+datnq26","login":"datnq26","count":1},{"name":"Norman Hooper","email":"nhooper@dimagi.com","login":"kaapstorm","count":1}],"past_year_committers":[{"name":"Daniel Roy Greenfeld","email":"daniel@feldroy.com","login":"pydanny","count":647},{"name":"pygarap","email":"pygarap@gmail.com","login":"pygarap","count":393},{"name":"Audrey M. Roy Greenfeld","email":"audrey@feldroy.com","login":"audreyfeldroy","count":294},{"name":"Asaf Taller","email":"tallerasaf@gmail.com","login":"tallerasaf","count":170},{"name":"Martin Saizar","email":"saizar.martin@gmail.com","login":"msaizar","count":70},{"name":"renovate[bot]","email":"29139614+renovate[bot]","login":"renovate[bot]","count":46},{"name":"Isaac Flath","email":"Isaac.flath@gmail.com","login":"Isaac-Flath","count":35},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":30},{"name":"sankarebarri","email":"sankarebarri_dev@yahoo.com","login":"sankarebarri","count":22},{"name":"vanessapigwin","email":"72374043+vanessapigwin","login":"vanessapigwin","count":13},{"name":"alasdiel","email":"alex.albinda9@gmail.com","login":"alasdiel","count":9},{"name":"Abram","email":"git.skimming549@passinbox.com","login":"aybruhm","count":8},{"name":"Hamel Husain","email":"hamel.husain@gmail.com","login":"hamelsmu","count":8},{"name":"Ned Palacios","email":"npdoesmc@gmail.com","login":"nedpals","count":8},{"name":"hardwyrd","email":"hardwyrd@gmail.com","login":"hardwyrd","count":7},{"name":"David Fundakowski","email":"dmfundakowski@gmail.com","login":"dfundako","count":6},{"name":"KevsterAmp","email":"kevinamparado13@gmail.com","login":"KevsterAmp","count":6},{"name":"mecit-san","email":"mecitakay92@gmail.com","login":"mecit-san","count":5},{"name":"Zorex Salvo","email":"zorexsalvo@gmail.com","login":"zorexsalvo","count":5},{"name":"Md Al Amin","email":"alaminopu.me@gmail.com","login":"alaminopu","count":5},{"name":"Ellaine Dela Cruz","email":"ellegdlcrz@gmail.com","login":"elliedel","count":5},{"name":"aaronjalapon","email":"aaronjalapon@gmail.com","login":"aey12345","count":4},{"name":"Denrei Keith","email":"42316655+dkeithdj","login":"dkeithdj","count":4},{"name":"bren","email":"breindelm6@gmail.com","login":"kindadailybren","count":4},{"name":"わなかち","email":"108060912+WatanabeChika","login":"WatanabeChika","count":3},{"name":"Prodigius","email":"prodigisoftwares@gmail.com","login":"prodigisoftwares","count":3},{"name":"Gabby","email":"gabxiane@gmail.com","login":"gabxiane","count":3},{"name":"rcrizal@up.edu.ph","email":"marbinoks@Marv.","login":null,"count":2},{"name":"David Larlet","email":"3556+davidbgk","login":"davidbgk","count":2},{"name":"Mehran Kader","email":"kmehran.1106@gmail.com","login":"kmehran1106","count":2},{"name":"Romuald OUATTARA","email":"ouattararomuald@gmail.com","login":"ouattararomuald","count":2},{"name":"joohhhnnnny","email":"johnbongcacjohn@gmail.com","login":"joohhhnnnny","count":2},{"name":"Samiul Sk","email":"sam91v@gmail.com","login":"samims","count":1},{"name":"Edchel Stephen Nini","email":"ed@Edchels-MacBook-Pro.local","login":null,"count":1},{"name":"Sony","email":"shunyvaldez@gmail.com","login":"MrValdez","count":1},{"name":"Tames McTigue","email":"tames@tamerz.com","login":"Tamerz","count":1},{"name":"Xiaochuan Ye","email":"tap91624@gmail.com","login":"XueSongTap","count":1},{"name":"aaronjalapon","email":"arquillanoaaron974@gmail.com","login":"aaronjalapon","count":1},{"name":"chalorejo","email":"charissecardineslorejo@gmail.com","login":"chalorejo","count":1},{"name":"francisdbillones","email":"francisd.billones@gmail.com","login":"francisdbillones","count":1},{"name":"jl","email":"orionjl1106@gmail.com","login":"jlorion","count":1},{"name":"ogbinar","email":"myk.ogbinar@yahoo.com.ph","login":"ogbinar","count":1},{"name":"oreocapybara","email":"71880256+oreocapybara","login":"oreocapybara","count":1},{"name":"trbyte","email":"lavieenalvarez.213@gmail.com","login":"trbyte","count":1},{"name":"AHM Modasser Billah","email":"imtishad@gmail.com","login":"modasserbillah","count":1},{"name":"Akhilanandateja","email":"akhilanandatejasanga@gmail.com","login":"Akhilanandateja","count":1},{"name":"Ben Soyka","email":"hello@bsoyka.me","login":"bsoyka","count":1},{"name":"Edchel Stephen Nini","email":"edchelstephens@gmail.com","login":"edchelstephens","count":1},{"name":"Eleanor Berger","email":"elle.fnord@gmail.com","login":"intellectronica","count":1},{"name":"Enrique Soria","email":"EnriqueSoria","login":"EnriqueSoria","count":1},{"name":"John Franey","email":"1728528+johnfraney","login":"johnfraney","count":1},{"name":"Lucas Garzuze Cordeiro","email":"lucasgarzuze@gmail.com","login":"garzuze","count":1},{"name":"Michael","email":"ohhaus84@gmail.com","login":"ohhaus","count":1},{"name":"Ngô Quang Đạt","email":"141558675+datnq26","login":"datnq26","count":1},{"name":"Norman Hooper","email":"nhooper@dimagi.com","login":"kaapstorm","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/feldroy%2Fair/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-28T00:00:09.340Z","repositories_count":6244246,"commits_count":883131612,"contributors_count":34958272,"owners_count":1158738,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues":{"table":{"full_name":"feldroy/air","html_url":"https://github.com/feldroy/air","last_synced_at":"2026-05-12T11:02:20.602Z","status":"active","issues_count":166,"pull_requests_count":324,"avg_time_to_close_issue":487315.85714285716,"avg_time_to_close_pull_request":123728.0487804878,"issues_closed_count":98,"pull_requests_closed_count":205,"pull_request_authors_count":32,"issue_authors_count":11,"avg_comments_per_issue":0.25903614457831325,"avg_comments_per_pull_request":0.5462962962962963,"merged_pull_requests_count":174,"bot_issues_count":1,"bot_pull_requests_count":65,"past_year_issues_count":166,"past_year_pull_requests_count":320,"past_year_avg_time_to_close_issue":487315.85714285716,"past_year_avg_time_to_close_pull_request":124333.39705882352,"past_year_issues_closed_count":98,"past_year_pull_requests_closed_count":204,"past_year_pull_request_authors_count":32,"past_year_issue_authors_count":11,"past_year_avg_comments_per_issue":0.25903614457831325,"past_year_avg_comments_per_pull_request":0.553125,"past_year_bot_issues_count":1,"past_year_bot_pull_requests_count":64,"past_year_merged_pull_requests_count":173,"created_at":"2025-07-16T12:08:18.052Z","updated_at":"2026-05-12T11:02:20.602Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/feldroy%2Fair","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/feldroy%2Fair/issues","issue_labels_count":{"table":{"feature":56,"docs":37,"Air Tags":24,"bug":23,"python":17,"good first issue":7,"refactor":5,"enhancement":4,"help wanted":4,"dependencies":3,"feature: core":2,"upgrade":2,"github_actions":2,"Status: Mergable ✅":1,"duplicate":1,"feature: extra":1,"Status: Blocked 🛑":1,"Status: Review Needed 💬":1,"renovate":1}},"pull_request_labels_count":{"table":{"docs":48,"python":43,"deps":41,"feature":31,"dependencies":29,"Air Tags":24,"dependabot":22,"uv":20,"bug":17,"Status: Mergable ✅":17,"upgrade":15,"Status: Review Needed 💬":14,"renovate":14,"github_actions":13,"Status: Do Not Merge! ❌":12,"python:uv":10,"enhancement":7,"refactor":7,"Status: Approved! 👍":6,"actions":4,"Status: In Review 👀":3,"feature: core":2,"help wanted":1,"feature: extra":1,"needs-design-discussion":1,"Status: On-hold 🛑":1,"Status: Blocked 🛑":1}},"issue_author_associations_count":{"table":{"MEMBER":151,"NONE":7,"COLLABORATOR":6,"CONTRIBUTOR":2}},"pull_request_author_associations_count":{"table":{"MEMBER":173,"CONTRIBUTOR":94,"COLLABORATOR":38,"NONE":19}},"issue_authors":{"table":{"pydanny":149,"tallerasaf":5,"Isaac-Flath":3,"audreyfeldroy":2,"darjeeling":1,"Fflath":1,"treyhunner":1,"renatooliveira":1,"jefftriplett":1,"renovate[bot]":1,"shumizu418128":1}},"pull_request_authors":{"table":{"pydanny":151,"dependabot[bot]":50,"tallerasaf":38,"audreyfeldroy":22,"renovate[bot]":15,"mecit-san":5,"vanessapigwin":5,"Isaac-Flath":4,"alaminopu":3,"zorexsalvo":3,"WatanabeChika":2,"sankarebarri":2,"prodigisoftwares":2,"msaizar":2,"francisdbillones":2,"kernelshard":2,"pygarap":1,"dfundako":1,"devkumar2313":1,"mikhailofff":1,"datnq26":1,"aybruhm":1,"kmehran1106":1,"XueSongTap":1,"johnfraney":1,"awanawana":1,"Akhilanandateja":1,"modasserbillah":1,"aaroncymor":1,"bunvin":1,"intellectronica":1,"darjeeling":1}},"host":{"table":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-14T00:00:12.120Z","repositories_count":14598745,"issues_count":34297912,"pull_requests_count":112289055,"authors_count":11261410,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"}},"past_year_issue_labels_count":{"table":{"feature":56,"docs":37,"Air Tags":24,"bug":23,"python":17,"good first issue":7,"refactor":5,"enhancement":4,"help wanted":4,"dependencies":3,"upgrade":2,"feature: core":2,"github_actions":2,"feature: extra":1,"renovate":1,"Status: Blocked 🛑":1,"Status: Mergable ✅":1,"Status: Review Needed 💬":1,"duplicate":1}},"past_year_pull_request_labels_count":{"table":{"docs":48,"python":42,"deps":41,"feature":31,"dependencies":28,"Air Tags":24,"dependabot":22,"uv":20,"Status: Mergable ✅":17,"bug":17,"upgrade":15,"Status: Review Needed 💬":14,"renovate":14,"github_actions":13,"Status: Do Not Merge! ❌":12,"python:uv":10,"refactor":7,"enhancement":7,"Status: Approved! 👍":6,"actions":4,"Status: In Review 👀":3,"feature: core":2,"Status: Blocked 🛑":1,"help wanted":1,"feature: extra":1,"Status: On-hold 🛑":1,"needs-design-discussion":1}},"past_year_issue_author_associations_count":{"table":{"MEMBER":151,"NONE":7,"COLLABORATOR":6,"CONTRIBUTOR":2}},"past_year_pull_request_author_associations_count":{"table":{"MEMBER":170,"CONTRIBUTOR":93,"COLLABORATOR":38,"NONE":19}},"past_year_issue_authors":{"table":{"pydanny":149,"tallerasaf":5,"Isaac-Flath":3,"audreyfeldroy":2,"darjeeling":1,"Fflath":1,"jefftriplett":1,"renatooliveira":1,"renovate[bot]":1,"shumizu418128":1,"treyhunner":1}},"past_year_pull_request_authors":{"table":{"pydanny":151,"dependabot[bot]":49,"tallerasaf":38,"audreyfeldroy":19,"renovate[bot]":15,"vanessapigwin":5,"mecit-san":5,"Isaac-Flath":4,"zorexsalvo":3,"alaminopu":3,"WatanabeChika":2,"sankarebarri":2,"prodigisoftwares":2,"msaizar":2,"kernelshard":2,"francisdbillones":2,"aaroncymor":1,"XueSongTap":1,"Akhilanandateja":1,"awanawana":1,"aybruhm":1,"bunvin":1,"darjeeling":1,"pygarap":1,"datnq26":1,"devkumar2313":1,"dfundako":1,"modasserbillah":1,"mikhailofff":1,"kmehran1106":1,"intellectronica":1,"johnfraney":1}},"maintainers":[{"table":{"login":"pydanny","count":300,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pydanny"}},{"table":{"login":"tallerasaf","count":38,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/tallerasaf"}},{"table":{"login":"audreyfeldroy","count":24,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/audreyfeldroy"}},{"table":{"login":"Isaac-Flath","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Isaac-Flath"}},{"table":{"login":"pygarap","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pygarap"}}],"active_maintainers":[{"table":{"login":"pydanny","count":300,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pydanny"}},{"table":{"login":"tallerasaf","count":38,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/tallerasaf"}},{"table":{"login":"audreyfeldroy","count":21,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/audreyfeldroy"}},{"table":{"login":"Isaac-Flath","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Isaac-Flath"}},{"table":{"login":"pygarap","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pygarap"}}]}},"events":{"total":{"CreateEvent":277,"ReleaseEvent":34,"IssuesEvent":478,"WatchEvent":304,"DeleteEvent":262,"MemberEvent":2,"IssueCommentEvent":400,"PushEvent":1407,"PullRequestReviewCommentEvent":197,"PullRequestReviewEvent":339,"PullRequestEvent":692,"ForkEvent":28},"last_year":{"CreateEvent":277,"ReleaseEvent":34,"IssuesEvent":478,"WatchEvent":304,"DeleteEvent":262,"MemberEvent":2,"IssueCommentEvent":400,"PushEvent":1407,"PullRequestReviewCommentEvent":197,"PullRequestReviewEvent":339,"PullRequestEvent":692,"ForkEvent":28}},"keywords":["ai","fastapi","pydantic","python","starlette","web"],"dependencies":[{"ecosystem":"pypi","filepath":"requirements_dev.txt","sha":null,"kind":"manifest","created_at":"2022-09-04T22:02:15.909Z","updated_at":"2022-09-04T22:02:15.909Z","repository_link":"https://github.com/feldroy/air/blob/main/requirements_dev.txt","dependencies":[{"id":3830906281,"package_name":"bumpversion","ecosystem":"pypi","requirements":"==0.5.3","direct":true,"kind":"development","optional":false},{"id":3830906282,"package_name":"wheel","ecosystem":"pypi","requirements":"==0.23.0","direct":true,"kind":"development","optional":false},{"id":3830906283,"package_name":"watchdog","ecosystem":"pypi","requirements":"==0.8.3","direct":true,"kind":"development","optional":false},{"id":3830906284,"package_name":"flake8","ecosystem":"pypi","requirements":"==2.4.1","direct":true,"kind":"development","optional":false},{"id":3830906285,"package_name":"tox","ecosystem":"pypi","requirements":"==2.1.1","direct":true,"kind":"development","optional":false},{"id":3830906286,"package_name":"coverage","ecosystem":"pypi","requirements":"==4.0","direct":true,"kind":"development","optional":false},{"id":3830906287,"package_name":"Sphinx","ecosystem":"pypi","requirements":"==1.3.1","direct":true,"kind":"development","optional":false},{"id":3830906288,"package_name":"cryptography","ecosystem":"pypi","requirements":"==1.0.1","direct":true,"kind":"development","optional":false},{"id":3830906289,"package_name":"PyYAML","ecosystem":"pypi","requirements":"==3.11","direct":true,"kind":"development","optional":false}]},{"ecosystem":"pypi","filepath":"setup.py","sha":null,"kind":"manifest","created_at":"2023-12-13T05:32:27.420Z","updated_at":"2023-12-13T05:32:27.420Z","repository_link":"https://github.com/feldroy/air/blob/main/setup.py","dependencies":[]}],"score":18.363748422198732,"created_at":"2025-12-20T13:16:37.687Z","updated_at":"2026-05-31T20:30:31.195Z","avatar_url":"https://github.com/feldroy.png","language":"Python","codemeta":null,"publiccode":null,"project_url":"https://summary.ecosyste.ms/api/v1/projects/370043","html_url":"https://summary.ecosyste.ms/projects/370043"}