Commit Graph
996 Commits
Author SHA1 Message Date
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 fe384ddfe1 fix: update tests to match unlimited pipeline steps and avoid Sharp timeout
Pipeline step limit tests now expect success (200/201) since
MAX_PIPELINE_STEPS defaults to 0 (unlimited). Adversarial resize test
reduced from 65536 to 10000 width to prevent Sharp from attempting a
3.2B pixel allocation that times out on CI.
2026-04-23 23:56:08 +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
ashim-hq 4bfbc51b77 test: add e2e spec for content-aware resize (seam carving)
Closes the last coverage gap from the master test matrix - 11 tests
covering toggle behavior, control visibility, input validation,
square mode, slider ranges, and end-to-end processing for PNG/HEIC.
2026-04-23 20:47:36 +08:00
ashim-hq 4f850ff38e chore: gitignore docs/ except COMMUNITY_GUIDE.md
Remove RELEASE_QA_REPORT.md from tracking and ignore all docs/
content except COMMUNITY_GUIDE.md to keep local-only files private.
2026-04-23 20:39:43 +08:00
ashim-hq 7cbc2fe876 Merge branch 'feat/api-sync-documentation-audit' 2026-04-23 20:27:06 +08:00
AshimandGitHub 97938bdc47 feat: API sync and documentation audit - 100% endpoint coverage (#94)
Code quality:
- Add Zod validation to 14 route handlers that used raw JSON.parse
  (favicon, find-duplicates, barcode-read, upscale, blur-faces,
  erase-object, colorize, enhance-faces, red-eye-removal,
  remove-background/effects, auth, api-keys, roles, teams,
  analytics, settings, user-files)
- Standardize error responses to safeParse + formatZodErrors pattern
- Replace unsafe `as` type casts with schema validation

OpenAPI spec (89 -> 115 operations):
- Add 14 missing tool endpoints (adjust-colors, sharpening,
  optimize-for-web, image-enhancement, noise-removal, red-eye-removal,
  restore-photo, passport-photo, colorize, enhance-faces, image-to-base64)
- Add 12 missing non-tool endpoints (analytics, features, audit-log,
  roles, admin-health)
- Add typed error schemas for 401/403/409 responses
- Add descriptions to all path parameters
- Bump version from 0.9.0 to 1.15.9

Documentation:
- Fix 8 incorrect env var defaults in configuration guide
- Add 15 undocumented env vars to configuration guide
- Fix tool ID mismatch (color-adjustments -> adjust-colors)
- Add 4 new API sections (Roles, Audit Log, Analytics, Features)
- Add image-enhancement to AI engine reference
- Update AI tool count from 13 to 14 across all docs
- Add 6 missing doc links to README
2026-04-23 20:26:58 +08:00
ashim-hq efb429289d test: add QA release report from multi-node test sweep
280 tests across 3 nodes (Mac, WSL GPU RTX 4070, Ubuntu CPU):
- 270 pass, 7 fail (known platform limitations)
- Fixed: MAX_USERS=0 registration block, auth Zod validation
- Verified: cross-platform parity for all non-AI tools
- Verified: 16/18 input formats, all batch/pipeline operations
- GPU vs CPU AI performance benchmarked
2026-04-23 20:26:48 +08:00
ashim-hq 72a9aac445 feat: API sync and documentation audit - 100% endpoint coverage
Code quality:
- Add Zod validation to 14 route handlers that used raw JSON.parse
  (favicon, find-duplicates, barcode-read, upscale, blur-faces,
  erase-object, colorize, enhance-faces, red-eye-removal,
  remove-background/effects, auth, api-keys, roles, teams,
  analytics, settings, user-files)
- Standardize error responses to safeParse + formatZodErrors pattern
- Replace unsafe `as` type casts with schema validation

OpenAPI spec (89 -> 115 operations):
- Add 14 missing tool endpoints (adjust-colors, sharpening,
  optimize-for-web, image-enhancement, noise-removal, red-eye-removal,
  restore-photo, passport-photo, colorize, enhance-faces, image-to-base64)
- Add 12 missing non-tool endpoints (analytics, features, audit-log,
  roles, admin-health)
- Add typed error schemas for 401/403/409 responses
- Add descriptions to all path parameters
- Bump version from 0.9.0 to 1.15.9

Documentation:
- Fix 8 incorrect env var defaults in configuration guide
- Add 15 undocumented env vars to configuration guide
- Fix tool ID mismatch (color-adjustments -> adjust-colors)
- Add 4 new API sections (Roles, Audit Log, Analytics, Features)
- Add image-enhancement to AI engine reference
- Update AI tool count from 13 to 14 across all docs
- Add 6 missing doc links to README
2026-04-23 19:35:40 +08:00
ashim-hq 9a2371053a feat: add licensing page with AGPL-3.0 and commercial license tiers 2026-04-23 19:34:25 +08:00
ashim-hq d588f5fd93 feat: redesign navbar with Features, Download, API, Pricing, Docs, About, Contact links, GitHub star button, and Book a Demo CTA 2026-04-23 18:32:26 +08:00
ashim-hq 0c40c4dcfc fix: add suppressHydrationWarning to body for Dark Reader compatibility 2026-04-23 18:29:48 +08:00
ashim-hq 8f6600f55e feat: add Why Choose SnapOtter section, expand hero animation phrases 2026-04-23 18:28:05 +08:00
ashim-hq 3e6001ec09 feat: add no signups, unlimited use, works offline to hero phrases 2026-04-23 18:25:36 +08:00
ashim-hq 44f015a8ce fix: remove artificial limits from Pipelines description, now unlimited 2026-04-23 18:24:01 +08:00
ashim-hq 6f728fe629 feat: add Three Ways to Use and Industry Use Cases sections 2026-04-23 18:22:22 +08:00
ashim-hq 97a8d54ba7 fix: rewrite enterprise subtitle to be clearer and not misleading 2026-04-23 18:19:03 +08:00
ashim-hq 13a15edc26 fix: remove AI badge from tool cards 2026-04-23 18:18:45 +08:00
ashim-hq c6196daf54 feat: remove Value Props section 2026-04-23 18:17:47 +08:00
ashim-hq dbbc35040d feat: add mouse-responsive parallax to hero background, gradient separator on navbar 2026-04-23 18:15:17 +08:00
ashim-hq e6d6019d0a fix: add subtle frosted background to navbar for readability over word cloud 2026-04-23 18:12:44 +08:00
ashim-hq 82e5e9cf90 fix: make navbar transparent to blend with hero, push word cloud below navbar 2026-04-23 18:11:05 +08:00
ashim-hq b3a19fffea feat: add tool name word cloud background to hero section 2026-04-23 18:09:28 +08:00
ashim-hq 1a353123d8 feat: add clear tagline to hero section 2026-04-23 18:07:27 +08:00
ashim-hq 60a821357c feat: restore animated phrase rotation without blinking cursor bar 2026-04-23 18:05:43 +08:00
ashim-hq 8ff4155186 feat: replace typing cursor with static subtitle, add gradient mesh hero background 2026-04-23 18:04:53 +08:00
ashim-hq c9f648708e fix: remove all em dashes from landing page copy 2026-04-23 17:58:43 +08:00
ashim-hq c9d536c561 feat: add Lucide icons to all 47 tools with BentoPDF-style card layout 2026-04-23 17:57:11 +08:00
ashim-hq 49f18847f0 feat: update hero headline, replace bento grid with searchable 47-tool showcase 2026-04-23 17:51:32 +08:00
ashim-hq a6b79a7972 fix: redesign bento grid with hero AI card, fix navbar icon bug, suppress hydration warning 2026-04-23 17:45:51 +08:00
ashim-hq 984aebc601 feat: add OG image and complete meta tags 2026-04-23 17:31:17 +08:00
ashim-hq b307005469 feat: assemble all sections into landing page 2026-04-23 17:30:11 +08:00
ashim-hq a8988c0742 feat: add API Callout, Open Source, and Footer sections 2026-04-23 17:28:41 +08:00
ashim-hq f7348ee82d feat: add Enterprise and How It Works sections 2026-04-23 17:26:44 +08:00
ashim-hq 42fc8c5c80 feat: add Value Props and Bento Grid sections 2026-04-23 17:25:11 +08:00
ashim-hq 64f3e3f792 feat: add Navbar and Hero sections 2026-04-23 17:23:09 +08:00
ashim-hq d22e4c2596 feat: add FadeIn and TypingCursor utility components 2026-04-23 17:21:22 +08:00
ashim-hq 2260d696bc feat: scaffold Next.js landing page app at apps/landing 2026-04-23 17:19:48 +08:00
AshimandGitHub 136a4dd641 Merge pull request #93 from ashim-hq/test/comprehensive-coverage
test: comprehensive test coverage expansion (+965 tests, 48/48 tools)
2026-04-23 17:12:53 +08:00
ashim-hq babca4cf97 test: comprehensive test coverage expansion (+965 tests)
Add 42 new test files covering all untested tool routes, image engine
internals, AI sidecar bridge, Zustand stores, and cross-format
compatibility. Expand e2e-docker suite with 7 spec files covering all
48 tools against a real Docker container.

Unit tests:
- Image engine: format detection, MIME mapping, metadata parsing, pipeline
- AI bridge: sidecar lifecycle, all 11 tool functions (mocked)
- Web stores: 14 Zustand stores (collage, settings, features, analytics, etc.)
- API helpers: format decoders, page range, file validation

Integration tests:
- 25 tool routes that had zero dedicated tests
- Cross-format matrix: 17 input formats x 3 tools
- Edge cases: zero-byte files, corrupted headers, path traversal, XSS, SQL injection
- Concurrent request handling and pipeline edge cases

E2E-Docker (Playwright against real container):
- 7 spec files: essential, adjustment, conversion, creative, utility, AI, pipeline
- Custom buildMultipart helper for multi-file tool uploads
- AI tools gracefully skip when sidecar not installed

Fixtures:
- Organized test media: formats/ (18 formats) + content/ (17 content types)
- Reduced from 3.1 GB unorganized samples to 33 MB structured fixtures

Bug fix:
- color-adjustments: gamma exposure used invalid single-param gamma() for
  positive values; fixed to use two-param gamma(gammaIn, gammaOut) form
2026-04-23 17:12:02 +08:00
AshimandGitHub 9ff23f38fb Merge pull request #92 from ashim-hq/fix/auth-false-escalation-90
fix: prevent admin escalation when AUTH_ENABLED=false
2026-04-23 14:46:20 +08:00