Skip to content

Commit f8356b1

Browse files
authored
site: add Built on Echo section, update official packages (#466)
* site: add Built on Echo section to the home page Text-only cards for projects that run on Echo, linking to their public source and to ADOPTERS.md in labstack/echo. Logos stay a sponsor benefit. Claude-Session: https://claude.ai/code/session_01QKDYQr53zNKkR7nif2CAAq * site: point footer Contributing link at the README section .github/CONTRIBUTING.md does not exist in labstack/echo, so the link returned 404. Claude-Session: https://claude.ai/code/session_01QKDYQr53zNKkR7nif2CAAq * site: list echo-otel and echo-prometheus, fill the sponsor heart The Ecosystem section now shows the four official packages (echo-jwt, echo-otel, echo-prometheus, echo-contrib). echo-swagger is third-party and the API reference stays in the footer. The Become a sponsor button uses a filled pink heart. Claude-Session: https://claude.ai/code/session_01QKDYQr53zNKkR7nif2CAAq
1 parent a2a381d commit f8356b1

2 files changed

Lines changed: 39 additions & 7 deletions

File tree

‎site/src/content/docs/index.mdx‎

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,31 @@ import { CardGrid, Code, LinkButton, LinkCard, Steps } from '@astrojs/starlight/
7373
<div class="echo-eco not-content">
7474
<CardGrid>
7575
<LinkCard title="echo-jwt" description="JWT authentication middleware backed by golang-jwt." href="https://github.com/labstack/echo-jwt" target="_blank" rel="noopener noreferrer" />
76-
<LinkCard title="echo-contrib" description="Prometheus, Casbin, Jaeger, pprof, Zipkin &amp; session helpers." href="https://github.com/labstack/echo-contrib" target="_blank" rel="noopener noreferrer" />
77-
<LinkCard title="echo-swagger" description="Generate and serve interactive Swagger / OpenAPI docs." href="https://github.com/swaggo/echo-swagger" target="_blank" rel="noopener noreferrer" />
78-
<LinkCard title="API Reference" description="Full package documentation on pkg.go.dev." href="https://pkg.go.dev/github.com/labstack/echo/v5" target="_blank" rel="noopener noreferrer" />
76+
<LinkCard title="echo-otel" description="OpenTelemetry tracing and metrics middleware." href="https://github.com/labstack/echo-otel" target="_blank" rel="noopener noreferrer" />
77+
<LinkCard title="echo-prometheus" description="Prometheus metrics middleware." href="https://github.com/labstack/echo-prometheus" target="_blank" rel="noopener noreferrer" />
78+
<LinkCard title="echo-contrib" description="Casbin, sessions, pprof and tracing helpers." href="https://github.com/labstack/echo-contrib" target="_blank" rel="noopener noreferrer" />
7979
</CardGrid>
8080
</div>
8181

82+
<div class="echo-h"><span class="ey">In production</span><h2>Built on Echo.</h2></div>
83+
84+
<div class="ub-grid">
85+
<a class="ub-card" href="https://github.com/bluesky-social/indigo" target="_blank" rel="noopener noreferrer"><b>Bluesky indigo</b><span>AT Protocol Relay</span></a>
86+
<a class="ub-card" href="https://github.com/temporalio/ui" target="_blank" rel="noopener noreferrer"><b>Temporal UI</b><span>Web UI server</span></a>
87+
<a class="ub-card" href="https://github.com/NVIDIA/nvcf" target="_blank" rel="noopener noreferrer"><b>NVIDIA Cloud Functions</b><span>LLM API gateway</span></a>
88+
<a class="ub-card" href="https://github.com/Azure/azure-container-networking" target="_blank" rel="noopener noreferrer"><b>Azure Container Networking</b><span>CNS REST API</span></a>
89+
<a class="ub-card" href="https://github.com/osbuild/osbuild-composer" target="_blank" rel="noopener noreferrer"><b>osbuild-composer</b><span>Red Hat Image Builder API</span></a>
90+
<a class="ub-card" href="https://github.com/docker/docker-agent" target="_blank" rel="noopener noreferrer"><b>Docker Agent</b><span>Agent and A2A servers</span></a>
91+
<a class="ub-card" href="https://github.com/yugabyte/yugabyte-db" target="_blank" rel="noopener noreferrer"><b>YugabyteDB</b><span>yugabyted UI API</span></a>
92+
<a class="ub-card" href="https://github.com/PostHog/posthog" target="_blank" rel="noopener noreferrer"><b>PostHog</b><span>Livestream service</span></a>
93+
<a class="ub-card" href="https://github.com/bytebase/bytebase" target="_blank" rel="noopener noreferrer"><b>Bytebase</b><span>Backend and API</span></a>
94+
<a class="ub-card" href="https://github.com/hatchet-dev/hatchet" target="_blank" rel="noopener noreferrer"><b>Hatchet</b><span>API server</span></a>
95+
<a class="ub-card" href="https://github.com/IceWhaleTech/CasaOS" target="_blank" rel="noopener noreferrer"><b>CasaOS</b><span>API server</span></a>
96+
<a class="ub-card" href="https://github.com/teamhanko/hanko" target="_blank" rel="noopener noreferrer"><b>Hanko</b><span>Authentication backend</span></a>
97+
</div>
98+
99+
<p class="ub-more"><a href="https://github.com/labstack/echo/blob/master/ADOPTERS.md" target="_blank" rel="noopener noreferrer">See all adopters</a> · <a href="https://github.com/labstack/echo/blob/master/ADOPTERS.md#add-your-project" target="_blank" rel="noopener noreferrer">Add your project</a></p>
100+
82101
<div class="echo-h"><span class="ey">Sponsors</span><h2>Backed by teams who build on Echo.</h2></div>
83102

84103
<a class="sp-featured" href="https://blacksmith.sh" target="_blank" rel="noopener noreferrer">
@@ -97,7 +116,7 @@ import { CardGrid, Code, LinkButton, LinkCard, Steps } from '@astrojs/starlight/
97116
<a class="sp-card" href="https://github.com/Codeerror" target="_blank" rel="noopener noreferrer"><img src="https://github.com/Codeerror.png?size=52" alt="Codeerror" width="26" height="26" loading="lazy" decoding="async" /><span>Codeerror</span></a>
98117
</div>
99118

100-
<div class="sp-cta"><LinkButton href="https://github.com/sponsors/labstack" variant="secondary" icon="heart" iconPlacement="start" target="_blank" rel="noopener noreferrer">Become a sponsor</LinkButton></div>
119+
<div class="sp-cta"><LinkButton href="https://github.com/sponsors/labstack" variant="secondary" target="_blank" rel="noopener noreferrer"><svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"/></svg>Become a sponsor</LinkButton></div>
101120

102121
<div class="echo-foot">
103122
<h2 class="sr-only">Site links</h2>
@@ -117,7 +136,7 @@ import { CardGrid, Code, LinkButton, LinkCard, Steps } from '@astrojs/starlight/
117136
<a href="https://github.com/labstack/echo" target="_blank" rel="noopener noreferrer">GitHub</a>
118137
<a href="https://github.com/labstack/echo/releases" target="_blank" rel="noopener noreferrer">Releases</a>
119138
<a href="https://github.com/labstack/echo/discussions" target="_blank" rel="noopener noreferrer">Discussions</a>
120-
<a href="https://github.com/labstack/echo/blob/master/.github/CONTRIBUTING.md" target="_blank" rel="noopener noreferrer">Contributing</a>
139+
<a href="https://github.com/labstack/echo#contributing" target="_blank" rel="noopener noreferrer">Contributing</a>
121140
</div>
122141
<div class="col">
123142
<h3>Resources</h3>

‎site/src/styles/terminal.css‎

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,7 @@ starlight-toc a[aria-current='true'] { color: var(--echo-cyan-text); border-inli
328328
.not-content manage their own spacing via gap/explicit margins — neutralise it. */
329329
.echo-stats > *, .echo-steps > *,
330330
.sp-featured > *, .sp-card > *, .sp-grid > *,
331+
.ub-grid > *, .ub-card > *,
331332
.echo-foot > .brand, .echo-foot > .col { margin-top: 0; }
332333

333334
.hh { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; align-items: start; padding: 28px 0 8px; }
@@ -382,12 +383,24 @@ starlight-toc a[aria-current='true'] { color: var(--echo-cyan-text); border-inli
382383
.sp-cta { text-align: center; }
383384
.sp-cta a { margin: 0; font-family: var(--sl-font-mono); font-size: 0.82rem; color: var(--echo-cyan-text); text-decoration: none; border: 1px solid rgba(0,175,209,.3); border-radius: 9px; padding: 8px 16px; }
384385
.sp-cta a:hover { background: var(--echo-soft); }
385-
.sp-cta a svg { font-size: 1em; }
386+
.sp-cta a svg { font-size: 1em; color: #db61a2; }
387+
388+
/* ===================== Used by ===================== */
389+
.ub-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; margin-bottom: 18px; }
390+
@media (min-width: 40rem) { .ub-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
391+
@media (min-width: 64rem) { .ub-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
392+
.ub-card { display: flex; flex-direction: column; gap: 4px; border: 1px solid var(--sl-color-hairline); background: var(--sl-color-bg-sidebar); border-radius: 11px; padding: 12px 16px; text-decoration: none; transition: border-color .15s, background .15s; }
393+
.ub-card:hover { border-color: var(--echo-cyan); background: var(--echo-soft); }
394+
.ub-card b { font-family: var(--sl-font-mono); font-size: .9rem; font-weight: 600; color: var(--echo-cyan-text); }
395+
.ub-card span { font-size: .84rem; color: var(--sl-color-gray-3); }
396+
.ub-more { text-align: center; font-family: var(--sl-font-mono); font-size: .82rem; }
397+
.ub-more a { color: var(--echo-cyan-text); text-decoration: none; }
398+
.ub-more a:hover { text-decoration: underline; }
386399

387400
/* ===================== Ecosystem ===================== */
388401
.echo-eco .sl-link-card { border-color: var(--sl-color-hairline); background: var(--sl-color-bg-sidebar); border-radius: 11px; box-shadow: none; transition: border-color .15s, background .15s; }
389402
.echo-eco .sl-link-card:hover { border-color: var(--echo-cyan); background: var(--echo-soft); }
390403
.echo-eco .title { font-family: var(--sl-font-mono); font-size: .9rem; color: var(--echo-cyan-text); }
391404
.echo-eco .description { font-size: .86rem; }
392405
.echo-eco .sl-link-card:focus-within { outline: 2px solid var(--echo-cyan-text); outline-offset: 3px; }
393-
:where(.hh-btn, .echo-social a, .sp-featured, .sp-card, .sp-cta a):focus-visible { outline: 2px solid var(--echo-cyan-text); outline-offset: 3px; }
406+
:where(.hh-btn, .echo-social a, .sp-featured, .sp-card, .sp-cta a, .ub-card, .ub-more a):focus-visible { outline: 2px solid var(--echo-cyan-text); outline-offset: 3px; }

0 commit comments

Comments
 (0)