DocFast session 84: all staging fixes verified, mobile + competitive audit

This commit is contained in:
Hoid 2026-02-23 16:01:50 +00:00
parent 209c7784d9
commit 9fc6c807c7
5 changed files with 109 additions and 6 deletions

View file

@ -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

View file

@ -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
}

View file

@ -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

View file

@ -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
---

View file

@ -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"
}