chore(branding): reframe assets to self-hosted infrastructure positioning (#479)

Regenerate the social/OG card (200+ tools, Private file processing, self-hosted infrastructure) and sync to landing/web/docs; update banner, press kit, package + OpenAPI + Docker Hub descriptions, a leaked docs count, and the English About string.
This commit is contained in:
SnapOtter
2026-07-11 02:07:15 +08:00
committed by GitHub
parent c6baf6018d
commit d572b5c33c
13 changed files with 15 additions and 15 deletions
+1 -1
View File
@@ -29,4 +29,4 @@ jobs:
password: ${{ secrets.DOCKER_HUB_README }}
repository: snapotter/snapotter
readme-filepath: ./DOCKERHUB.md
short-description: "Self-hosted file toolkit. 200+ tools for Image, Video, Audio, PDF, and Files. Open source."
short-description: "Open-source, self-hosted file-processing infrastructure. 200+ tools, air-gap ready."
+1 -1
View File
@@ -3,7 +3,7 @@ info:
title: SnapOtter API
version: 2.0.0
description: |
REST API for SnapOtter, a self-hosted file processing suite with 200+ tools across image, video, audio, PDF, and files.
REST API for SnapOtter, self-hosted file-processing infrastructure with 200+ tools across image, video, audio, PDF, and documents.
## Authentication
+1 -1
View File
@@ -121,7 +121,7 @@ pnpm dev
## What You Can Do
### File Processing (241 Tools)
### File Processing (200+ Tools)
| Modality | Count | Example Tools |
|----------|-------|---------------|
Binary file not shown.

Before

Width:  |  Height:  |  Size: 319 KiB

After

Width:  |  Height:  |  Size: 329 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 321 KiB

After

Width:  |  Height:  |  Size: 329 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 321 KiB

After

Width:  |  Height:  |  Size: 329 KiB

+1 -1
View File
@@ -2,7 +2,7 @@
Press kit for use in blog posts, articles, reviews, and other publications about SnapOtter. Free to use when referencing SnapOtter.
SnapOtter is an open-source, self-hosted file processing suite with 200+ tools across image, video, audio, PDF, and file workflows.
SnapOtter is open-source, self-hosted file-processing infrastructure with 200+ tools across image, video, audio, PDF, and document workflows.
## Files
+1 -1
View File
@@ -4,6 +4,6 @@
<tspan>Snap</tspan><tspan fill="#E07832">Otter</tspan>
</text>
<text x="360" y="140" text-anchor="middle" font-family="'Instrument Sans', 'Inter', system-ui, sans-serif" font-size="18" letter-spacing="0.3" fill="#B0A79B">
Self-hosted file processing suite
Self-hosted file-processing infrastructure
</text>
</svg>

Before

Width:  |  Height:  |  Size: 624 B

After

Width:  |  Height:  |  Size: 633 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 321 KiB

After

Width:  |  Height:  |  Size: 329 KiB

+1 -1
View File
@@ -2,7 +2,7 @@
"name": "snapotter",
"version": "2.1.0",
"private": true,
"description": "Self-hosted file processing suite with 200+ tools across image, video, audio, PDF, and files, plus local AI. Runs as a Docker Compose stack with Postgres and Redis.",
"description": "Open-source, self-hosted file-processing infrastructure with 200+ tools across image, video, audio, PDF, and documents, plus local AI. Runs as a Docker Compose stack with Postgres and Redis.",
"homepage": "https://snapotter.com",
"repository": {
"type": "git",
+1 -1
View File
@@ -3484,7 +3484,7 @@ export const en = {
heading: "About",
appName: "SnapOtter",
appDescription:
"A self-hosted, privacy-first file processing suite with 200+ tools. Convert, compress, edit, transcribe, OCR, and automate image, video, audio, PDF, and file workflows without sending data to the cloud.",
"Open-source, self-hosted file-processing infrastructure with 200+ tools. Convert, compress, edit, transcribe, OCR, and automate image, video, audio, PDF, and document workflows without sending data to the cloud.",
versionLabel: "Version:",
linksHeading: "Links",
githubLink: "GitHub Repository",
+6 -7
View File
@@ -1,12 +1,12 @@
// Generates branding/social-preview.png (1280x640) -- the SnapOtter social/OG card.
// Echoes the landing hero: trust badges, the "Every file tool you need / Your files
// Echoes the landing hero: trust badges, the "Private file processing / Your files
// never leave your network" headline, the supporting subhead, and the five modality
// cards. Rendered from HTML with the real brand fonts via headless Chromium.
// Run (tsx, because it imports the shared TS catalog for live tool counts):
// apps/api/node_modules/.bin/tsx scripts/branding/generate-social-preview.mjs
//
// The same output is the canonical OG image; sync it to apps/landing/public/og-image.png
// and apps/web/public/og-image.png (see scripts/branding/sync-og.sh).
// The same output is the canonical OG image; sync it to the app og-image.png files
// (landing, web, docs) via scripts/branding/sync-og.sh.
import { rmSync, writeFileSync } from "node:fs";
import { dirname, resolve } from "node:path";
@@ -79,7 +79,6 @@ const CARDS = [
icon: ICON.database,
},
];
const total = CARDS.reduce((s, c) => s + c.count, 0);
const badgesHtml = BADGES.map(
(b) =>
@@ -130,10 +129,10 @@ html,body{width:1280px;height:640px}
.card-label{font-family:'Bricolage Grotesque',system-ui,sans-serif;font-weight:700;font-size:20px;line-height:1.1;margin-top:34px}
.card-blurb{font-size:14px;color:rgba(255,255,255,.84);margin-top:6px}
</style></head><body><div class="canvas">
<div class="brand"><img src="logo-512.png" alt=""/><span class="wm">Snap<span class="o">Otter</span></span><span class="pill">${total} tools</span></div>
<div class="brand"><img src="logo-512.png" alt=""/><span class="wm">Snap<span class="o">Otter</span></span><span class="pill">200+ tools</span></div>
<div class="badges">${badgesHtml}</div>
<div class="headline">Every <span class="f">file</span> tool you need.<span class="hl2">Your files never leave your network.</span></div>
<div class="subhead">The file-processing suite for teams that keep sensitive data in-house.</div>
<div class="headline">Private <span class="f">file</span> processing.<span class="hl2">Your files never leave your network.</span></div>
<div class="subhead">Open-source, self-hosted infrastructure. Convert, compress, OCR, transcribe, and run local AI on hardware you own.</div>
<div class="cards">${cardsHtml}</div>
</div></body></html>`;
+2 -1
View File
@@ -6,4 +6,5 @@ root="$(cd "$(dirname "$0")/../.." && pwd)"
src="$root/branding/social-preview.png"
cp "$src" "$root/apps/landing/public/og-image.png"
cp "$src" "$root/apps/web/public/og-image.png"
echo "synced social-preview.png -> apps/landing/public/og-image.png, apps/web/public/og-image.png"
cp "$src" "$root/apps/docs/public/og-image.png"
echo "synced social-preview.png -> apps/{landing,web,docs}/public/og-image.png"