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.
@@ -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."
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -121,7 +121,7 @@ pnpm dev
|
||||
|
||||
## What You Can Do
|
||||
|
||||
### File Processing (241 Tools)
|
||||
### File Processing (200+ Tools)
|
||||
|
||||
| Modality | Count | Example Tools |
|
||||
|----------|-------|---------------|
|
||||
|
||||
|
Before Width: | Height: | Size: 319 KiB After Width: | Height: | Size: 329 KiB |
|
Before Width: | Height: | Size: 321 KiB After Width: | Height: | Size: 329 KiB |
|
Before Width: | Height: | Size: 321 KiB After Width: | Height: | Size: 329 KiB |
@@ -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
|
||||
|
||||
|
||||
@@ -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 |
|
Before Width: | Height: | Size: 321 KiB After Width: | Height: | Size: 329 KiB |
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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>`;
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||