Files
SnapOtter/apps/landing/src/pages/terms.astro
T
SnapOtterandGitHub 17726ae59d docs: multi-modality rebrand, 2.0 architecture accuracy, and full OpenAPI coverage (#254)
* docs: rebrand from image-only to multi-modality across docs and metadata

SnapOtter expanded from image-only to 157 tools across 5 modalities
(image, video, audio, document/PDF, data). Update all product-level
copy, metadata, and i18n that still framed it as an image-only tool.

- README, package.json, root llms.txt: multi-modality framing, 157 tools
- OpenAPI info + tags, generated /llms.txt tagline (docs.ts)
- VitePress docs site: hero, getting-started, architecture, security,
  deployment, configuration, developer, supported-formats
- i18n: 10 product keys across all 21 locales (hero, app description,
  privacy notes, AI features, progress messages, getting-started)
- web/demo/landing meta + privacy copy, COMMUNITY_GUIDE, .env.example

Stale tool counts (53/50+/52/70+/35) corrected to 157 throughout.
Database/container deployment claims left unchanged (out of scope).

* docs: fix stale post-rebrand test assertions and README language list

- tests/e2e-docs/homepage.spec.ts: assert the current docs homepage (file toolkit, 157 tools, 5 modalities) instead of the old image-only strings
- tests/unit/api/docs-route.test.ts: sync the reproduced llms.txt tagline with docs.ts
- README.md: 21 languages with the correct list (add Swedish and Chinese Traditional, drop Czech which is not supported)

* docs: correct 2.0 architecture references (Postgres 17 + Redis 8, 3-container stack)

The docs and metadata still described the 1.x stack (SQLite, single container, p-queue). Update them to the current 2.0 reality.

- README: replace the broken single-container `docker run` quick-start with the real Docker Compose stack (app + Postgres 17 + Redis 8); fix the "no Redis, no Postgres" feature bullet
- package.json: description no longer claims a single container
- apps/docs: rewrite database.md for Postgres; configuration.md DB_PATH -> DATABASE_URL + REDIS_URL; architecture.md SQLite/p-queue/better-sqlite3 -> Postgres/BullMQ/pg and add media-engine + doc-engine; developer/security/deployment/docker-tags/getting-started/contributing compose examples now include postgres + redis; index.md + api/ai.md AI count 16 -> 19
- SECURITY.md: Drizzle (SQLite) -> (PostgreSQL)
- landing: enterprise/FeatureHighlights single-container wording; TrustSignals/ToolGrid 150+ -> 157 (dynamic); Pricing/FAQ 15 -> 19 AI tools

* docs(api): document all video, audio, document, and data tool endpoints in OpenAPI

The spec covered only image tools; the Scalar UI and the generated /llms.txt and /llms-full.txt inherited that gap. Add the 104 missing tool endpoints so the API docs match the code.

- Video: 29 endpoints (most long/async; auto-subtitles is AI)
- Audio: 17 (transcribe-audio is AI)
- Document/PDF: 36 (ocr-pdf is AI; conversions are long/async)
- Data: 10
- Image: 12 newer tools (background-replace, blur-background AI; histogram/lqip-placeholder/sprite-sheet custom responses; barcode-generate uses a JSON body)

Each schema is derived from the tool's Zod validator and executionHint (fast -> 200, long -> 202+SSE, AI adds 501 FeatureNotInstalledError, multi-file inputs as arrays), referencing the existing shared schemas. Tool path entries: 64 -> 168. Spec parses as valid YAML with no duplicate paths and only known $refs.
2026-06-16 18:04:52 +08:00

143 lines
5.1 KiB
Plaintext

---
import Footer from "@/components/Footer.astro";
import JsonLd from "@/components/JsonLd.astro";
import Navbar from "@/components/Navbar.astro";
import Base from "@/layouts/Base.astro";
const breadcrumbJsonLd = {
"@context": "https://schema.org",
"@type": "BreadcrumbList",
itemListElement: [
{ "@type": "ListItem", position: 1, name: "Home", item: "https://snapotter.com" },
{
"@type": "ListItem",
position: 2,
name: "Terms and Conditions",
item: "https://snapotter.com/terms",
},
],
};
---
<Base
title="Terms and Conditions | SnapOtter"
description="Terms governing your use of the SnapOtter website and self-hosted file processing software."
canonical="https://snapotter.com/terms"
>
<Fragment slot="head">
<JsonLd data={breadcrumbJsonLd} />
</Fragment>
<Navbar />
<main id="main" class="px-6 pt-32 pb-20 md:pt-40 md:pb-28">
<div class="mx-auto max-w-3xl">
<div class="reveal text-center">
<h1 class="font-display text-4xl font-bold tracking-tight md:text-5xl">
Terms and Conditions
</h1>
<p class="mt-6 text-lg text-muted">Last updated: April 24, 2026</p>
</div>
<div class="mt-16 space-y-12 text-sm leading-relaxed text-muted">
<section class="reveal">
<h2 class="text-lg font-semibold text-foreground">Who We Are</h2>
<p class="mt-3">
SnapOtter is a product of Chocolate Wafers General Trading Pte. Ltd. (UEN
202527149C), an exempt private company registered in Singapore. References to
&quot;we&quot;, &quot;us&quot;, or &quot;our&quot; in these terms refer to
Chocolate Wafers General Trading Pte. Ltd.
</p>
</section>
<section class="reveal">
<h2 class="text-lg font-semibold text-foreground">Overview</h2>
<p class="mt-3">
These terms govern your use of the SnapOtter website and software.
</p>
</section>
<section class="reveal">
<h2 class="text-lg font-semibold text-foreground">Software License</h2>
<ul class="mt-3 list-disc space-y-2 pl-5">
<li>SnapOtter is licensed under AGPL-3.0.</li>
<li>
You may use, modify, and distribute the software under the terms of this
license.
</li>
<li>
For proprietary or commercial use without AGPL obligations, a commercial license
is available.
</li>
<li>
Contact us at
<a
href="mailto:contact@snapotter.com"
class="text-primary font-medium hover:underline underline-offset-4"
>
contact@snapotter.com
</a>
for commercial licensing terms.
</li>
</ul>
</section>
<section class="reveal">
<h2 class="text-lg font-semibold text-foreground">Website Use</h2>
<ul class="mt-3 list-disc space-y-2 pl-5">
<li>The snapotter.com website is provided for informational purposes.</li>
<li>You may not use the website for any unlawful purpose.</li>
</ul>
</section>
<section class="reveal">
<h2 class="text-lg font-semibold text-foreground">Self-Hosted Software</h2>
<ul class="mt-3 list-disc space-y-2 pl-5">
<li>You are responsible for your own deployment, data, and security.</li>
<li>SnapOtter is provided &quot;as is&quot; without warranty of any kind.</li>
<li>We are not liable for any damages arising from your use of the software.</li>
</ul>
</section>
<section class="reveal">
<h2 class="text-lg font-semibold text-foreground">Intellectual Property</h2>
<ul class="mt-3 list-disc space-y-2 pl-5">
<li>SnapOtter, the SnapOtter logo, and related marks are our property.</li>
<li>The software source code is available under AGPL-3.0.</li>
</ul>
</section>
<section class="reveal">
<h2 class="text-lg font-semibold text-foreground">Limitation of Liability</h2>
<p class="mt-3">
To the maximum extent permitted by law, we are not liable for any indirect,
incidental, or consequential damages.
</p>
</section>
<section class="reveal">
<h2 class="text-lg font-semibold text-foreground">Changes</h2>
<p class="mt-3">
We may update these terms. Continued use constitutes acceptance.
</p>
</section>
<section class="reveal">
<h2 class="text-lg font-semibold text-foreground">Contact</h2>
<p class="mt-3">
If you have questions about these terms, contact us at
<a
href="mailto:contact@snapotter.com"
class="text-primary font-medium hover:underline underline-offset-4"
>
contact@snapotter.com
</a>.
</p>
</section>
</div>
</div>
</main>
<Footer />
</Base>