Commit Graph
585 Commits
Author SHA1 Message Date
SnapOtter 119037e31d fix: remove reference to local-only HARDWARE_RECOMMENDATIONS.md
The file is gitignored and not in the repo, so the link was broken.
2026-04-25 00:49:25 +08:00
SnapOtter 2edb25883e fix: replace broken local file reference with GitHub link in docs
The deployment guide referenced `docs/HARDWARE_RECOMMENDATIONS.md` as
inline code, which is inaccessible from the deployed VitePress site.
2026-04-25 00:42:47 +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 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 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 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 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 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 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
ashim-hq ba8b1b2657 fix: remove AGPL trust line from hero, add Free. Forever. to animation 2026-04-23 23:52:02 +08:00
ashim-hq 2cf53acfa4 fix: show correct user count when MAX_USERS is unlimited
MAX_USERS defaults to 0 (unlimited) but the People section displayed
"1 / 0 users". Now shows "1 user" when no limit is configured.
2026-04-23 22:08:34 +08:00
ashim-hq 8c5945362a refactor: simplify analytics consent page for higher opt-in
Remove two-column bullet lists, vendor names, and fear-priming "NEVER"
list. Replace with a single benefit-led paragraph and privacy note.
2026-04-23 22:08:27 +08:00
ashim-hq b03c428e4f fix: prevent pipeline preview dropzone from clipping at bottom
Dropzone had a hardcoded min-h-[400px] that overflowed the preview
panel's h-[38%] constraint. Add compact prop for constrained contexts.
2026-04-23 22:08:20 +08:00
ashim-hq be4155d257 fix: replace require() with dynamic import() for analytics modules
PostHog and Sentry were silently disabled in production Docker builds.
The app runs as ESM ("type": "module") via tsx, where require() is not
defined. The catch blocks swallowed the ReferenceError, leaving both
clients as null. Switch to await import() and store the Sentry module
reference for use in the error handler.
2026-04-23 21:45:10 +08:00
ashim-hq 5fcec90d7b feat: remove API and Three Ways sections, redesign How It Works as terminal mockup 2026-04-23 21:23:24 +08:00
ashim-hq 9f68c1a73e feat: remove Trusted across industries section 2026-04-23 21:21:19 +08:00
ashim-hq 257e6b12c4 fix: redesign section flow with alternating white/gray backgrounds, remove all dark sections, change 50+ to 40+ tools 2026-04-23 21:07:47 +08:00
ashim-hq 16e92a1c2d feat: replace licensing page with enterprise contact/demo page 2026-04-23 20:53:55 +08:00
ashim-hq 8aea77b4be docs: remove hardcoded pipeline/batch limits, default to unlimited
Pipeline steps and batch size are now unlimited by default. The old
"20 steps" and "200 images" figures had no basis in the actual code
(MAX_BATCH_SIZE already defaulted to 0/unlimited). Both remain
configurable via MAX_PIPELINE_STEPS and MAX_BATCH_SIZE env vars.

Also includes updated hardware requirements and sidebar nav from
prior documentation audit.
2026-04-23 20:50:38 +08:00