fix(website): rewrite the ecosystem band, drop two false coverage links

The band led with three sentences of hedging and printed a commit count
next to each employer, so a one-commit entry beside a large name read as
weakness rather than as the modest, true claim it was. It now opens on the
contributor count, sets the employers as a sentence instead of a pill wall,
and keeps the caveat to one line. The counts stay in ecosystem.yaml, since
they are the provenance for the list and anyone re-checking it needs them.

Two "coverage" cards were not about this project. The modelslab.com piece
reviews Frikallo/parakeet.cpp, an unrelated project of the same name, and
the snailtext.app benchmark measures Parakeet through ONNX Runtime without
mentioning LocalAI at all. Both are removed, along with the contributor
card that duplicated the band's opening line.

Press was four posts from one vendor, which read as the whole of the
coverage rather than one enthusiastic outlet. SUSE collapses to a single
series entry, and Pulumi, Semaphore and Spectro Cloud join it. Each was
opened and checked against the project before being added. K8sGPT and
LlamaIndex join the integrations; both document LocalAI as a backend.

The quotes move above the lists so the section opens on its strongest
line, which is somebody else's. The hero gains a GitHub call to action,
the APEX collection link was returning 404 and is corrected, and the
footer no longer describes the site as a design mock.

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
Assisted-by: Claude Code:claude-opus-5[1m]
This commit is contained in:
Ettore Di Giacinto
2026-07-31 14:24:26 +00:00
parent dad4d5956a
commit 0bedc75921
6 changed files with 87 additions and 63 deletions

View File

@@ -19,6 +19,10 @@
contributors:
note: "Engineers whose public profile names these employers have commits in the repository."
# The landing page prints the names only, not the per-company counts: a "1
# commit" stamp next to a large employer reads as weakness even though the
# claim is exactly as true. The counts stay here because they are the
# provenance for the list, and anyone re-checking it needs them.
companies:
- { name: "Microsoft", people: 3, commits: 20 }
- { name: "Spectro Cloud", people: 3, commits: 11 }
@@ -70,28 +74,50 @@ integrations:
by: Sertac Ozercan
url: https://github.com/sozercan/aikit
what: "Builds fine-tuned models into images that serve through LocalAI."
- name: K8sGPT
by: CNCF Sandbox
url: https://docs.k8sgpt.ai/reference/providers/backend/
what: "Lists LocalAI as an analysis backend, alongside Bedrock and Azure OpenAI."
- name: LlamaIndex
url: https://docs.llamaindex.ai/en/stable/examples/llm/localai/
what: "Documents LocalAI as an OpenAI-compatible LLM you can point it at."
- name: Kairos
url: https://github.com/kairos-io/kairos
what: "Ships LocalAI as part of its immutable Linux distribution."
press:
note: "Written about LocalAI, by people who do not work on it."
# One card per outlet. SUSE published four posts, and listing them as four
# entries made a single vendor look like the whole of the coverage; as one
# series entry the repetition becomes the point instead of the problem.
#
# Every entry here has been opened and checked to confirm it is about this
# project. Two earlier "coverage" links were not: a modelslab.com piece that
# reviewed Frikallo/parakeet.cpp, an unrelated project of the same name, and
# a snailtext.app benchmark of Parakeet through ONNX Runtime that never
# mentioned LocalAI at all. Verify before adding.
articles:
- outlet: Pulumi
title: "Deploy low-code LLM apps on AWS with Flowise and LocalAI"
author: "Engin Diri"
date: "2024-02-26"
url: https://www.pulumi.com/blog/low-code-llm-apps-with-local-ai-flowise-and-pulumi/
what: "A full EKS deployment, with LocalAI doing inference and no GPU in the cluster."
- outlet: Semaphore
title: "LocalAI: replacing OpenAI API with open-source"
author: "Tomas Fernandez"
date: "2023-12-19"
url: https://semaphore.io/blog/localai
what: "Swapping an existing OpenAI integration over to LocalAI, endpoint by endpoint."
- outlet: Spectro Cloud
title: "K8sGPT + LocalAI: unlock Kubernetes superpowers for free"
author: "Tyler Gillson"
date: "2023-04-29"
url: https://www.spectrocloud.com/blog/k8sgpt-localai-unlock-kubernetes-superpowers-for-free
what: "Cluster diagnosis through K8sGPT, answered by a model running on CPU."
- outlet: SUSE
title: "Running AI locally"
title: "A four-part series on running AI locally"
author: "Christian Huller"
date: "2025-11-24"
url: https://www.suse.com/c/running-ai-locally/
what: "Deploying LocalAI on openSUSE, then driving it from VS Code."
- outlet: SUSE
title: "Adding own documents to your local AI using RAG"
url: https://www.suse.com/c/adding-own-documents-to-your-local-ai-using-rag/
what: "Retrieval over your own documents, on top of LocalAI."
- outlet: SUSE
title: "Local AI and Confluence"
url: https://www.suse.com/c/local-ai-and-confluence/
what: "Putting a Confluence space behind a local model."
- outlet: SUSE
title: "Introduction to AI training with openSUSE"
url: https://www.suse.com/c/introduction-to-ai-training-with-opensuse/
what: "Training a LoRA and serving it through LocalAI."
what: "Install on openSUSE and drive it from VS Code, add your own documents with RAG, put a Confluence space behind a local model, then train a LoRA and serve it."

View File

@@ -18,6 +18,7 @@ enableEmoji = true
huggingface = 'https://huggingface.co/mudler'
# Refreshed by hand or by CI; shown in the nav and the traction band.
stars = '48,042'
contributors = '224'
[markup.goldmark.renderer]
unsafe = true

View File

@@ -13,6 +13,7 @@
<div class="acts fd">
<a class="btn" href="#start">Install LocalAI <span></span></a>
<a class="btn btn--o" href="/docs/">Read the docs</a>
<a class="btn btn--o" href="{{ .Site.Params.github }}">&#9733; Star on GitHub</a>
</div>
<div class="figures fd">
<div><b class="tnum" data-count="48042">0</b><span>GitHub stars</span></div>
@@ -279,7 +280,7 @@
</div>
<p class="mono rv" style="margin-top:.9rem;font-size:.66rem;color:var(--p-dim)">Qwen3.5-35B-A3B on an NVIDIA DGX Spark (GB10). Perplexity on wikitext-2-raw at context 2048. Full methodology in the technical report.</p>
<div class="acts rv">
<a class="btn" href="https://huggingface.co/collections/mudler/apex-quants">APEX models on Hugging Face ↗</a>
<a class="btn" href="https://huggingface.co/collections/mudler/apex-quants-gguf">APEX models on Hugging Face ↗</a>
<a class="btn btn--o" href="https://github.com/localai-org/apex-quant">Technical report ↗</a>
</div>
</div>
@@ -397,35 +398,9 @@
<span>Deutsch</span><span>Español</span><span>français</span><span>日本語</span>
<span>한국어</span><span>Português</span><span>Русский</span><span>中文</span>
</div>
<p class="kicker rv mt3">Who turns up around it</p>
<h3 class="eco__h rv">Engineers from these companies have put code in</h3>
<p class="eco__note rv">Every name below is a person with commits in the repository whose public profile
names that employer. It is a claim about them, not about their employer, and the commit history is
there if you want to check it. Organisations that want to say they use LocalAI add themselves to
<a href="https://github.com/mudler/LocalAI/blob/master/ADOPTERS.md">ADOPTERS.md</a>.</p>
<ul class="eco eco--co rv">
{{- range .Site.Data.ecosystem.contributors.companies }}
<li><b>{{ .name }}</b><span>{{ .commits }} commit{{ if ne .commits 1 }}s{{ end }}{{ if gt .people 1 }}, {{ .people }} people{{ end }}</span></li>
{{- end }}
</ul>
<p class="eco__aside rv">Plus researchers at {{ delimit .Site.Data.ecosystem.contributors.academia ", " " and " }}.</p>
<h3 class="eco__h rv mt3">And these projects integrate it</h3>
<p class="eco__note rv">Each one references LocalAI in its own repository or documentation, so you can
verify any of them without taking our word for it.</p>
<div class="eco eco--int rv">
{{- range .Site.Data.ecosystem.integrations.projects }}
<a href="{{ .url }}"><b>{{ .name }}</b>{{ with .by }}<em>{{ . }}</em>{{ end }}<span>{{ .what }}</span></a>
{{- end }}
</div>
<h3 class="eco__h rv mt3">Written about elsewhere</h3>
<div class="eco eco--press rv">
{{- range .Site.Data.ecosystem.press.articles }}
<a href="{{ .url }}"><b>{{ .outlet }}</b><span>{{ .title }}</span><em>{{ .what }}</em></a>
{{- end }}
</div>
{{/* The strongest sentence in this section is somebody else's, so it opens
the section rather than closing it. Everything below is supporting
evidence for what these three people already said. */}}
<p class="kicker rv mt3">What other people say</p>
<div class="headline">
<a class="hq rv" href="https://x.com/ggerganov/status/2065447087311917459">
@@ -442,6 +417,37 @@
<span class="hq__go">Read the post &#8599;</span></a>
</div>
{{/* Names run as a sentence rather than a grid of pills. A pill wall of
employers reads as a customer logo wall, which is a claim we are not
making; a sentence keeps it about the people, which is the true one. */}}
<p class="kicker rv mt3">Who shows up</p>
<h3 class="eco__h rv">{{ .Site.Params.contributors }} people have put code in this repository.</h3>
{{- $co := slice }}
{{- range .Site.Data.ecosystem.contributors.companies }}{{ $co = $co | append (printf "<b>%s</b>" .name) }}{{ end }}
{{- $ac := slice }}
{{- range .Site.Data.ecosystem.contributors.academia }}{{ $ac = $ac | append (printf "<b>%s</b>" .) }}{{ end }}
<p class="eco__names rv">Some of them do it from a desk at {{ delimit $co ", " " and " | safeHTML }}.
Others from labs at {{ delimit $ac ", " " and " | safeHTML }}.</p>
<p class="eco__note rv">That is where they work, not who sent them.
<a href="{{ .Site.Params.github }}/graphs/contributors">The commit history is public &#8599;</a></p>
<h3 class="eco__h rv mt3">And these projects integrate it</h3>
<p class="eco__note rv">Each one names LocalAI in its own repository or documentation.</p>
<div class="eco eco--int rv">
{{- range .Site.Data.ecosystem.integrations.projects }}
<a href="{{ .url }}"><b>{{ .name }}</b>{{ with .by }}<em>{{ . }}</em>{{ end }}<span>{{ .what }}</span></a>
{{- end }}
</div>
<p class="eco__aside rv">Using LocalAI at work? Add your organisation to
<a href="{{ .Site.Params.github }}/blob/master/ADOPTERS.md">ADOPTERS.md</a>.</p>
<h3 class="eco__h rv mt3">Written about elsewhere</h3>
<div class="eco eco--press rv">
{{- range .Site.Data.ecosystem.press.articles }}
<a href="{{ .url }}"><b>{{ .outlet }}</b><span>{{ .title }}</span><em>{{ .what }}</em></a>
{{- end }}
</div>
<p class="kicker rv mt3">Built on, integrated with, written about</p>
<div class="posts">
<a class="post rv" href="https://x.com/sozercan/status/1769769695081546236">
@@ -477,17 +483,6 @@
<p>Oh, high there @LocalAI_API, nice to see a terminal based UI for ya! (it&#x27;s a WIP, but just wanted something cleaner then CURL calls)</p>
<span class="post__go">On X, 2023 &#8599;</span></a>
</div>
<div class="cards">
<a class="cd rv" href="https://modelslab.com/blog/audio-generation/parakeet-cpp-vs-whisper-self-hosted-asr-comparison-2026"><p class="cd__k">Coverage</p>
<h3>parakeet.cpp vs Whisper</h3><p>An independent comparison of self-hosted ASR options put parakeet.cpp against Whisper on accuracy and speed.</p>
<span class="cite">modelslab.com ↗</span></a>
<a class="cd rv" href="https://snailtext.app/blog/whisper-vs-parakeet-tdt/"><p class="cd__k">Coverage</p>
<h3>Roughly 4x faster on CPU</h3><p>A third-party benchmark measured Parakeet TDT against Whisper Small through whisper.cpp on the same machine.</p>
<span class="cite">snailtext.app ↗</span></a>
<a class="cd rv" href="https://github.com/mudler/LocalAI/graphs/contributors"><p class="cd__k">Contributors</p>
<h3>224 people have shipped code</h3><p>Backends, gallery entries, docs, translations and bug fixes, from people who are not on the team.</p>
<span class="cite">github.com ↗</span></a>
</div>
</div>
</section>

View File

@@ -9,6 +9,6 @@
<div><h4>Community</h4><ul><li><a href="https://github.com/mudler/LocalAI">GitHub</a></li><li><a href="https://discord.gg/uJAeKSAGDy">Discord</a></li><li><a href="https://twitter.com/LocalAI_API">X</a></li><li><a href="https://huggingface.co/mudler">Hugging Face</a></li></ul></div>
<div><h4>Support us</h4><ul><li><a href="https://github.com/sponsors/mudler">Sponsor</a></li><li><a href="https://github.com/mudler/LocalAI/graphs/contributors">Contributors</a></li><li><a href="/docs/">Contributing</a></li></ul></div>
</div>
<div class="foot__n"><span>© 2026 LocalAI</span><span>MIT licence</span><span>Design mock, not a live page</span></div>
<div class="foot__n"><span>© 2026 LocalAI</span><span>MIT licence</span><span><a href="{{ .Site.Params.github }}">Source on GitHub</a></span></div>
</div>
</footer>

View File

@@ -13,7 +13,7 @@
<a href="{{ .Site.Params.docsURL }}">Docs</a>
</nav>
<div class="topright">
<a class="pill" href="{{ .Site.Params.github }}/stargazers">&#9733; {{ .Site.Params.stars }}</a>
<a class="pill" href="{{ .Site.Params.github }}">&#9733; {{ .Site.Params.stars }}</a>
<a class="go-btn" href="{{ $home }}#start">Install</a>
</div>
</header>

View File

@@ -442,14 +442,16 @@ footer{background:var(--deep);border-top:1px solid var(--line2);padding:3rem 0 4
.eco__note{color:var(--dim);font-size:.92rem;max-width:66ch;margin-top:.7rem}
.eco__note a{color:var(--cyan);text-decoration:underline;text-underline-offset:.2rem}
.eco__aside{color:var(--faint);font-size:.85rem;margin-top:1rem;max-width:66ch}
.eco__aside a{color:var(--cyan);text-decoration:underline;text-underline-offset:.2rem}
/* Employers are set as a running sentence, not a grid of pills, so the line
reads as a statement about people rather than a wall of customer logos. The
names take weight and the connective text stays dim, which lets the eye
scan the list without the paragraph turning into a badge rack. */
.eco__names{color:var(--dim);font-size:1rem;line-height:1.75;max-width:62ch;margin-top:1rem}
.eco__names b{color:var(--ink);font-weight:600}
.eco{list-style:none;padding:0;margin:1.4rem 0 0}
.eco--co{display:flex;flex-wrap:wrap;gap:.5rem}
.eco--co li{display:flex;align-items:baseline;gap:.5rem;padding:.5rem .8rem;border-radius:999px;
border:1px solid var(--line);background:rgba(255,255,255,.028);transition:border-color .22s,background .22s}
.eco--co li:hover{border-color:rgba(95,205,228,.5);background:rgba(95,205,228,.07)}
.eco--co b{font-size:.9rem;font-weight:600;color:var(--ink)}
.eco--co span{font-family:'Geist Mono',monospace;font-size:.6rem;color:var(--faint);white-space:nowrap}
.eco--int{display:grid;gap:.8rem}
@media(min-width:700px){.eco--int{grid-template-columns:repeat(2,1fr)}}