Skip to content

Commit 58e36ed

Browse files
authored
Feature/testimonials (#32)
* Add Testimonials on Home Page * Added Logo Marquee Signed-off-by: Steve Scargall <37674041+sscargal@users.noreply.github.com>
1 parent 40ac8da commit 58e36ed

File tree

12 files changed

+554
-33
lines changed

12 files changed

+554
-33
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
title: "Amazing Results with MemMachine"
3+
date: 2025-11-10T17:40:16-06:00
4+
author: "Jenny Ouyang"
5+
company: "Build to Launch"
6+
company_url: "https://buildtolaunch.substack.com/"
7+
logo: "https://substackcdn.com/image/fetch/$s_!-Gdw!,w_1360,c_limit,f_webp,q_auto:best,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff16127ca-d8c9-405b-b955-66eddd21936a_1024x1024.png"
8+
draft: false
9+
---
10+
11+
Profile memory is my favorite part. I've been storing and retrieving many of my articles through MemMachine, and the way it handles personalization is beautiful. Instead of creating another slash command or digging through every file I've saved, the profile memory just knows. It's there when I need it. What I really love is that they've abstracted all the complexity away while leaving the flexibility to use pieces independently. That's the sweet spot - powerful but not overwhelming.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
title: "Amazing Results with MemMachine"
3+
date: 2025-11-10T17:40:16-06:00
4+
author: "Brandon Monroe"
5+
company: "Character Engine"
6+
company_url: "https://characterengine.ai/"
7+
logo: ""
8+
draft: false
9+
---
10+
MemMachine enabled me to build my dream. AI Sparring Partners that exist everywhere you work, remembers everything about you, patterns, your blind spots, and challenge you instead of validate you. I'm not building chatbots - I'm building your distributed advisory partners that have persistent memory and builds a relationship with you using a simulated artificial consciousness engine. MemMachine was the missing piece, my yin to my yang.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
title: "Amazing Results with MemMachine"
3+
date: 2025-11-10T17:40:16-06:00
4+
author: "Brandon Monroe"
5+
company: "TeamMate"
6+
company_url: "https://teammate.app/"
7+
logo: "https://www.teamate.app/_next/image?url=%2Fimages%2Fteamate.png&w=48&q=75"
8+
draft: false
9+
---
10+
11+
Teamate leverages MemMachine's advanced memory infrastructure—combining vector databases, graph-based entity and temporal relationships—to power our proactive AI assistant that transforms team collaboration. It allows Teamate to deliver intelligent, context-aware insights that improve with every conversation and automate manual tasks for our customers. We are delighted to see the efficiency boost MemVerge gets by using Teamate internally, and we are excited about the journey ahead to build the best Team-AI collaboration experience powered by the best open-source memory solution in the world.

content/en/testimonials/_index.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
title: "What Our Customers Say"
3+
subtitle: "Real feedback from teams using MemMachine"
4+
---

data/logos.yaml

Lines changed: 109 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,110 @@
1-
- name: Microsoft
2-
src: /img/logos/microsoft.svg
3-
4-
- name: Google
5-
src: /img/logos/google.svg
6-
7-
- name: Amazon Web Services
8-
src: /img/logos/aws.svg
9-
10-
- name: Notion
11-
src: /img/logos/notion.svg
12-
13-
- name: Slack
14-
src: /img/logos/slack.svg
15-
16-
- name: LangChain
17-
src: /img/logos/langchain.svg
18-
19-
- name: NVIDIA
20-
src: /img/logos/nvidia.svg
21-
22-
- name: Hugging Face
23-
src: /img/logos/huggingface.svg
24-
1+
- name: Acquisition Professionals LLC
2+
src: ''
3+
- name: agi-inc
4+
src: ''
5+
- name: Arista Networks
6+
src: 'https://companieslogo.com/img/orig/ANET_BIG-150f82cc.png'
7+
- name: AWeber Communications
8+
src: 'https://cdn.brandfetch.io/idbmq3hCb3/w/800/h/159/theme/dark/logo.png?c=1bxid64Mup7aczewSAYMX&t=1673275842849'
9+
- name: BGI-Shenzhen
10+
src: ''
11+
- name: Busymachines
12+
src: ''
13+
- name: canary-technologies-corp
14+
src: ''
15+
- name: Clinical Enterprise LLC
16+
src: ''
17+
- name: cloudpilot-ai
18+
src: 'https://www.cloudpilot.ai/_next/static/media/logo.86e1216b.svg'
19+
- name: DaoCloud
20+
src: 'https://cdn.brandfetch.io/id94_fCLMb/w/200/h/200/theme/dark/icon.jpeg?c=1bxid64Mup7aczewSAYMX&t=1751250003738'
21+
- name: Delta
22+
src: ''
23+
- name: DoltHub Inc
24+
src: ''
25+
- name: Duke University ECE
26+
src: 'https://ece.duke.edu/wp-content/uploads/sites/9/2025/09/Duke-ECE-Logo-RGB-Horizontal-White.png'
27+
- name: Fortrest
28+
src: ''
29+
- name: Frontier-tech
30+
src: ''
31+
- name: George Washington University
32+
src: ''
33+
- name: Get Outfit, Human Rated AI, SuperGenia
34+
src: ''
35+
- name: Glory Ventures
36+
src: ''
37+
- name: HuggingFace
38+
src: 'https://cdn.brandfetch.io/idGqKHD5xE/w/800/h/741/theme/dark/symbol.png?c=1bxid64Mup7aczewSAYMX&t=1668516030712'
39+
- name: IIE CAS
40+
src: ''
41+
- name: Indian Institute of Technology Madras
42+
src: ''
43+
- name: KB Data Systems
44+
src: ''
45+
- name: Key Consulting Group
46+
src: ''
47+
- name: Maynooth University
48+
src: ''
49+
- name: MazloDev
50+
src: ''
51+
- name: MemVerge
52+
src: 'https://cdn.brandfetch.io/idX3ncxRvw/w/1208/h/269/theme/dark/logo.png?c=1bxid64Mup7aczewSAYMX&t=1757112085505'
2553
- name: Meta
26-
src: /img/logos/meta.svg
27-
28-
- name: OpenAI
29-
src: /img/logos/OpenAI-white-wordmark.svg
54+
src: 'https://cdn.brandfetch.io/idWvz5T3V7/w/800/h/345/theme/light/logo.png?c=1bxid64Mup7aczewSAYMX&t=1677088245181'
55+
- name: MIT Human Mobility and Networks Lab @humnetlab
56+
src: ''
57+
- name: Notion
58+
src: 'https://cdn.brandfetch.io/idPYUoikV7/w/800/h/278/theme/light/logo.png?c=1bxid64Mup7aczewSAYMX&t=1714126994629'
59+
- name: ollama
60+
src: 'https://cdn.brandfetch.io/idrRDmZ2_F/w/180/h/180/theme/light/logo.png?c=1bxid64Mup7aczewSAYMX&t=1755705341841'
61+
- name: OptimNow
62+
src: ''
63+
- name: Oy Shinovent Ltd.
64+
src: ''
65+
- name: Palmier, Inc
66+
src: ''
67+
- name: perpetua1
68+
src: ''
69+
- name: Plant & Food Research
70+
src: ''
71+
- name: Plasticity.Cloud
72+
src: ''
73+
- name: Prototype and the Paradox Universe LLC
74+
src: ''
75+
- name: QNIB Solutions
76+
src: ''
77+
- name: Rancher Labs @ SUSE
78+
src: 'https://cdn.brandfetch.io/idMhBHsdx9/w/820/h/292/theme/dark/logo.png?c=1bxid64Mup7aczewSAYMX&t=1760328067675'
79+
- name: recallrai
80+
src: ''
81+
- name: Rice University / Dartmouth College
82+
src: ''
83+
- name: SK hynix
84+
src: 'https://cdn.brandfetch.io/idLbLhLg7n/w/216/h/58/theme/dark/logo.png?c=1bxid64Mup7aczewSAYMX&t=1755483762466'
85+
- name: Slalom
86+
src: ''
87+
- name: Slyd
88+
src: ''
89+
- name: splat.ai
90+
src: ''
91+
- name: STAST
92+
src: ''
93+
- name: StudyChain
94+
src: ''
95+
- name: SuperFan Studio
96+
src: ''
97+
- name: Tencent
98+
src: 'https://cdn.brandfetch.io/idPf1s-Y7S/w/800/h/107/theme/light/logo.png?c=1bxid64Mup7aczewSAYMX&t=1721828545874'
99+
- name: thisisartium
100+
src: ''
101+
- name: Trilogy AI Center of Excellence
102+
src: ''
103+
- name: Tsinghua
104+
src: ''
105+
- name: Unlimited Robotics
106+
src: ''
107+
- name: weaviate
108+
src: 'https://cdn.brandfetch.io/id8U-ebNOv/w/399/h/399/theme/dark/icon.jpeg?c=1bxid64Mup7aczewSAYMX&t=1760668136977'
109+
- name: Yandex
110+
src: ''

themes/memmachine/layouts/_partials/home-sections.html

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ <h3 class="title-3">Memory is the <span>Key to Personalization</span></h3>
159159
<!--=======================================================
160160
LOGO MARQUEE
161161
=========================================================-->
162-
{{/* partial "logo-marquee.html" . */}}
162+
{{ partial "logo-marquee.html" . }}
163163

164164
<!--=======================================================
165165
FEATURES
@@ -295,6 +295,11 @@ <h4>Data is Persisted to Databases</h4>
295295
</div>
296296
</div>
297297

298+
<!--=======================================================
299+
TESTIMONIALS
300+
=========================================================-->
301+
{{ partial "testimonials.html" }}
302+
298303
<!--=======================================================
299304
SOLUTIONS/USE CASES
300305
=========================================================-->

themes/memmachine/layouts/_partials/logo-marquee.html

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
{{/* Define configuration variables */}}
22
{{ $logos := site.Data.logos }}
3-
{{ $logosPerRow := 8 }}
4-
{{ $maxRows := 3 }}
3+
{{ $logosPerRow := 12 }}
4+
{{ $maxRows := 2 }}
55

66
{{ if $logos }}
77
<section class="container my-5 py-5 text-center">
88
<div class="row">
99
<div class="col-md-8 mx-auto">
10-
<h2 class="title-2">Trusted By The Most <span>Innovative</span> Teams</h2>
10+
<h2 class="title-2">Trusted By The Most <span>Innovative Teams</span></h2>
1111
<p>
1212
MemMachine provides the memory layer for agents built by world-class engineering teams at the forefront of the AI revolution.
1313
</p>
@@ -34,7 +34,14 @@ <h2 class="title-2">Trusted By The Most <span>Innovative</span> Teams</h2>
3434
{{ range seq 2 }}
3535
{{ range $rowLogos }}
3636
<div class="logo-scroller-item">
37-
<img src="{{ .src }}" alt="{{ .name }}" loading='lazy'/>
37+
{{ $logoSrc := .src }}
38+
{{ if $logoSrc }}
39+
{{ if strings.HasPrefix $logoSrc "http" }}
40+
<img src="{{ $logoSrc }}" alt="{{ .name }}" loading='lazy' style="height: 40px; width: auto; object-fit: contain;"/>
41+
{{ else }}
42+
<img src="{{ $logoSrc | relURL }}" alt="{{ .name }}" loading='lazy' style="height: 40px; width: auto; object-fit: contain;"/>
43+
{{ end }}
44+
{{ end }}
3845
</div>
3946
{{ end }}
4047
{{ end }}
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
{{/* testimonials.html partial - displays company testimonials using card design */}}
2+
3+
<section class="testimonials-section mtb-192">
4+
<div class="container">
5+
<div class="row">
6+
<div class="col-md-12 text-center">
7+
{{ $section := .Site.GetPage "Section" "testimonials" }}
8+
<h2 class="title-2">{{ with $section.Params.title }}{{ . }}{{ else }}Trusted by teams <span>building with MemMachine.</span>{{ end }}</h2>
9+
<!-- <p class="subtitle">{{ with $section.Params.subtitle }}{{ . }}{{ else }}Real feedback from teams using MemMachine{{ end }}</p> -->
10+
</div>
11+
</div>
12+
<div class="testimonials-list row justify-content-center">
13+
{{ $max := .max | default 4 }}
14+
{{/* 1. Get all pages from the "testimonials" section */}}
15+
{{ $all_testimonials := where site.RegularPages "Section" "testimonials" }}
16+
17+
{{/* 2. Create an empty list to hold only testimonials that are not drafts */}}
18+
{{ $published_testimonials := slice }}
19+
{{ range $all_testimonials }}
20+
{{ if not .Params.draft }}
21+
{{ $published_testimonials = $published_testimonials | append . }}
22+
{{ end }}
23+
{{ end }}
24+
25+
{{/* 3. Set the testimonials to be displayed */}}
26+
{{ $testimonials_to_display := $published_testimonials | first $max }}
27+
28+
{{/* --- End Logic --- */}}
29+
30+
{{ if gt (len $testimonials_to_display) 0 }}
31+
{{ range $testimonials_to_display }}
32+
{{ $page := . }}
33+
<div class="col-md-4 mb-4">
34+
<div class="insight-single-card testimonial-card">
35+
{{ $image_path := $page.Params.logo }}
36+
{{ $image_url := "" }}
37+
{{ if $image_path }}
38+
{{ if strings.HasPrefix $image_path "http" }}
39+
{{ $image_url = $image_path }}
40+
{{ else }}
41+
{{ $image_resource := $page.Resources.GetMatch $image_path }}
42+
{{ if $image_resource }}
43+
{{ $image_url = $image_resource.RelPermalink }}
44+
{{ else }}
45+
{{ $image_url = $image_path | relURL }}
46+
{{ end }}
47+
{{ end }}
48+
{{ end }}
49+
{{ if $image_url }}
50+
{{ with $page.Params.company_url }}
51+
<a href="{{ . }}" target="_blank" rel="noopener">
52+
<img src="{{ $image_url }}" alt="{{ $page.Params.company }} logo" class="testimonial-logo" loading="lazy" style="height: 70px; width: auto; max-width: 100%; display: block; margin-left: auto; margin-right: auto; object-fit: contain;"/>
53+
</a>
54+
{{ else }}
55+
<img src="{{ $image_url }}" alt="{{ $page.Params.company }} logo" class="testimonial-logo" loading="lazy" style="height: 70px; width: auto; max-width: 100%; display: block; margin-left: auto; margin-right: auto; object-fit: contain;"/>
56+
{{ end }}
57+
{{ else }}
58+
{{ with $page.Params.company_url }}
59+
<h3 class="title-3 testimonial-company" style="margin-bottom: 37px;"><a href="{{ . }}" target="_blank" rel="noopener" style="color: var(--light-700);">{{ $page.Params.company }}</a></h3>
60+
{{ else }}
61+
<h3 class="title-3 testimonial-company" style="margin-bottom: 37px;">{{ $page.Params.company }}</h3>
62+
{{ end }}
63+
{{ end }}
64+
<div class="testimonial-content">
65+
<blockquote>{{ $page.Content }}</blockquote>
66+
<div class="testimonial-meta">
67+
<span class="testimonial-author">{{ $page.Params.author }}</span>
68+
<span class="testimonial-company">,
69+
{{ with $page.Params.company_url }}
70+
<a href="{{ . }}" target="_blank" rel="noopener">{{ $page.Params.company }}</a>
71+
{{ else }}
72+
{{ $page.Params.company }}
73+
{{ end }}
74+
</span>
75+
</div>
76+
</div>
77+
</div>
78+
</div>
79+
{{ end }}
80+
{{ else }}
81+
<div class="col-md-12 text-center">
82+
<p>No testimonials available.</p>
83+
</div>
84+
{{ end }}
85+
</div>
86+
</div>
87+
</section>

tools/stargazers/README.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# Stargazer Companies Extractor
2+
3+
This tool fetches the list of GitHub stargazers for a specified repository, retrieves their associated company names from their GitHub profiles, and outputs a YAML file listing unique companies. Optionally, it can be extended to fetch company logos for each company.
4+
5+
## How It Works
6+
7+
- Uses the GitHub API to fetch stargazers for a given repository (default: `memmachine/memmachine`).
8+
- For each stargazer, fetches their user profile and extracts the company name if available.
9+
- Collects all unique company names and writes them to `companies.yaml` in a format suitable for use in a logo marquee (`data/logos.yaml`) or similar feature, including an optional logo URL.
10+
- Can be extended to fetch company logos using a real API.
11+
12+
## Requirements
13+
14+
- Python 3.7+
15+
- The following Python packages:
16+
- `requests`
17+
- `pyyaml`
18+
19+
## Installation (Recommended: Python Virtual Environment)
20+
21+
1. Create and activate a virtual environment:
22+
23+
```bash
24+
python3 -m venv venv
25+
source venv/bin/activate
26+
```
27+
28+
2. Install requirements:
29+
30+
```bash
31+
pip install -r requirements.txt
32+
```
33+
34+
## Usage
35+
36+
1. (Optional) Set the `GITHUB_TOKEN` environment variable for higher API rate limits:
37+
38+
```bash
39+
export GITHUB_TOKEN=your_github_token
40+
```
41+
42+
2. (Optional) Enable debug logging:
43+
44+
```bash
45+
export DEBUG=1
46+
```
47+
48+
3. Run the script:
49+
50+
```bash
51+
python tools/stargazers/stargazer_companies.py
52+
```
53+
54+
4. The output file `companies.yaml` will be created in the current directory.
55+
56+
## Output
57+
58+
- `companies.yaml`: Contains a list of unique companies in the format:
59+
60+
```yaml
61+
- name: "Acme Corp"
62+
src: "" # logo URL (optional)
63+
```
64+
65+
## Extending
66+
67+
- To fetch company logos, implement the `find_logo_url(company_name)` function with a real logo API.

0 commit comments

Comments
 (0)