mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
feat: rebrand user-facing strings from ashim to SnapOtter
This commit is contained in:
+2
-2
@@ -3,12 +3,12 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>ashim</title>
|
<title>SnapOtter</title>
|
||||||
<meta name="description" content="Open-source, self-hosted image processing platform" />
|
<meta name="description" content="Open-source, self-hosted image processing platform" />
|
||||||
<meta name="theme-color" content="#3b82f6" />
|
<meta name="theme-color" content="#3b82f6" />
|
||||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
||||||
<link rel="manifest" href="/manifest.json" />
|
<link rel="manifest" href="/manifest.json" />
|
||||||
<meta property="og:title" content="ashim" />
|
<meta property="og:title" content="SnapOtter" />
|
||||||
<meta property="og:description" content="Open-source, self-hosted image processing platform" />
|
<meta property="og:description" content="Open-source, self-hosted image processing platform" />
|
||||||
<meta property="og:type" content="website" />
|
<meta property="og:type" content="website" />
|
||||||
<meta property="og:image" content="/og-image.png" />
|
<meta property="og:image" content="/og-image.png" />
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "ashim",
|
"name": "SnapOtter",
|
||||||
"short_name": "ashim",
|
"short_name": "SnapOtter",
|
||||||
"icons": [
|
"icons": [
|
||||||
{ "src": "/logo-192.png", "sizes": "192x192", "type": "image/png" },
|
{ "src": "/logo-192.png", "sizes": "192x192", "type": "image/png" },
|
||||||
{ "src": "/logo-512.png", "sizes": "512x512", "type": "image/png" }
|
{ "src": "/logo-512.png", "sizes": "512x512", "type": "image/png" }
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ export function Dropzone({
|
|||||||
>
|
>
|
||||||
<div className={cn("flex flex-col items-center", compact ? "gap-2 p-4" : "gap-4 p-8")}>
|
<div className={cn("flex flex-col items-center", compact ? "gap-2 p-4" : "gap-4 p-8")}>
|
||||||
<div className="text-3xl font-bold text-muted-foreground/30">
|
<div className="text-3xl font-bold text-muted-foreground/30">
|
||||||
<span className="text-primary/30">ashim</span>
|
<span className="text-primary/30">SnapOtter</span>
|
||||||
</div>
|
</div>
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ export function HelpDialog({ open, onClose }: HelpDialogProps) {
|
|||||||
|
|
||||||
{/* Version */}
|
{/* Version */}
|
||||||
<div className="text-xs text-muted-foreground pt-2 border-t border-border">
|
<div className="text-xs text-muted-foreground pt-2 border-t border-border">
|
||||||
ashim v{APP_VERSION}
|
SnapOtter v{APP_VERSION}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ export function AppLayout({ children, showToolPanel = true, onFiles }: AppLayout
|
|||||||
<div className="flex items-center gap-2">
|
<div className="flex items-center gap-2">
|
||||||
<OtterLogo className="h-5 w-5 text-primary" />
|
<OtterLogo className="h-5 w-5 text-primary" />
|
||||||
<span className="text-sm font-bold text-foreground">
|
<span className="text-sm font-bold text-foreground">
|
||||||
<span className="text-primary">ashim</span>
|
<span className="text-primary">SnapOtter</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
@@ -123,7 +123,7 @@ export function AppLayout({ children, showToolPanel = true, onFiles }: AppLayout
|
|||||||
<div className="flex items-center gap-2">
|
<div className="flex items-center gap-2">
|
||||||
<OtterLogo className="h-5 w-5 text-primary" />
|
<OtterLogo className="h-5 w-5 text-primary" />
|
||||||
<span className="text-sm font-bold text-foreground">
|
<span className="text-sm font-bold text-foreground">
|
||||||
<span className="text-primary">ashim</span>
|
<span className="text-primary">SnapOtter</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -303,7 +303,7 @@ function GeneralSection() {
|
|||||||
</SettingRow>
|
</SettingRow>
|
||||||
|
|
||||||
{/* Version */}
|
{/* Version */}
|
||||||
<SettingRow label="App Version" description="Current version of ashim">
|
<SettingRow label="App Version" description="Current version of SnapOtter">
|
||||||
<span className="text-sm font-mono text-muted-foreground">{APP_VERSION}</span>
|
<span className="text-sm font-mono text-muted-foreground">{APP_VERSION}</span>
|
||||||
</SettingRow>
|
</SettingRow>
|
||||||
|
|
||||||
@@ -348,7 +348,7 @@ function SystemSection() {
|
|||||||
.catch(() => {
|
.catch(() => {
|
||||||
// Fallback defaults if endpoint not ready
|
// Fallback defaults if endpoint not ready
|
||||||
setSettings({
|
setSettings({
|
||||||
appName: "ashim",
|
appName: "SnapOtter",
|
||||||
fileUploadLimitMb: "100",
|
fileUploadLimitMb: "100",
|
||||||
defaultTheme: "system",
|
defaultTheme: "system",
|
||||||
defaultLocale: "en",
|
defaultLocale: "en",
|
||||||
@@ -1314,7 +1314,7 @@ function ApiKeysSection() {
|
|||||||
<div>
|
<div>
|
||||||
<h3 className="text-lg font-semibold text-foreground">API Keys</h3>
|
<h3 className="text-lg font-semibold text-foreground">API Keys</h3>
|
||||||
<p className="text-sm text-muted-foreground mt-1">
|
<p className="text-sm text-muted-foreground mt-1">
|
||||||
Manage API keys for programmatic access to ashim.
|
Manage API keys for programmatic access to SnapOtter.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -2456,7 +2456,7 @@ function AnalyticsSection() {
|
|||||||
<div>
|
<div>
|
||||||
<h3 className="text-sm font-medium text-foreground">Product Analytics</h3>
|
<h3 className="text-sm font-medium text-foreground">Product Analytics</h3>
|
||||||
<p className="text-xs text-muted-foreground mt-1">
|
<p className="text-xs text-muted-foreground mt-1">
|
||||||
Share anonymous usage data to help improve ashim.
|
Share anonymous usage data to help improve SnapOtter.
|
||||||
</p>
|
</p>
|
||||||
<p className="text-xs text-muted-foreground">Your images never leave your machine.</p>
|
<p className="text-xs text-muted-foreground">Your images never leave your machine.</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -2513,7 +2513,7 @@ function AboutSection() {
|
|||||||
<div className="flex items-center gap-3">
|
<div className="flex items-center gap-3">
|
||||||
<OtterLogo className="h-8 w-8 text-primary" />
|
<OtterLogo className="h-8 w-8 text-primary" />
|
||||||
<div className="text-2xl font-bold text-foreground">
|
<div className="text-2xl font-bold text-foreground">
|
||||||
<span className="text-primary">ashim</span>
|
<span className="text-primary">SnapOtter</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p className="text-sm text-muted-foreground">
|
<p className="text-sm text-muted-foreground">
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ function UploadArea() {
|
|||||||
>
|
>
|
||||||
<div className="flex flex-col items-center gap-4 p-8">
|
<div className="flex flex-col items-center gap-4 p-8">
|
||||||
<div className="text-3xl font-bold text-muted-foreground/30">
|
<div className="text-3xl font-bold text-muted-foreground/30">
|
||||||
<span className="text-primary/30">ashim</span>
|
<span className="text-primary/30">SnapOtter</span>
|
||||||
</div>
|
</div>
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ export function ChangePasswordPage() {
|
|||||||
<div className="w-full max-w-md space-y-8">
|
<div className="w-full max-w-md space-y-8">
|
||||||
<div>
|
<div>
|
||||||
<h1 className="text-3xl font-bold text-foreground">
|
<h1 className="text-3xl font-bold text-foreground">
|
||||||
<span className="text-primary">ashim</span>
|
<span className="text-primary">SnapOtter</span>
|
||||||
</h1>
|
</h1>
|
||||||
<h2 className="text-2xl font-bold mt-4 text-foreground">Change your password</h2>
|
<h2 className="text-2xl font-bold mt-4 text-foreground">Change your password</h2>
|
||||||
<p className="text-sm text-muted-foreground mt-2">
|
<p className="text-sm text-muted-foreground mt-2">
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ export function FullscreenGridPage() {
|
|||||||
className="flex items-center gap-2 text-lg font-bold text-foreground shrink-0"
|
className="flex items-center gap-2 text-lg font-bold text-foreground shrink-0"
|
||||||
>
|
>
|
||||||
<OtterLogo className="h-6 w-6 text-primary" />
|
<OtterLogo className="h-6 w-6 text-primary" />
|
||||||
<span className="text-primary">ashim</span>
|
<span className="text-primary">SnapOtter</span>
|
||||||
</Link>
|
</Link>
|
||||||
|
|
||||||
{/* Search */}
|
{/* Search */}
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ export function LoginPage() {
|
|||||||
<div className="w-full max-w-md space-y-8">
|
<div className="w-full max-w-md space-y-8">
|
||||||
<div>
|
<div>
|
||||||
<h1 className="text-3xl font-bold text-foreground">
|
<h1 className="text-3xl font-bold text-foreground">
|
||||||
<span className="text-primary">ashim</span>
|
<span className="text-primary">SnapOtter</span>
|
||||||
</h1>
|
</h1>
|
||||||
<h2 className="text-2xl font-bold mt-4 text-foreground">Login</h2>
|
<h2 className="text-2xl font-bold mt-4 text-foreground">Login</h2>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ export function PrivacyPolicyPage() {
|
|||||||
<section>
|
<section>
|
||||||
<h2 className="text-lg font-semibold text-foreground mb-2">Overview</h2>
|
<h2 className="text-lg font-semibold text-foreground mb-2">Overview</h2>
|
||||||
<p>
|
<p>
|
||||||
ashim is a self-hosted, open-source image processing application. Your instance is
|
SnapOtter is a self-hosted, open-source image processing application. Your instance is
|
||||||
operated and controlled entirely by whoever deployed it. This policy describes how the
|
operated and controlled entirely by whoever deployed it. This policy describes how the
|
||||||
software itself handles your data.
|
software itself handles your data.
|
||||||
</p>
|
</p>
|
||||||
@@ -29,7 +29,7 @@ export function PrivacyPolicyPage() {
|
|||||||
<section>
|
<section>
|
||||||
<h2 className="text-lg font-semibold text-foreground mb-2">Local Processing</h2>
|
<h2 className="text-lg font-semibold text-foreground mb-2">Local Processing</h2>
|
||||||
<p>
|
<p>
|
||||||
All image processing happens entirely on the server where ashim is deployed. Your
|
All image processing happens entirely on the server where SnapOtter is deployed. Your
|
||||||
images are never sent to external services or third-party APIs. When you upload an
|
images are never sent to external services or third-party APIs. When you upload an
|
||||||
image for processing, it is handled in memory or in temporary storage on the host
|
image for processing, it is handled in memory or in temporary storage on the host
|
||||||
machine and is not retained after the operation completes.
|
machine and is not retained after the operation completes.
|
||||||
@@ -39,8 +39,8 @@ export function PrivacyPolicyPage() {
|
|||||||
<section>
|
<section>
|
||||||
<h2 className="text-lg font-semibold text-foreground mb-2">Product Analytics</h2>
|
<h2 className="text-lg font-semibold text-foreground mb-2">Product Analytics</h2>
|
||||||
<p>
|
<p>
|
||||||
ashim includes optional, anonymous product analytics. When you choose to participate,
|
SnapOtter includes optional, anonymous product analytics. When you choose to
|
||||||
the following is collected:
|
participate, the following is collected:
|
||||||
</p>
|
</p>
|
||||||
<ul className="list-disc pl-5 mt-2 space-y-1">
|
<ul className="list-disc pl-5 mt-2 space-y-1">
|
||||||
<li>Which tools you use (e.g., "crop tool used")</li>
|
<li>Which tools you use (e.g., "crop tool used")</li>
|
||||||
@@ -109,17 +109,17 @@ export function PrivacyPolicyPage() {
|
|||||||
<section>
|
<section>
|
||||||
<h2 className="text-lg font-semibold text-foreground mb-2">Open Source</h2>
|
<h2 className="text-lg font-semibold text-foreground mb-2">Open Source</h2>
|
||||||
<p>
|
<p>
|
||||||
ashim is fully open source. You can audit the source code to verify these claims at
|
SnapOtter is fully open source. You can audit the source code to verify these claims
|
||||||
any time. Transparency is a core principle of this project.
|
at any time. Transparency is a core principle of this project.
|
||||||
</p>
|
</p>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<h2 className="text-lg font-semibold text-foreground mb-2">Your Control</h2>
|
<h2 className="text-lg font-semibold text-foreground mb-2">Your Control</h2>
|
||||||
<p>
|
<p>
|
||||||
Because ashim is self-hosted, the instance operator has full control over all data.
|
Because SnapOtter is self-hosted, the instance operator has full control over all
|
||||||
You can delete your data at any time by removing files from the server or deleting the
|
data. You can delete your data at any time by removing files from the server or
|
||||||
database. No data exists outside of your infrastructure.
|
deleting the database. No data exists outside of your infrastructure.
|
||||||
</p>
|
</p>
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user