From 41faf2abafe358f149ed2a2b13431d5310aa771b Mon Sep 17 00:00:00 2001 From: Oleg Proskurin Date: Sun, 21 Dec 2025 22:04:38 +0700 Subject: [PATCH] docs: homepage --- INDEX.md | 14 +- ROADMAP.md | 9 +- backlog/06-future-topics-backlog.md | 22 ++- execution/18-production-infrastructure.md | 224 ++++++++++++++++++++++ 4 files changed, 262 insertions(+), 7 deletions(-) create mode 100644 execution/18-production-infrastructure.md diff --git a/INDEX.md b/INDEX.md index ac65ff4..ab07858 100644 --- a/INDEX.md +++ b/INDEX.md @@ -1,8 +1,8 @@ # Banatie Strategy Documentation Index -**Last Updated:** November 3, 2025 -**Total Documents:** 18 (numbered in strategy/execution) + research (prefixed) -**Next Available Number:** 18 +**Last Updated:** December 21, 2025 +**Total Documents:** 19 (numbered in strategy/execution) + research (prefixed) +**Next Available Number:** 19 **Project Stage:** Pre-launch / MVP Development --- @@ -32,8 +32,9 @@ - 15 - MVP Scope v2 Realistic - 16 - Product Features - 17 - Week 1 Launch Checklist +- 18 - Production Infrastructure -**Next to assign:** 18 +**Next to assign:** 19 --- @@ -168,6 +169,11 @@ Status: Ready to execute ⭐ Goal: 3-5 early adopters try it, 1 pays (any amount) Includes: Pre-launch checklist, launch day schedule, Reddit/Discord copy templates, success criteria +**[18 - Production Infrastructure](execution/18-production-infrastructure.md)** (Dec 21) +*Production deployment configuration and external services* +Status: ✅ Live +Includes: VPS setup, Cloudflare config, SEO, Analytics, Performance metrics + ### Technical Documentation **[12 - Current Tech State](execution/12-the-current-tech-state.md)** (v1.0, Nov 1) diff --git a/ROADMAP.md b/ROADMAP.md index 7befe9e..22c4bf3 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -19,7 +19,7 @@ **Sprint:** Tech Debt Clear + Prompt URLs (Days 1-7) **Focus:** Unified product approach (Direction 1 + 2 combined) **Next Milestone:** Ultra-minimal launch (Week 1 - Prompt URLs + Manual payments) -**Last Updated:** November 3, 2025 (documentation integrated) +**Last Updated:** December 21, 2025 --- @@ -46,7 +46,12 @@ - [ ] Prompt URLs (3 days) - Universal entry point **Non-tech (Day 8):** -- [ ] Landing page (2 hours) - Single page, hero + pricing + CTA +- [x] Landing page deployed (~Dec 15, 2025) - See [18-production-infrastructure.md](execution/18-production-infrastructure.md) +- [x] Cloudflare CDN + Cache Rules configured +- [x] Google Search Console verified +- [x] Umami Analytics connected +- [x] SEO meta tags + OG image configured +- [x] PageSpeed 95+ mobile achieved - [ ] Docs page (2 hours) - Prompt URLs + API examples - [ ] Signup flow (30 min) - Google Form, manual process diff --git a/backlog/06-future-topics-backlog.md b/backlog/06-future-topics-backlog.md index 1d5b76e..c5dd51f 100644 --- a/backlog/06-future-topics-backlog.md +++ b/backlog/06-future-topics-backlog.md @@ -50,6 +50,26 @@ Until ICP is validated (selected + customer interviews complete), most other str ## Soon Topics (Schedule Within 1 Month) +### 0. SEO & Indexing Review +**Added:** December 21, 2025 +**Context:** Landing page live, but some SEO issues need attention +**Tasks:** +- [ ] Fix trailing slash redirect (Cloudflare rule not working) + - `https://banatie.app` returns 200 instead of 301 → `https://banatie.app/` + - Current rule: `http.request.full_uri eq "https://banatie.app"` — not matching + - Options: Page Rules, Bulk Redirects, or leave (canonical handles it) +- [ ] Verify Google indexing after ~1 week + - Check "Страница является копией" warning resolved + - Confirm only `https://banatie.app/` indexed (not www, not non-slash) +- [ ] Monitor Search Console for crawl errors + +**Why:** Clean SEO foundation before content marketing push +**Related doc:** [18-production-infrastructure.md](../execution/18-production-infrastructure.md) +**Owner:** Oleg +**Urgency:** Soon (check in 1 week) + +--- + ### 1. MVP Scope Definition **Context:** After ICP validated, need to strip product to ultra-minimal feature set **Why urgent:** Cannot launch without clear scope @@ -344,5 +364,5 @@ When you want to discuss something new: **Document owner:** @men + Oleg (joint) **Next review:** After ICP validation complete -**Last updated:** October 19, 2025 +**Last updated:** December 21, 2025 **Related docs:** All strategic documents reference this backlog diff --git a/execution/18-production-infrastructure.md b/execution/18-production-infrastructure.md new file mode 100644 index 0000000..7311217 --- /dev/null +++ b/execution/18-production-infrastructure.md @@ -0,0 +1,224 @@ +# Production Infrastructure + +**Date:** December 21, 2025 +**Purpose:** Document production deployment configuration and external services +**Status:** ✅ Live +**Related docs:** [12-the-current-tech-state.md](12-the-current-tech-state.md) + +--- + +## 1. Production URLs + +| URL | Purpose | Status | +|-----|---------|--------| +| https://banatie.app/ | Landing page | ✅ Live | +| https://www.banatie.app/ | Redirects to non-www | ✅ Configured | +| https://api.banatie.app/ | API service | ⏳ Not deployed | +| https://cdn.banatie.app/ | Image CDN | 🔮 Future | + +**Canonical URL:** `https://banatie.app/` (non-www, with trailing slash) + +--- + +## 2. Hosting Infrastructure + +### VPS Provider +- **Provider:** Contabo +- **Location:** Singapore +- **Plan:** Minimum tier +- **Shared with:** Family Nextcloud, Gitea + +### Server Stack +- **Reverse Proxy:** Caddy (auto SSL via Let's Encrypt) +- **Container Runtime:** Docker Compose +- **Landing App:** Next.js 15 (standalone output) + +### Docker Services (Landing) +``` +banatie-landing: + - Next.js standalone server + - Port: 3000 (internal) + - Volume: ./waitlist-logs (email collection) +``` + +--- + +## 3. Domain & DNS + +### Domain Registration +- **Registrar:** GoDaddy +- **Domain:** banatie.app + +### DNS Management +- **Provider:** Cloudflare (migrated from GoDaddy) +- **Nameservers:** cosmin.ns.cloudflare.com, ursula.ns.cloudflare.com + +### DNS Records +| Type | Name | Value | Proxy | +|------|------|-------|-------| +| A | banatie.app | [VPS IP] | ✅ Proxied | +| CNAME | www | banatie.app | ✅ Proxied | +| CNAME | api | banatie.app | ✅ Proxied | +| CNAME | cdn | banatie.app | ✅ Proxied | +| TXT | @ | google-site-verification=... | DNS only | +| TXT | _dmarc | v=DMARC1;... | DNS only | + +--- + +## 4. Cloudflare Configuration + +### SSL/TLS +- **Mode:** Full (strict) +- **Certificate:** Cloudflare Edge + Caddy (Let's Encrypt) on origin + +### Cache Rules +**Rule: "Cache Next.js static"** +``` +Match: + - URI Path starts with /_next/static + - URI Path ends with .png + - URI Path starts with /_next/image + +Then: + - Browser TTL: 1 month + - Edge TTL: 1 month + - Cache Key: Include all query string parameters +``` + +### Redirect Rules +**Rule: "Add trailing slash"** +``` +Match: http.request.full_uri eq "https://banatie.app" +Then: 301 redirect to https://banatie.app/ +``` + +### AI Crawl Control +- **Managed robots.txt:** Disabled (self-managed) +- **AI bot access:** Allowed for all crawlers + +--- + +## 5. SEO Configuration + +### Meta Tags +- **Title:** AI Image Generation Inside Your Workflow | Banatie +- **Description:** Generate production-ready images via API, SDK, CLI, or live URLs... +- **Keywords:** API-first image generation, AI image API, image generation for developers... +- **Author:** Banatie +- **Robots:** index, follow + +### Open Graph +- **og:url:** https://banatie.app/ +- **og:image:** https://banatie.app/og-image.png +- **og:type:** website +- **og:locale:** en_US + +### Technical SEO +- **Canonical:** `` +- **Alternate hreflang:** en (self-referencing) +- **robots.txt:** /robots.txt (self-managed) +- **Sitemap:** https://banatie.app/sitemap.xml + +### Google Search Console +- **Status:** ✅ Verified (TXT record) +- **Indexed pages:** 1 (banatie.app/) +- **Last crawl:** December 19, 2025 + +--- + +## 6. Analytics + +### Umami Analytics +- **Plan:** Cloud (free tier) +- **Dashboard:** cloud.umami.is +- **Website ID:** 5af6a122-ca2e-4a48-9bfd-9cfd4d7b5174 +- **Future:** Self-hosted planned + +--- + +## 7. Performance + +### PageSpeed Scores (December 19, 2025) +| Metric | Mobile | Desktop | +|--------|--------|---------| +| Performance | 95 | 99 | +| Accessibility | 100 | 100 | +| Best Practices | 100 | 100 | +| SEO | 100 | 100 | + +### Core Web Vitals (Mobile) +- **FCP:** 1.7s +- **LCP:** 2.9s +- **TBT:** 10ms +- **CLS:** 0 + +### Image Optimization +- **Optimizer:** Next.js built-in +- **Formats:** AVIF (primary), WebP (fallback) +- **Logo size:** 376KB → 7.5KB (50x reduction) + +--- + +## 8. Email Collection + +### Current Implementation +- **Storage:** File-based (volume on VPS) +- **Location:** ./waitlist-logs/ +- **Format:** JSON files per submission +- **Email sending:** Not implemented + +### Data Captured +- Email address +- Selected options from popup +- Timestamp + +### Future Plans +- Email service integration (TBD) +- Welcome email automation +- Newsletter setup + +--- + +## 9. Next.js Configuration + +```typescript +// next.config.ts +const nextConfig: NextConfig = { + output: 'standalone', + trailingSlash: true, + images: { + formats: ['image/avif', 'image/webp'], + }, + eslint: { + ignoreDuringBuilds: true, + }, +}; +``` + +--- + +## 10. Deployment Checklist + +### Completed ✅ +- [x] Landing page deployed (~December 15, 2025) +- [x] Domain connected via Cloudflare +- [x] SSL configured (Full strict) +- [x] Google Search Console verified +- [x] Umami analytics connected +- [x] Meta tags and OG image configured +- [x] Cache rules for static assets +- [x] Trailing slash redirect +- [x] Image optimization (AVIF) +- [x] PageSpeed 95+ mobile + +### Pending ⏳ +- [ ] API service deployment +- [ ] CDN service setup (Imageflow + MinIO) +- [ ] Email service integration +- [ ] Self-hosted Umami migration + +--- + +**Document Owner:** Oleg +**Last Updated:** December 21, 2025 +**Next Review:** After API deployment