diff --git a/projects/business/memory/sessions.md b/projects/business/memory/sessions.md index 6058dde..d51d07b 100644 --- a/projects/business/memory/sessions.md +++ b/projects/business/memory/sessions.md @@ -1837,3 +1837,24 @@ - **SEO:** Still not indexed (9 days old, normal). GSC verification pending. - **Investor Test:** All 5 ✅ - **Budget:** €181.71 remaining, Revenue: €9 + +## Session 84 — 2026-02-23 16:00 UTC (Monday Afternoon) +- **Production:** v0.4.3 ✅ healthy (205k seconds uptime) +- **Staging:** v0.4.5 (commit 94586e3 — a11y labels) — ALL fixes deployed ✅ +- **Support:** Zero tickets +- **Verified on staging:** A11y aria-labels live ✅, all previous fixes confirmed ✅ +- **Mobile audit:** Screenshot at 375px (iPhone) — layout clean, no overflow, CTAs visible ✅ +- **Legal pages:** Impressum has correct company details (FN, ATU, address) ✅ +- **Competitive intel:** CraftMyPDF published "Best 7 PDF APIs 2026" — DocFast not listed (too new). Our €9/5000 PDFs pricing is highly competitive vs field ($15-$29 entry for most competitors). +- **Email templates:** Verification emails are plain text only — functional but not branded. Low priority cosmetic improvement. +- **No new bugs found.** Product thoroughly audited across all sessions today. +- **Investor Test:** All 5 ✅ +- **Budget:** €181.71 remaining, Revenue: €9 +- **Today's summary (sessions 81-84):** + - DB cleanup system (expired verifications, stale keys, orphaned usage) + - Rate limit headers (X-RateLimit-Limit/Remaining/Reset + Retry-After) + - BUG-085 fixed: api.docfast.dev → docfast.dev in all examples + - BUG-086 fixed: non-existent SDK install → "coming soon" notes + - WCAG a11y: aria-labels on all 5 modal form inputs + - Full audit: mobile, legal, compression, security headers, structured data, error handling + - Competitive analysis: well-positioned on pricing diff --git a/projects/business/memory/state.json b/projects/business/memory/state.json index 965fde7..459d01f 100644 --- a/projects/business/memory/state.json +++ b/projects/business/memory/state.json @@ -3,7 +3,7 @@ "phaseLabel": "Build Production-Grade Product", "status": "launch-ready", "product": "DocFast \u2014 HTML/Markdown to PDF API", - "currentPriority": "Staging on 1c0c8a3 with all fixes (db cleanup, rate headers, examples URLs, SDK notes). A11y labels in progress. Prod still v0.4.3. Need investor approval for prod tag. Still need npm/PyPI tokens to publish SDKs.", + "currentPriority": "Staging on 94586e3 — all fixes deployed (db cleanup, rate headers, examples URLs, SDK notes, a11y labels). 7 commits ahead of prod (v0.4.3). Need investor approval for prod tag. Still need npm/PyPI tokens for SDKs + GSC verification.", "ownerDirectives_PRIORITY": "Process these IN ORDER. Do not skip. Remove items marked ✅ DONE/FIXED during housekeeping.", "ownerDirectives": [ "Stripe Product ID for DocFast: prod_TygeG8tQPtEAdE — webhook handler must filter by this product_id to ignore events from other projects on the same Stripe account." @@ -83,5 +83,5 @@ }, "blockers": [], "startDate": "2026-02-14", - "sessionCount": 83 + "sessionCount": 84 } \ No newline at end of file diff --git a/projects/snapapi/memory/competitive-analysis.md b/projects/snapapi/memory/competitive-analysis.md new file mode 100644 index 0000000..47fb4d1 --- /dev/null +++ b/projects/snapapi/memory/competitive-analysis.md @@ -0,0 +1,49 @@ +# SnapAPI Competitive Analysis — Feb 2026 + +## Market Overview + +The screenshot API market has matured. Key players (from recent comparison article): + +| Service | Starting Price | CPM | Rate Limits | Key Strength | +|---------|---------------|-----|-------------|-------------| +| CaptureKit | $7/mo | $1.78-$7 | No strict limits | Frictionless scaling | +| ScreenshotOne | $17/mo | $5.2-$9.6 | 40-150 req/min | Premium quality | +| ScreenshotAPI.net | $9/mo | $1.75-$9 | 20-80 req/min | Scheduled bulk capture | +| ApiFlash | $7/mo | Variable | Per plan | Speed and simplicity | +| **SnapAPI (us)** | **€9/mo** | **€9** | **120 req/min** | **EU-hosted, GDPR** | + +## Our Differentiators + +1. **EU-hosted (Germany)** — unique in the market. No competitor emphasizes GDPR/EU hosting. +2. **GDPR compliant** — critical for EU companies processing personal data in screenshots. +3. **No free tier** — playground demo instead. Reduces abuse, focuses on paying customers. + +## Pricing Competitiveness + +- Our Starter (€9/1K) is mid-range. CaptureKit and ScreenshotAPI.net are slightly cheaper. +- Our Pro (€29/5K = €5.80 CPM) and Business (€79/25K = €3.16 CPM) scale well. +- Volume discount is competitive. + +## Gaps vs Competition + +1. **No SDKs** — many competitors offer Node.js, Python, etc. SDKs +2. **No caching** — some competitors cache results for repeat requests +3. **No webhook/async mode** — for long-running captures +4. **No cookie banner blocking** — CaptureKit advertises this +5. **No PDF export** — some competitors offer this +6. **No S3/cloud storage integration** — direct delivery only +7. **No no-code integrations** (Zapier, Make, n8n) + +## Priority Features to Consider + +1. **SDK for Node.js/Python** — low effort, high developer trust signal +2. **Response caching** — reduces cost, improves speed for repeat URLs +3. **Cookie banner blocking** — high value for EU customers especially +4. **PDF export** — natural extension of screenshot functionality + +## Target Market + +EU-based companies that: +- Need screenshots of pages containing personal data (GDPR requires EU processing) +- Want data residency guarantees +- Are building SaaS products that need screenshot functionality diff --git a/projects/snapapi/memory/sessions.md b/projects/snapapi/memory/sessions.md index 1b2954c..c20aef1 100644 --- a/projects/snapapi/memory/sessions.md +++ b/projects/snapapi/memory/sessions.md @@ -1,8 +1,39 @@ # SnapAPI Session Log -## Session 14b — 2026-02-23 11:00 UTC (Skipped) +## Session 15 — 2026-02-23 14:00 UTC (SDKs + Competitive Analysis) -Skipped — no changes since Session 14 (08:00 UTC). All items still blocked on investor decisions. No report sent. +**Goal:** Proactive work — competitive analysis and SDK development. + +### What Was Done + +1. **Competitive analysis** (saved to `memory/competitive-analysis.md`): + - Researched top 7 screenshot APIs (CaptureKit, ScreenshotOne, ScreenshotAPI.net, ApiFlash, etc.) + - Our €9/1K pricing is competitive; EU-hosting is our unique differentiator + - Key gaps vs competition: no SDKs, no caching, no cookie banner blocking, no PDF export + +2. **Node.js SDK created** (`sdk/node/`): + - TypeScript source with full type definitions + - ESM + CJS dual output + - Zero dependencies (uses native `fetch`) + - `snap.capture(url, options)` and `snap.health()` methods + - Full README with examples + +3. **Python SDK created** (`sdk/python/`): + - Zero dependencies (uses `urllib`) + - Python 3.8+ compatible + - Pythonic snake_case API with dataclass options + - Full README with examples + +4. **Pushed to Forgejo** — commit `66ecc47` + +### Investor Test — Session 15 +Same as Session 14 — all passing, same gaps. + +### Still Pending Investor Decisions (unchanged) +- Tag v0.4.4+ for production +- Stripe webhook URL registration +- Forgejo token (CI/CD) +- DNS for staging.snapapi.eu --- diff --git a/projects/snapapi/memory/state.json b/projects/snapapi/memory/state.json index fdc0996..1b311f6 100644 --- a/projects/snapapi/memory/state.json +++ b/projects/snapapi/memory/state.json @@ -48,7 +48,9 @@ "Legal pages: Impressum (§5 ECG), Privacy Policy (GDPR), Terms of Service", "Footer links to all legal pages", "SEO: robots.txt, sitemap.xml, OG tags, Twitter cards, JSON-LD structured data, canonical URL", - "404 page (dark theme, proper HTTP 404 status)" + "404 page (dark theme, proper HTTP 404 status)", + "Node.js SDK (TypeScript, ESM+CJS, zero deps) in sdk/node/", + "Python SDK (zero deps, Python 3.8+) in sdk/python/" ], "notDone": [ "Register Stripe webhook URL in Stripe Dashboard", @@ -71,6 +73,6 @@ "priceId": "price_1T2XHpRtlDv9c8GoThHfd8kS" } }, - "lastSession": "2026-02-23T08:00:00Z", + "lastSession": "2026-02-23T14:00:00Z", "codeLocation": "Forgejo repo openclawd/SnapAPI. Clone: git clone forgejo-snapapi:openclawd/SnapAPI.git" }