From 438f64834de00708a9bb3548a36090e7a924ad84 Mon Sep 17 00:00:00 2001 From: Marcelo Trylesinski Date: Tue, 28 Apr 2026 10:14:03 +0200 Subject: [PATCH] Surface sponsors on welcome page and sidebar (#2921) --- docs/css/extra.css | 72 +++++++++++ docs/img/fastapi-logo.png | Bin 0 -> 19843 bytes docs/img/hf-logo-with-title-dark.svg | 9 ++ docs/img/hf-logo-with-title.svg | 9 ++ docs/index.md | 16 +++ docs/overrides/partials/nav.html | 15 +++ docs/sponsorship.md | 184 --------------------------- mkdocs.yml | 4 +- 8 files changed, 124 insertions(+), 185 deletions(-) create mode 100644 docs/css/extra.css create mode 100644 docs/img/fastapi-logo.png create mode 100644 docs/img/hf-logo-with-title-dark.svg create mode 100644 docs/img/hf-logo-with-title.svg delete mode 100644 docs/sponsorship.md diff --git a/docs/css/extra.css b/docs/css/extra.css new file mode 100644 index 00000000..a4fd26b9 --- /dev/null +++ b/docs/css/extra.css @@ -0,0 +1,72 @@ +.md-nav__sponsors { + display: flex; + flex-direction: column; + align-items: center; + gap: 0.5rem; + margin: 1.2rem 0.4rem 0.6rem; + padding: 0.9rem 0.6rem 0.8rem; + background-color: color-mix(in srgb, var(--md-primary-fg-color) 8%, transparent); + border-radius: 0.4rem; +} + +.md-nav__sponsors-title { + margin: 0 0 0.1rem; + font-size: 0.6rem; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.05em; + color: var(--md-default-fg-color--light); +} + +.md-nav__sponsor { + display: flex; + align-items: center; + justify-content: center; + width: 100%; + padding: 0.25rem; + border-radius: 0.2rem; + transition: opacity 0.15s; +} + +.md-nav__sponsor:hover { + opacity: 0.75; +} + +.md-nav__sponsor img { + max-width: 100%; + max-height: 1.6rem; + object-fit: contain; +} + +img[src*="#only-dark"], +img[src*="#gh-dark-mode-only"] { + display: none; +} + +[data-md-color-scheme="slate"] img[src*="#only-dark"], +[data-md-color-scheme="slate"] img[src*="#gh-dark-mode-only"] { + display: inline; +} + +[data-md-color-scheme="slate"] img[src*="#only-light"], +[data-md-color-scheme="slate"] img[src*="#gh-light-mode-only"] { + display: none; +} + +.md-nav__sponsor-cta { + display: inline-block; + margin-top: 0.15rem; + padding: 0.25rem 0.6rem; + font-size: 0.65rem; + font-weight: 600; + color: var(--md-primary-bg-color); + background-color: var(--md-primary-fg-color); + border-radius: 0.2rem; + text-decoration: none; + transition: opacity 0.15s; +} + +.md-nav__sponsor-cta:hover { + opacity: 0.85; + color: var(--md-primary-bg-color); +} diff --git a/docs/img/fastapi-logo.png b/docs/img/fastapi-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f08144cd92e7ae62f57e34044605c56a92c1504c GIT binary patch literal 19843 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 DDxOq& literal 0 HcmV?d00001 diff --git a/docs/img/hf-logo-with-title-dark.svg b/docs/img/hf-logo-with-title-dark.svg new file mode 100644 index 00000000..4bdd1182 --- /dev/null +++ b/docs/img/hf-logo-with-title-dark.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/img/hf-logo-with-title.svg b/docs/img/hf-logo-with-title.svg new file mode 100644 index 00000000..7e254084 --- /dev/null +++ b/docs/img/hf-logo-with-title.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/index.md b/docs/index.md index 96c63c55..8fc2744d 100644 --- a/docs/index.md +++ b/docs/index.md @@ -44,6 +44,22 @@ and means we're now able to start building a common set of tooling usable across Uvicorn currently supports **HTTP/1.1** and **WebSockets**. +## Sponsorship + +Help us keep Uvicorn maintained and sustainable by [becoming a sponsor](https://github.com/sponsors/Kludex). + +**Current sponsors:** + + + ## Quickstart **Uvicorn** is available on [PyPI](https://pypi.org/project/uvicorn/) so installation is as simple as: diff --git a/docs/overrides/partials/nav.html b/docs/overrides/partials/nav.html index f61d8e4e..130e5dc5 100644 --- a/docs/overrides/partials/nav.html +++ b/docs/overrides/partials/nav.html @@ -44,4 +44,19 @@ {{ item.render(nav_item, path, 1) }} {% endfor %} + + + diff --git a/docs/sponsorship.md b/docs/sponsorship.md deleted file mode 100644 index 16188c91..00000000 --- a/docs/sponsorship.md +++ /dev/null @@ -1,184 +0,0 @@ -# ✨ Sponsor Starlette & Uvicorn ✨ - -Thank you for your interest in sponsoring Starlette and Uvicorn! ❤️ - -Your support *directly* contributes to the ongoing development, maintenance, and long-term sustainability of both projects. - -
-
-

67M+

-

Starlette Downloads/Month

-
-
-

57M+

-

Uvicorn Downloads/Month

-
-
-

19K+

-

Combined GitHub Stars

-
-
- -## Why Sponsor? - -While Starlette and Uvicorn are part of the [Encode](https://github.com/encode) organization, -they have been primarily maintained by [**Marcelo Trylesinski (Kludex)**](https://github.com/Kludex) -for the past several years. His dedication and consistent work have been instrumental in keeping -these projects robust, secure, and up-to-date. - -This sponsorship page was created to give the community an opportunity to support Marcelo's continued -efforts in maintaining and improving both projects. Your sponsorship directly enables him to -dedicate more time and resources to maintaining and improving these essential tools: - -- [x] **Active Development:** Developing new features, enhancing existing ones, and - keeping both projects aligned with the latest developments in the Python and ASGI ecosystems. 💻 -- [x] **Community Support:** Providing better support, addressing user issues, - and cultivating a welcoming environment for contributors. 🤝 -- [x] **Long-Term Stability:** Ensuring the long-term viability of both projects through strategic - planning and addressing technical debt. 🌳 -- [x] **Bug Fixes & Maintenance:** Providing prompt attention to bug reports and - general maintenance to keep the projects reliable. 🔨 -- [x] **Security:** Ensuring robust security practices, conducting regular security audits, and - promptly addressing vulnerabilities to protect millions of production deployments. 🔒 -- [x] **Documentation:** Creating comprehensive guides, tutorials, and examples to help users of all skill levels. 📖 - -## How Sponsorship Works - -We currently manage sponsorships *exclusively* through **GitHub Sponsors**. This platform integrates seamlessly with the GitHub ecosystem, making it easy for organizations to contribute. - -
-

🌟 Become a Sponsor Today! 🌟

-

Your support helps keep Starlette and Uvicorn growing stronger!

- - ❤️ Sponsor on GitHub - -
- -## Sponsorship Tiers 🎁 - -
-
-

🥉 Bronze Sponsor

-
$100/month
-
    -
  • ✓ Company name on Sponsors page
  • -
  • ✓ Small logo with link
  • -
  • ✓ Our eternal gratitude
  • -
- -
-
-

🥈 Silver Sponsor

-
$250/month
-
    -
  • ✓ All Bronze benefits
  • -
  • ✓ Medium-sized logo
  • -
  • ✓ Release notes mention
  • -
- -
-
-
- Popular -
-

🥇 Gold Sponsor

-
$500/month
-
    -
  • ✓ All Silver benefits
  • -
  • ✓ Large logo on main pages
  • -
  • ✓ Priority support
  • -
- -
-
- -
-

🤝 Custom Sponsor

-

Looking for something different? Contact us to discuss custom sponsorship options!

-
- -## Current Sponsors - -**Thank you to our generous sponsors!** 🙏 - -
- - -
-

🥈 Silver Sponsors

-
- -
-
- -
-

🥉 Bronze Sponsors

-
- -
-
-
- -## Alternative Sponsorship Platforms - -
-

📢 We Want Your Input!

-

We are currently evaluating whether to expand our sponsorship options beyond GitHub Sponsors. If your company would be interested in sponsoring Starlette and Uvicorn but prefers to use a different platform (e.g., Open Collective, direct invoicing), please let us know!

-

Your feedback is invaluable in helping us make sponsorship as accessible as possible. Share your thoughts by:

- -
- - - -## Community & Future Plans 🌟 - -We want to express our deepest gratitude to all the contributors who have helped shape Starlette and -Uvicorn over the years. These projects wouldn't be what they are today without the incredible work of -every single contributor. - -Special thanks to some of our most impactful contributors: - -- **Tom Christie** ([@tomchristie](https://github.com/tomchristie)) - The original creator of Starlette and Uvicorn. -- **Adrian Garcia Badaracco** ([@adriangb](https://github.com/adriangb)) - Major contributor to Starlette. -- **Thomas Grainger** ([@graingert](https://github.com/graingert)) - Major contributor to AnyIO, and significant contributions to Starlette and Uvicorn. -- **Alex Grönholm** ([@agronholm](https://github.com/agronholm)) - Creator of AnyIO. -- **Florimond Manca** ([@florimondmanca](https://github.com/florimondmanca)) - Important contributions to Starlette and Uvicorn. - -If you want your name removed from the list above, or if I forgot a significant contributor, please let me know. -You can view all contributors on GitHub: -[Starlette Contributors](https://github.com/Kludex/starlette/graphs/contributors) / [Uvicorn Contributors](https://github.com/Kludex/uvicorn/graphs/contributors). - -While the current sponsorship program directly supports Marcelo's maintenance work, we are exploring ways -to distribute funding to other key contributors in the future. This initiative is still in early planning -stages, as we want to ensure a fair and sustainable model that recognizes the valuable contributions of -our community members. \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index fd2c31d6..c79eba48 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -62,7 +62,6 @@ nav: - Docker: deployment/docker.md - Release Notes: release-notes.md - Contributing: contributing.md - - Sponsorship: sponsorship.md extra: analytics: @@ -80,6 +79,9 @@ extra: - icon: fontawesome/solid/globe link: https://fastapiexpert.com +extra_css: + - css/extra.css + markdown_extensions: - attr_list - admonition