SnapOtter
c3e2b179b7
fix: update format-decoders test for bmp/jxl support
...
The test used "bmp" as an example unknown format, but bmp is now a
supported CLI-decoded format. Use "xyz" instead and add assertions
for bmp and jxl.
2026-04-24 23:39:09 +08:00
SnapOtter
8633dba431
fix: sync API docs, register content-aware-resize, normalize tool counts
...
- Fix 23 OpenAPI schema discrepancies across 16+ tools (wrong ranges,
missing fields, incorrect schemas for gif-tools/collage/ocr)
- Add content-aware-resize to canonical TOOLS array and landing BentoGrid
- Normalize tool count to 47 across README, docs, landing, i18n, OpenAPI
- Remove dead "automation" ToolCategory variant
- Add BMP and JPEG XL format decoding via ImageMagick
- Add libopenexr-dev to Docker runtime image
- Update e2e test selectors for current pipeline builder UI
2026-04-24 23:27:08 +08:00
SnapOtter
7f62bc32db
test: expand coverage to 3,382 tests across all layers
...
- Unit: 1,353 tests (42 files) — +256 new tests covering AI bridge
modules, image-engine sharpen/optimize-for-web, Zustand stores, and
icon-map validation
- Integration: 1,640 tests (57 files) — +826 new tests across all
tool routes, pipeline/progress/batch infrastructure, user-files,
edit-metadata, and a 321-test cross-format matrix
- E2E-Docker: 389 passing (20 spec files) — 6 new spec files for
batch processing, format conversion, layout, optimization,
watermark/overlay, and pipeline chains. Tests verified against fresh
Docker container with all 6 AI bundles installed.
Bug fixes discovered during testing:
- fix(compress): SVG/BMP/exotic formats crashed Sharp encoder — added
format-safety fallback to PNG
- fix(rate-limit): increase default login attempt limit from 10 to 500
per minute — previous value caused false test failures and is too
restrictive for a self-hosted app
- fix(auth.setup): wait for consent button visibility before clicking
to prevent flaky E2E-Docker auth setup
2026-04-24 22:43:14 +08:00
SnapOtter
bc82781282
fix: correct gitignore pattern for vitepress cache
2026-04-24 19:11:53 +08:00
SnapOtter
97d58e5e62
chore: update social preview and dashboard images
2026-04-24 19:10:13 +08:00
SnapOtter
37eeadbbd6
chore: refine social preview with brand gradient and subtle word cloud
2026-04-24 18:58:39 +08:00
SnapOtter
78fa325380
fix: optimize logos and fix favicon transparency
...
- Regenerate all favicons with transparent background
- Resize logos from 768x768 (456KB) to 128x128 (29KB) for web use
- Regenerate PWA icons (192, 512) with transparency
- Update social preview with word cloud and light theme
2026-04-24 18:55:11 +08:00
SnapOtter
33fb864ed9
chore: redesign social preview with light theme matching landing page
2026-04-24 18:52:25 +08:00
SnapOtter
d80b504f41
chore: update social preview and docs homepage layout
...
- Redesign social-preview.png with polished amber brand theme
- Fix docs homepage layout ordering (hero → docker command → features)
2026-04-24 18:49:23 +08:00
SnapOtter
8953045316
chore: disable Docker build test in CI temporarily
...
Docker/GHCR push will be re-enabled after thorough local testing.
2026-04-24 18:23:21 +08:00
SnapOtter
55fef373b5
fix: lowercase Docker registry references for GHCR
...
github.repository resolves to snapotter-hq/SnapOtter (mixed case) but
Docker registry names must be lowercase.
2026-04-24 18:13:39 +08:00
SnapOtter
00f0af4c79
fix: update EXIF fixture and deploy workflows
...
- Fix test-with-exif.jpg Software field from "ashim Test" to
"SnapOtter Test" to match test expectations
- Replace cloudflare/wrangler-action with npx wrangler to avoid
pnpm workspace root install error
2026-04-24 18:08:42 +08:00
SnapOtter
0309e0f680
chore: deploy to Cloudflare Pages and update branding
...
- Add Cloudflare Pages deployment for landing page (snapotter.com) and
docs (docs.snapotter.com)
- Create deploy-landing.yml and update deploy-docs.yml workflows
- Update CI to ignore apps/landing/** paths
- Fix logo transparency (remove white background) across all apps
- Recreate social-preview.png with SnapOtter branding
- Update all docs URLs from GitHub Pages to docs.snapotter.com
- Update VitePress config: light theme default, fix llms.txt paths
- Add .vitepress/cache/ and .env.* to gitignore
2026-04-24 18:06:29 +08:00
ashim-hq
fbaa603d03
fix: use fake timers in lazy-with-retry tests to prevent CI timeout
2026-04-24 15:34:58 +08:00
ashim-hq
2ec495058a
fix: mock connection store in lazy-with-retry tests to prevent CI timeout
2026-04-24 15:27:12 +08:00
ashim-hq
839df466a0
chore: add SnapOtter logo and clean up .gitignore
2026-04-24 15:20:04 +08:00
ashim-hq
f82eff4875
Merge feat/landing-page into main
...
Integrates the SnapOtter landing page with Nunito typography,
otter mascot logo, and teal open-source section accent.
2026-04-24 15:16:49 +08:00
ashim-hq
b6ccb4c6ea
feat: generate new SnapOtter favicon and PWA icons from logo.png
2026-04-24 14:47:57 +08:00
ashim-hq
1fe360471d
feat: add teal accent for open-source section differentiation
2026-04-24 14:47:22 +08:00
ashim-hq
d299aa8a72
feat: rebrand user-facing strings from ashim to SnapOtter
2026-04-24 14:47:17 +08:00
ashim-hq
9504662a5a
feat: apply Nunito font to all landing page section headings
2026-04-24 14:47:01 +08:00
ashim-hq
dff878d155
feat: replace placeholder logo with otter mascot in navbar
2026-04-24 14:46:52 +08:00
ashim-hq
af54a0e4da
feat: add Nunito font for headings and navbar wordmark
2026-04-24 14:46:44 +08:00
ashim-hq
a57e84ab28
feat: rebrand docs site from ashim to SnapOtter
2026-04-24 14:46:23 +08:00
ashim-hq
3185827c80
refactor: replace GemLogo with OtterLogo component for SnapOtter rebrand
2026-04-24 14:46:11 +08:00
ashim-hq
9f9fbf1fd7
test: add hardware benchmark scripts and Mac results
...
Includes bench.sh, bench-ai.sh, bench-limits.sh and corresponding
result files for Mac hardware baseline.
2026-04-24 14:23:12 +08:00
ashim-hq
2f09618897
fix: configure docs for custom domain docs.snapotter.com
...
Set base path to / and add CNAME for GitHub Pages custom domain.
2026-04-24 14:23:05 +08:00
ashim-hq
6af315ac44
test: add comprehensive landing page unit tests (85 tests)
...
6 test files covering all landing page components:
- BentoGrid: search filtering, category pills, tool count, empty state
- Navbar: links, mobile menu, GitHub star count formatting, fetch
- HowItWorks: Docker command display, clipboard copy, terminal chrome
- FAQ: accordion expand/collapse, all questions rendered
- Contact: form fields, validation, Formspree submission, error states
- Components: Hero, TypingCursor, WhyChoose, Enterprise, Pricing,
OpenSource, Footer (rendering, links, content verification)
Also updates vitest.config.ts with landing page aliases and automatic
JSX transform for Next.js components.
2026-04-24 13:15:15 +08:00
ashim-hq
d3fee31780
feat: add Privacy Policy and Terms and Conditions pages
2026-04-24 12:55:33 +08:00
ashim-hq
d48f13a75a
fix: replace tech stack FAQ with optional analytics FAQ
2026-04-24 12:50:35 +08:00
ashim-hq
a062aa9e5f
fix: E2E test isolation and analytics consent bugs
...
- Isolate test web server on port 2349 so E2E tests run alongside Docker
- Use fresh SQLite database per test run via DB_PATH, fixing missing
roles/audit_log tables from stale migration state
- Fix analytics consent redirect loop when ANALYTICS_ENABLED=false by
auto-declining consent instead of bare redirect
- Dismiss analytics consent via API in auth setup and RBAC test user
creation so the consent page never blocks UI tests
- Make Vite port and proxy target configurable via env vars
2026-04-24 01:24:15 +08:00
ashim-hq
4f362a9daf
feat: connect contact form to Formspree with loading state, success screen, and error handling
2026-04-24 00:46:32 +08:00
ashim-hq
d2c01d561e
fix: rename GitHub button to Star on GitHub with count badge
2026-04-24 00:43:46 +08:00
ashim-hq
e9cc76119a
feat: redesign Why Choose section with gradient cards, icons in white circles, label + subtitle
2026-04-24 00:42:04 +08:00
ashim-hq
d313a922d4
fix: move copy button to terminal header bar top-right
2026-04-24 00:32:58 +08:00
ashim-hq
9d751e72f3
fix: replace framer-motion FadeIn with CSS keyframe animations in hero to fix rendering issue
2026-04-24 00:31:13 +08:00
ashim-hq
99c64f7471
fix: reduce FadeIn viewport margin to prevent hero content from staying invisible
2026-04-24 00:26:43 +08:00
ashim-hq
fc30053451
fix: reduce Get Started section vertical padding
2026-04-24 00:25:28 +08:00
ashim-hq
4af02612cc
feat: add live GitHub star count, legal footer section, FAQ page
2026-04-24 00:24:44 +08:00
ashim-hq
dca0de9a7e
fix: use absolute paths for footer anchor links so they work from all pages
2026-04-24 00:19:17 +08:00
ashim-hq
0ed700aa49
fix: remove all demo.snapotter.com references, replace with Pricing link in footer
2026-04-24 00:18:02 +08:00
ashim-hq
758913ba7d
fix: make Company field required in contact form
2026-04-24 00:15:54 +08:00
ashim-hq
3859344dd8
fix: change pricing checkmarks to green
2026-04-24 00:14:53 +08:00
ashim-hq
92653d7864
feat: expand pricing with detailed features, remove Download from nav, remove RECOMMENDED tag
2026-04-24 00:14:12 +08:00
ashim-hq
4e0ac22de9
feat: premium gradient button with hover animation, redesign terminal with glow and macOS chrome
2026-04-24 00:11:17 +08:00
ashim-hq
2edee0c21d
fix: rename hero button to Start Using It with arrow, remove GitHub icon
2026-04-24 00:09:02 +08:00
ashim-hq
bca23d2008
feat: redesign terminal as single clickable block with full docker command and inline copy feedback
2026-04-24 00:08:14 +08:00
ashim-hq
ffe02b6f3a
feat: replace hero CTAs with single Get Started for Free button linking to GitHub
2026-04-24 00:06:42 +08:00
ashim-hq
afdd9fd165
feat: add copy button to terminal, expand Why Choose, add pricing section, reorder nav
2026-04-24 00:04:25 +08:00
ashim-hq
6e6c268910
feat: simplify Get Started to one docker command below hero, redesign Enterprise with gradient cards, remove About from nav
2026-04-23 23:56:50 +08:00