Skip to content

Commit daab941

Browse files
localai-botmudler
andauthored
feat(website): add an ecosystem band, and an ADOPTERS file to back it (#11248)
Adds the "who turns up around this project" section, split into three lists because the evidence behind each one is a different strength and collapsing them into a single logo wall would overclaim. Contributors 21 companies whose engineers have commits here. Evidence is the commit history plus the employer on that person's public GitHub profile, so it is a claim about the person. Commit counts are shown next to each name, including the ones that are a single patch, because hiding that would be the whole problem. Integrations six projects that reference LocalAI in their own repository or documentation, which anyone can verify without asking us. Press four SUSE Communities articles about running LocalAI. Names are set in type rather than fetched as logos. A logo reads as endorsement, and a one-line typo fix from somebody who happens to work at a large company does not support that, quite apart from what their trademark policy says about it. ADOPTERS.md is the mechanism for the stronger claim. An organisation that wants to be listed as a user opens a pull request adding itself, which is both the evidence and the permission, and is publicly auditable afterwards. The file says plainly what the website does and does not claim, so the next person to ask "can we add some big names" has the answer in the repository. Assisted-by: Claude Code:claude-opus-5 [Bash] [Edit] [Write] [WebSearch] Signed-off-by: Ettore Di Giacinto <mudler@localai.io> Co-authored-by: Ettore Di Giacinto <mudler@localai.io>
1 parent 94d5aff commit daab941

4 files changed

Lines changed: 214 additions & 0 deletions

File tree

ADOPTERS.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Adopters
2+
3+
Organisations running LocalAI, listed by the people who run it.
4+
5+
If your organisation uses LocalAI and you are happy to say so publicly, open a
6+
pull request adding a row to the table below. That pull request is how we know
7+
we have permission to list you, which is why we do not add anybody ourselves.
8+
9+
You do not need to be a large company, and you do not need to disclose anything
10+
sensitive. A sentence on what you use it for is more useful to other readers
11+
than a logo.
12+
13+
## How to add yourself
14+
15+
1. Add a row to the table, in alphabetical order.
16+
2. Use your organisation's usual name and a link to your site.
17+
3. Say briefly what you use LocalAI for, and whether it is in production.
18+
4. Open the pull request from an account that makes it plausible you speak for
19+
the organisation, or say in the description who you are. We may ask.
20+
21+
To be removed, open a pull request deleting your row, or email
22+
[info@localai.io](mailto:info@localai.io). We will not ask why.
23+
24+
## Who is using LocalAI
25+
26+
<!-- Keep alphabetical. Columns: Organisation | What for | Status -->
27+
28+
| Organisation | What they use it for | Status |
29+
|---|---|---|
30+
| _Your organisation here_ | | |
31+
32+
## What this list is not
33+
34+
This is not a list of everyone who has ever starred the repository, and it is
35+
not a list of the employers of people who have contributed a patch. Both of
36+
those are easy to scrape and neither means what a logo wall implies.
37+
38+
The website shows two separate things, both of which are checkable without
39+
anybody's permission:
40+
41+
- **Engineers from these companies have contributed code.** Evidence is the
42+
commit history plus the employer on that person's public GitHub profile. It
43+
is a claim about a person, not about their employer.
44+
- **These projects integrate LocalAI.** Evidence is a reference to LocalAI in
45+
that project's own repository or documentation.
46+
47+
Those two lists live in [`website/data/ecosystem.yaml`](website/data/ecosystem.yaml).
48+
This file is the third, stronger thing: organisations that chose to say so.

website/data/ecosystem.yaml

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
# Who shows up around LocalAI, and the evidence for each claim.
2+
#
3+
# Three lists, three different strengths of evidence. Keep them separate: a
4+
# person fixing a typo is not their employer adopting the project, and saying
5+
# so invites a takedown request.
6+
#
7+
# contributors someone with commits in this repository whose public GitHub
8+
# profile names that employer. Evidence is the commit history
9+
# plus a self-declared field, so the claim is about the person.
10+
# integrations the other project's own repository or documentation
11+
# references LocalAI. Checkable by anyone, needs no permission.
12+
# press somebody else published a piece about LocalAI.
13+
#
14+
# Companies that want to say they use LocalAI add themselves to ADOPTERS.md at
15+
# the repository root. That pull request is the permission, which is why the
16+
# adopters list is kept apart from this file.
17+
#
18+
# Refreshed on 2026-07-31. Contribution counts are from the GitHub API.
19+
20+
contributors:
21+
note: "Engineers whose public profile names these employers have commits in the repository."
22+
companies:
23+
- { name: "Microsoft", people: 3, commits: 20 }
24+
- { name: "Spectro Cloud", people: 3, commits: 11 }
25+
- { name: "VictoriaMetrics", people: 1, commits: 5 }
26+
- { name: "Acronis", people: 1, commits: 5 }
27+
- { name: "BearingPoint", people: 1, commits: 4 }
28+
- { name: "Zendesk", people: 1, commits: 3 }
29+
- { name: "Nextcloud", people: 1, commits: 2 }
30+
- { name: "Scaleway", people: 1, commits: 2 }
31+
- { name: "Kubermatic", people: 1, commits: 2 }
32+
- { name: "Avanade", people: 1, commits: 2 }
33+
- { name: "IBM", people: 1, commits: 1 }
34+
- { name: "Ableton", people: 1, commits: 1 }
35+
- { name: "Atlassian", people: 1, commits: 1 }
36+
- { name: "TikTok", people: 1, commits: 1 }
37+
- { name: "CockroachDB", people: 1, commits: 1 }
38+
- { name: "MediaTek", people: 1, commits: 1 }
39+
- { name: "Samsung SDS", people: 1, commits: 1 }
40+
- { name: "Ant Group", people: 1, commits: 1 }
41+
- { name: "Deloitte", people: 1, commits: 1 }
42+
- { name: "solo.io", people: 1, commits: 1 }
43+
- { name: "Qonto", people: 1, commits: 1 }
44+
academia:
45+
- MIT
46+
- University of Edinburgh
47+
- RMIT
48+
- Rochester Institute of Technology
49+
- University of Miami
50+
- USC
51+
52+
integrations:
53+
note: "These projects reference LocalAI in their own repository or documentation."
54+
projects:
55+
- name: AnythingLLM
56+
by: Mintplex Labs
57+
url: https://github.com/Mintplex-Labs/anything-llm
58+
what: "Runs LocalAI as a model provider for its chat and document workspaces."
59+
- name: langchain4j
60+
url: https://github.com/langchain4j/langchain4j
61+
what: "Ships a LocalAI module, so JVM applications can target it directly."
62+
- name: LangChain
63+
url: https://python.langchain.com/docs/integrations/providers/localai/
64+
what: "Documents LocalAI as a provider in the Python integrations."
65+
- name: Flowise
66+
by: FlowiseAI
67+
url: https://github.com/FlowiseAI/Flowise
68+
what: "Offers LocalAI as a node for chat and embeddings in its visual builder."
69+
- name: AIKit
70+
by: Sertac Ozercan
71+
url: https://github.com/sozercan/aikit
72+
what: "Builds fine-tuned models into images that serve through LocalAI."
73+
- name: Kairos
74+
url: https://github.com/kairos-io/kairos
75+
what: "Ships LocalAI as part of its immutable Linux distribution."
76+
77+
press:
78+
note: "Written about LocalAI, by people who do not work on it."
79+
articles:
80+
- outlet: SUSE
81+
title: "Running AI locally"
82+
author: "Christian Huller"
83+
date: "2025-11-24"
84+
url: https://www.suse.com/c/running-ai-locally/
85+
what: "Deploying LocalAI on openSUSE, then driving it from VS Code."
86+
- outlet: SUSE
87+
title: "Adding own documents to your local AI using RAG"
88+
url: https://www.suse.com/c/adding-own-documents-to-your-local-ai-using-rag/
89+
what: "Retrieval over your own documents, on top of LocalAI."
90+
- outlet: SUSE
91+
title: "Local AI and Confluence"
92+
url: https://www.suse.com/c/local-ai-and-confluence/
93+
what: "Putting a Confluence space behind a local model."
94+
- outlet: SUSE
95+
title: "Introduction to AI training with openSUSE"
96+
url: https://www.suse.com/c/introduction-to-ai-training-with-opensuse/
97+
what: "Training a LoRA and serving it through LocalAI."

website/layouts/index.html

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -397,6 +397,35 @@ <h2 class="rv mt1" style="max-width:22ch">Forty-eight thousand stars, and still
397397
<span>Deutsch</span><span>Español</span><span>français</span><span>日本語</span>
398398
<span>한국어</span><span>Português</span><span>Русский</span><span>中文</span>
399399
</div>
400+
<p class="kicker rv mt3">Who turns up around it</p>
401+
<h3 class="eco__h rv">Engineers from these companies have put code in</h3>
402+
<p class="eco__note rv">Every name below is a person with commits in the repository whose public profile
403+
names that employer. It is a claim about them, not about their employer, and the commit history is
404+
there if you want to check it. Organisations that want to say they use LocalAI add themselves to
405+
<a href="https://github.com/mudler/LocalAI/blob/master/ADOPTERS.md">ADOPTERS.md</a>.</p>
406+
<ul class="eco eco--co rv">
407+
{{- range .Site.Data.ecosystem.contributors.companies }}
408+
<li><b>{{ .name }}</b><span>{{ .commits }} commit{{ if ne .commits 1 }}s{{ end }}{{ if gt .people 1 }}, {{ .people }} people{{ end }}</span></li>
409+
{{- end }}
410+
</ul>
411+
<p class="eco__aside rv">Plus researchers at {{ delimit .Site.Data.ecosystem.contributors.academia ", " " and " }}.</p>
412+
413+
<h3 class="eco__h rv mt3">And these projects integrate it</h3>
414+
<p class="eco__note rv">Each one references LocalAI in its own repository or documentation, so you can
415+
verify any of them without taking our word for it.</p>
416+
<div class="eco eco--int rv">
417+
{{- range .Site.Data.ecosystem.integrations.projects }}
418+
<a href="{{ .url }}"><b>{{ .name }}</b>{{ with .by }}<em>{{ . }}</em>{{ end }}<span>{{ .what }}</span></a>
419+
{{- end }}
420+
</div>
421+
422+
<h3 class="eco__h rv mt3">Written about elsewhere</h3>
423+
<div class="eco eco--press rv">
424+
{{- range .Site.Data.ecosystem.press.articles }}
425+
<a href="{{ .url }}"><b>{{ .outlet }}</b><span>{{ .title }}</span><em>{{ .what }}</em></a>
426+
{{- end }}
427+
</div>
428+
400429
<p class="kicker rv mt3">What other people say</p>
401430
<div class="headline">
402431
<a class="hq rv" href="https://x.com/ggerganov/status/2065447087311917459">

website/static/css/site.css

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -432,3 +432,43 @@ footer{background:var(--deep);border-top:1px solid var(--line2);padding:3rem 0 4
432432
.rv,.fd{opacity:1;transform:none}.hero h1 u b{transform:none}
433433
.bars i,.sz i{transform:scaleX(1)}
434434
}
435+
436+
/* ---- Ecosystem band ----------------------------------------------------
437+
Three lists, three strengths of evidence, kept visually distinct so a
438+
contributor's employer never reads as a customer logo. Names are set in
439+
type rather than fetched as logos: no trademark question, and it matches
440+
the rest of the page. */
441+
.eco__h{font-size:clamp(1.25rem,2.3vw,1.7rem);margin-top:1.1rem}
442+
.eco__note{color:var(--dim);font-size:.92rem;max-width:66ch;margin-top:.7rem}
443+
.eco__note a{color:var(--cyan);text-decoration:underline;text-underline-offset:.2rem}
444+
.eco__aside{color:var(--faint);font-size:.85rem;margin-top:1rem;max-width:66ch}
445+
446+
.eco{list-style:none;padding:0;margin:1.4rem 0 0}
447+
.eco--co{display:flex;flex-wrap:wrap;gap:.5rem}
448+
.eco--co li{display:flex;align-items:baseline;gap:.5rem;padding:.5rem .8rem;border-radius:999px;
449+
border:1px solid var(--line);background:rgba(255,255,255,.028);transition:border-color .22s,background .22s}
450+
.eco--co li:hover{border-color:rgba(95,205,228,.5);background:rgba(95,205,228,.07)}
451+
.eco--co b{font-size:.9rem;font-weight:600;color:var(--ink)}
452+
.eco--co span{font-family:'Geist Mono',monospace;font-size:.6rem;color:var(--faint);white-space:nowrap}
453+
454+
.eco--int{display:grid;gap:.8rem}
455+
@media(min-width:700px){.eco--int{grid-template-columns:repeat(2,1fr)}}
456+
@media(min-width:1020px){.eco--int{grid-template-columns:repeat(3,1fr)}}
457+
.eco--int a{display:flex;flex-direction:column;gap:.3rem;padding:1.05rem 1.1rem;border-radius:10px;
458+
border:1px solid var(--line);background:rgba(255,255,255,.028);
459+
transition:transform .26s cubic-bezier(.16,1,.3,1),border-color .26s}
460+
.eco--int a:hover{transform:translateY(-3px);border-color:rgba(95,205,228,.55)}
461+
.eco--int b{font-size:1rem;color:var(--ink)}
462+
.eco--int em{font-family:'Geist Mono',monospace;font-size:.6rem;font-style:normal;color:var(--cyan)}
463+
.eco--int span{color:var(--dim);font-size:.85rem}
464+
465+
.eco--press{display:grid;gap:.8rem}
466+
@media(min-width:760px){.eco--press{grid-template-columns:repeat(2,1fr)}}
467+
.eco--press a{display:grid;gap:.25rem;padding:.95rem 1.05rem;border-radius:10px;
468+
border:1px solid var(--line);border-left:2px solid var(--cyan);background:rgba(255,255,255,.028);
469+
transition:background .22s}
470+
.eco--press a:hover{background:rgba(95,205,228,.07)}
471+
.eco--press b{font-family:'Geist Mono',monospace;font-size:.62rem;letter-spacing:.12em;
472+
text-transform:uppercase;color:var(--cyan)}
473+
.eco--press span{color:var(--ink);font-size:.94rem}
474+
.eco--press em{color:var(--faint);font-size:.82rem;font-style:normal}

0 commit comments

Comments
 (0)