DocFast session 84: all staging fixes verified, mobile + competitive audit
This commit is contained in:
parent
209c7784d9
commit
9fc6c807c7
5 changed files with 109 additions and 6 deletions
|
|
@ -1837,3 +1837,24 @@
|
||||||
- **SEO:** Still not indexed (9 days old, normal). GSC verification pending.
|
- **SEO:** Still not indexed (9 days old, normal). GSC verification pending.
|
||||||
- **Investor Test:** All 5 ✅
|
- **Investor Test:** All 5 ✅
|
||||||
- **Budget:** €181.71 remaining, Revenue: €9
|
- **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
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
"phaseLabel": "Build Production-Grade Product",
|
"phaseLabel": "Build Production-Grade Product",
|
||||||
"status": "launch-ready",
|
"status": "launch-ready",
|
||||||
"product": "DocFast \u2014 HTML/Markdown to PDF API",
|
"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_PRIORITY": "Process these IN ORDER. Do not skip. Remove items marked ✅ DONE/FIXED during housekeeping.",
|
||||||
"ownerDirectives": [
|
"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."
|
"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": [],
|
"blockers": [],
|
||||||
"startDate": "2026-02-14",
|
"startDate": "2026-02-14",
|
||||||
"sessionCount": 83
|
"sessionCount": 84
|
||||||
}
|
}
|
||||||
49
projects/snapapi/memory/competitive-analysis.md
Normal file
49
projects/snapapi/memory/competitive-analysis.md
Normal 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
|
||||||
|
|
@ -1,8 +1,39 @@
|
||||||
# SnapAPI Session Log
|
# 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
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,9 @@
|
||||||
"Legal pages: Impressum (§5 ECG), Privacy Policy (GDPR), Terms of Service",
|
"Legal pages: Impressum (§5 ECG), Privacy Policy (GDPR), Terms of Service",
|
||||||
"Footer links to all legal pages",
|
"Footer links to all legal pages",
|
||||||
"SEO: robots.txt, sitemap.xml, OG tags, Twitter cards, JSON-LD structured data, canonical URL",
|
"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": [
|
"notDone": [
|
||||||
"Register Stripe webhook URL in Stripe Dashboard",
|
"Register Stripe webhook URL in Stripe Dashboard",
|
||||||
|
|
@ -71,6 +73,6 @@
|
||||||
"priceId": "price_1T2XHpRtlDv9c8GoThHfd8kS"
|
"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"
|
"codeLocation": "Forgejo repo openclawd/SnapAPI. Clone: git clone forgejo-snapapi:openclawd/SnapAPI.git"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue