feat: reposition to self-hosted file-processing infrastructure (#469)

Leads public copy with self-hosted file-processing infrastructure and demotes tool count to a proof point across README, docs, llms.txt, DockerHub, and the landing site. Adds a /self-hosted hub plus 7 job-intent SEO pages with a build-time validator, deepens the flagship /alternatives pages, adds a remove.bg page, three shared components, and landing e2e coverage.
This commit is contained in:
SnapOtter
2026-07-10 13:26:41 +08:00
committed by GitHub
parent 331e3bfde0
commit af011d5538
24 changed files with 1051 additions and 31 deletions
+3 -5
View File
@@ -6,9 +6,7 @@ test.describe("Landing Homepage", () => {
});
test("page loads with self-hosted title", async ({ page }) => {
await expect(page).toHaveTitle(
/SnapOtter \| Self-Hosted File Processing for Privacy-Sensitive Teams/,
);
await expect(page).toHaveTitle(/SnapOtter \| Self-Hosted File-Processing Infrastructure/);
});
test("navbar renders brand and navigation links", async ({ page }) => {
@@ -23,12 +21,12 @@ test.describe("Landing Homepage", () => {
});
test("hero renders the headline", async ({ page }) => {
await expect(page.locator("h1")).toContainText("File processing for privacy-sensitive teams.");
await expect(page.locator("h1")).toContainText("Private file processing for data that");
});
test("hero renders the subtitle", async ({ page }) => {
await expect(
page.getByText("Run image, video, audio, PDF, and file tools with local AI"),
page.getByText("run local AI across image, video, audio, PDF, and documents"),
).toBeVisible();
});