Commit Graph

293 Commits

Author SHA1 Message Date
Oleg Proskurin ef47653296 doc: add Gemini image models sizes and aspect ratios reference
Documents supported aspect ratios and resolutions for:
- Gemini 2.5 Flash Image (1K only, 10 aspect ratios)
- Gemini 3 Pro Image (1K/2K/4K, 10 aspect ratios)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-01 16:32:11 +07:00
Oleg Proskurin 33b01c03a8 Merge branch 'docs-v1' 2025-12-31 20:28:27 +07:00
Oleg Proskurin 4e5a14f3de chore(landing): add docs pages to sitemap
Added all documentation pages to sitemap.xml:
- Getting Started (/docs)
- Image Generation (/docs/generation)
- Working with Images (/docs/images)
- Live URLs (/docs/live-urls)
- Authentication (/docs/authentication)
- API Reference (/docs/api)
- API: Generations, Images, Flows, Live Scopes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 20:27:27 +07:00
Oleg Proskurin f3aaea1e6d fix(landing): use label as React key in SubsectionNav to avoid duplicates
Multiple disabled nav items share the same href '#', causing React
duplicate key warning. Changed key from item.href to item.label
which is guaranteed to be unique.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 20:26:47 +07:00
Oleg Proskurin 2d01fa4182 feat(landing): update subnav items to API, SDK, MCP, CLI, Lab
- Docs layout: API (active), SDK/MCP/CLI/Lab (disabled)
- Demo layout: API, SDK/MCP/CLI (disabled), Lab (active, links to demo)
- Disabled items show "Coming soon" tooltip on hover

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 18:38:42 +07:00
Oleg Proskurin 62594774e3 feat(landing): add disabled prop support to SubsectionNav
- Added optional disabled property to NavItem interface
- Disabled items show gray text and cursor-not-allowed
- Desktop: Tooltip on hover shows "Coming soon"
- Mobile: Inline "(Coming soon)" label after item text
- Uses aria-disabled for accessibility

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 18:36:29 +07:00
Oleg Proskurin 21dfd31338 feat(landing): implement route groups for different header behaviors
- Created (landings) route group for home page with sticky header
- Created (apps) route group for docs/demo/admin with scrollable header
- Moved page components to respective route groups
- Updated root layout to be minimal (no header/footer)
- Each route group has its own layout with appropriate header style
- Updated Footer and layouts to use public folder logo path

This enables sticky header on landing pages while docs/demo pages
have a header that scrolls away with content.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 18:35:05 +07:00
Oleg Proskurin 358e4db0e3 fix(docs): sidebar active state not showing due to trailing slash mismatch
Next.js usePathname() returns paths with trailing slashes during static
generation (e.g., /docs/) but navigation hrefs use paths without trailing
slashes (e.g., /docs). The strict equality comparison was always failing.

Added path normalization to strip trailing slashes before comparison.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 16:03:46 +07:00
Oleg Proskurin 13f0a4f04f feat: init docs section 2025-12-31 15:00:44 +07:00
Oleg Proskurin 8e315ffe01 doc: save task 2025-12-31 01:28:10 +07:00
Oleg Proskurin 3e490d1dd9 docs: add roadmap note for enhancement templates feature
Mark enhancementOptions.template as planned feature - currently
all prompts use default 'general' style regardless of parameter.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 23:45:57 +07:00
Oleg Proskurin af8ed28cfb docs: update API documentation for new CDN URL format
Update all API documentation to reflect new storage architecture:

- storageKey: {org}/{project}/img/{imageId} (UUID, no extension)
- storageUrl: https://cdn.banatie.app/{org}/{project}/img/{imageId}
- Add URL Architecture section to live-url.md
- Update all example responses with new format
- Document UUID vs alias URL routing differences
- Clarify that filename = image.id (UUID)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 00:24:25 +07:00
Oleg Proskurin baa833cdc7 chore 2025-12-28 01:57:40 +07:00
Oleg Proskurin 3a2622e9a3 Merge remote-tracking branch 'origin/main' 2025-12-27 22:59:08 +07:00
usulpro 51d3e03732 add claude.local.md 2025-12-27 22:58:44 +07:00
Oleg Proskurin 440bb860da chore: add CLAUDE.local.md to gitignore
VPS-specific Claude Code configuration file, not tracked in git.
Create this file manually on VPS for local context.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 22:53:14 +07:00
Oleg Proskurin e7cc2fe2b2 chore 2025-12-27 20:17:29 +07:00
Oleg Proskurin b5bfc91949 Merge branch 'fix-cdn-urls' 2025-12-27 20:13:49 +07:00
Oleg Proskurin e1c2395d5d test: add storage URL format validation test
- Add test to validate storageKey format: {org}/{proj}/img/{uuid}
- Add test to validate storageUrl format matches CDN pattern
- Verify UUID in storage path matches image.id
- Update 06-edge-cases.rest to use new path format

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 20:11:33 +07:00
Oleg Proskurin 3404743a84 chore: update environment config for CDN
- Add CDN_BASE_URL for direct image access
- Rename DEFAULT_ORG_ID → DEFAULT_ORG_SLUG
- Rename DEFAULT_PROJECT_ID → DEFAULT_PROJECT_SLUG

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 19:47:39 +07:00
Oleg Proskurin d3fd574492 feat: add MinIO public access + deployment docs
- Add mc anonymous set download for CDN public read access
- Create docs/url-fix-vps-site.md with VPS deployment instructions
- Create docs/url-fix-cloudflare-site.md with Cloudflare caching config

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 19:47:32 +07:00
Oleg Proskurin 20996edd6d refactor: simplify storage path to {org}/{proj}/img/{imageId}
- Remove category from all storage methods
- Change filename to imageId (UUID) across all services
- Update StorageService interface: orgId→orgSlug, projectId→projectSlug
- Update MinioStorageService to use new path format
- Update all route handlers (cdn, images, upload, live, textToImage)
- Update GenerationService and ImageService for new storage keys
- CDN URL format: cdn.banatie.app/{org}/{proj}/img/{imageId}

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 19:47:18 +07:00
Oleg Proskurin e57c66f318 feat: add originalFilename and fileExtension to images schema 2025-12-27 19:21:11 +07:00
usulpro 191b8c8501 feat: add actual vps config 2025-12-27 19:05:50 +07:00
usulpro abf03450dc fix: permission 2025-12-27 17:18:31 +07:00
Oleg Proskurin b0e6304e07 fix: urls and storage structure 2025-12-26 01:10:14 +07:00
Oleg Proskurin 7e04fcbbb0 fix: storage structure 2025-12-25 23:54:18 +07:00
Oleg Proskurin 0a42a32817 feat: use CDN urls 2025-12-25 23:35:52 +07:00
Oleg Proskurin 39781de4e8 docs: update generation rest 2025-12-24 23:02:25 +07:00
Oleg Proskurin 809eb4ebac doc: add a checklist 2025-12-24 01:02:13 +07:00
Oleg Proskurin 970a0f75c6 feat: update after deploy 2025-12-24 00:53:20 +07:00
Oleg Proskurin b9c998f33d feat: add deploy api script 2025-12-23 22:08:06 +07:00
Oleg Proskurin dbf9915bb8 feat: update docker 2025-12-23 21:51:28 +07:00
Oleg Proskurin c278ebc98f fix: api building 2025-12-22 00:04:50 +07:00
Oleg Proskurin bbe39bddc5 feat: responsive hero 2025-12-19 00:19:35 +07:00
Oleg Proskurin 052584a78b chore: hide footer links 2025-12-18 23:53:14 +07:00
Oleg Proskurin f37ae00177 feat: responsive footer 2025-12-18 23:47:36 +07:00
Oleg Proskurin 12cfeeda18 feat: make sticky header 2025-12-18 23:37:35 +07:00
Oleg Proskurin 62a03749e7 feat: update header 2025-12-18 23:29:24 +07:00
Oleg Proskurin ef8be82aa8 fix: logo optimisation 2025-12-18 23:26:01 +07:00
Oleg Proskurin efbcb8bfcd feat: optimize homepage 2025-12-18 00:21:07 +07:00
Oleg Proskurin 097fdd3d2d feat: switch to TW 2025-12-18 00:01:06 +07:00
Oleg Proskurin 42893a515c feat: move form to a separate component 2025-12-17 23:31:54 +07:00
Oleg Proskurin b7801ef528 fix: mobile hero 2025-12-16 00:34:31 +07:00
Oleg Proskurin d9781ae3fc feat: add analytics 2025-12-16 00:24:33 +07:00
Oleg Proskurin 9679934bb8 feat: add sitemap and robots 2025-12-15 23:34:06 +07:00
Oleg Proskurin f433f59e6b feat: setup trailing slashes 2025-12-15 23:32:01 +07:00
Oleg Proskurin 9c4dd35782 feat: update description 2025-12-15 13:04:09 +07:00
Oleg Proskurin d57bb2e3b9 feat: add deploy script 2025-12-15 12:45:17 +07:00
Oleg Proskurin 93defca7d2 feat: add og image 2025-12-15 12:42:39 +07:00