mirror of
https://github.com/mudler/LocalAI.git
synced 2026-08-01 02:49:51 -04:00
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:
@@ -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."
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 }}">★ 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 ↗</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 ↗</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's a WIP, but just wanted something cleaner then CURL calls)</p>
|
||||
<span class="post__go">On X, 2023 ↗</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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<a href="{{ .Site.Params.docsURL }}">Docs</a>
|
||||
</nav>
|
||||
<div class="topright">
|
||||
<a class="pill" href="{{ .Site.Params.github }}/stargazers">★ {{ .Site.Params.stars }}</a>
|
||||
<a class="pill" href="{{ .Site.Params.github }}">★ {{ .Site.Params.stars }}</a>
|
||||
<a class="go-btn" href="{{ $home }}#start">Install</a>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
@@ -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)}}
|
||||
|
||||
Reference in New Issue
Block a user