Releases: tryscribeco/scribe
Releases · tryscribeco/scribe
v0.9.9 Public Readiness Hardening
This release includes a set of general security hardening and repository-readiness improvements ahead of broader code review and sharing.
Highlights:
- tightened environment-variable expectations in runtime paths
- improved repository setup clarity with local environment templates
- refined README structure and deployment documentation for easier review
- applied general repository hardening and cleanup for safer public-facing maintenance
This release is focused on operational clarity and safer defaults, while preserving the current application architecture and deployment model.
v0.9.8 — Deploy Safety + Growth Hack + Marketing Fixes
🔥 Invite-Only Growth Hack
- Added invite-only free access strategy to launch plan
- Full playbook: exclusive access → traction → revenue levers
- Cost analysis and risk mitigations included
🔒 Launch Plan Password Protection
/launch-plannow requires password (scribeAway26)- Session-based — enter once per browser session
🛠️ Marketing Site Fixes
- Restored Beta tag on marketing site nav
- All CTAs now point to
app.tryscribe.co/dashboard - Added missing
seo-guidelines.htmlto platform - Clean URL rewrites for all static pages (launch-plan, seo-guidelines, brand-guide)
🚀 Deploy Automation
deploy.sh— single command deploys from correct directory- Auto-syncs
public/→platform/public/before deploy - Removed rogue
.vercelproject link from repo root DEPLOY.mddocuments architecture and rules- Prevents accidental domain hijacking from wrong directory deploys
v0.9.7 — How We Built Scribe (Case Study Page)
What's New
/how-we-built-scribe — Public Case Study Page (#84)
A polished case study page showcasing the Scribe build story:
- Hero: "One CTO. Nine Days. A Production SaaS."
- Cost comparison: 8-person team salary table ($350K-$600K traditional) vs 1 CTO + $200/mo AI tokens
- Architecture highlights: SVG/PNG diagrams from private docs
- Day-by-day build log: All 9 working days, 17 releases
- Tech stack badges, version history table, proof bar stats
Dual purpose: portfolio piece for job applications + investor/pitch material.
Infrastructure
- Middleware clean URL rewrite (/how-we-built-scribe → .html)
- GitHub Actions workflow for project board label automation
- Image validation logging to MongoDB (#83)
- Architecture diagram assets (SVG + PNG)
Full Changelog: v0.9.6...v0.9.7
v0.9.6 — Routing Fixes + OG Images + Idle Cost Fix
What's New
Bug Fixes
- #82:
app.tryscribe.conow redirects to/dashboardinstead of showing marketing page - OG images: Fixed 404 on
og-image.jpg— missing fromplatform/public/after subfolder migration. Link previews (iMessage, Telegram, etc.) working again - Canonical redirect:
/marketing.htmlnow 301 redirects to/(no duplicate content)
EC2 Cost Optimization (#81 — CLOSED)
- Root cause: wrong model name + CLI key escaping bug → heartbeat silently using Opus instead of Haiku
- Fix verified with 4-hour monitoring: $0.05 total ($0.007/heartbeat)
- Idle cost reduced from $5.76/day → $0.17/day (95% reduction, $168/month saved)
- Operational cost breakdown added to launch plan
Issues Closed
v0.9.5 — SEO Subfolder Migration + EC2 Cost Optimization
What's New
SEO Authority Consolidation (#80)
- Migrated from subdomains to subfolders for SEO authority consolidation
- All brand blogs now served at
tryscribe.co/<brand>/instead of<brand>.tryscribe.co - Marketing page at root, dashboard redirected to
app.tryscribe.co - Fixed related article links and brand prefix in subfolder URLs
EC2 Cost Optimization
- Diagnosed and fixed heartbeat model misconfiguration burning $5.76/day while idle
- Root cause: wrong model name (
claude-haiku-3.5→claude-haiku-4-5) + allowlist escaping bug causing silent fallback to Opus - Heartbeat cost reduced from $0.24/heartbeat (Opus) to $0.007/heartbeat (Haiku) — 34x cheaper
- Production idle cost: $0.17/day (was $5.76/day — $168/month saved)
Docs & Testing
- All 7 test accounts documented
- Testing guide moved to GitHub issue #70
- Launch plan updated with real cost data from March 10 testing
- AWS Startup Showcase + growth channels added to launch plan
- Architecture and README updated for subfolder URL model
v0.9.2 — Content Quality + Centralized Prompts
What's New
#60 Centralized Instruction System — CLOSED
- All prompts extracted to
worker/prompts/(single source of truth)dalle-image.js— DALL-E prompt builder + rulesarticle-writing.js— Full Scribe Walker promptquality-rules.js— Quality, CTA, brand SEO rulestags.js— Standard tag definitions
- Image regeneration now uses same DALL-E prompt as article generation
Content Quality Overhaul
- Word count minimum raised: 800→1200 words (target 1200-1800)
- Readability & engagement rules: conversational tone, relatable scenarios, varied pacing
- Results: Latest articles hitting 1357-1561 words vs 860-919 before
Image Dimension Enforcement
- Square/portrait images rejected at upload (not autocropped)
- Auto-queues image regeneration job on rejection
- Logs dimensions for platform analytics
Bug Fix: Rate Limit Separation
- Article generation and image regeneration now have independent rate limits (5/hr each)
- Previously image regens counted toward article gen limit
New Issues Created
- #61 — Article fine-tuning & custom content direction (P2)
- #62 — Tone customization for Pro+ users (P2)
Rollback
git checkout v0.9.1
cd platform && npx vercel --prod --yes
cd ../worker && pkill -f job-worker && node job-worker.jsFull diff: v0.9.1...v0.9.2
v0.9.1 — Site Owner Article Management
What's New
Article Management (#59) — 7 tasks completed
- Delete articles with Vercel Blob CDN cleanup
- Regenerate featured images (async via worker + DALL-E 3)
- Upload custom images (5MB max, sharp Q85 → CDN)
- Unpublish/republish toggle (draft ↔ published, auto-unpin)
- Manage modal — clean pencil icon replaces cluttered card buttons
- Graceful 'not available' page — branded page replaces raw 404
- Toast notifications on regenerate/upload actions
Bug Fixes
- Dashboard now polls during image regeneration (was only polling during article gen)
- Image-regen email notifications fixed (was using wrong field name)
- Branded 🎨 email template for image completion
Rollback
git checkout v0.9.0
cd platform && npx vercel --prod --yes
# Restart worker with: cd worker && node job-worker.jsFull diff: v0.9.0...v0.9.1
v0.9.0 — Dashboard + Notifications + Article Polish
🎉 4 Issues Closed
#5 — Dashboard Completion
- Stats bar: article count, tier usage progress bar (color-coded green/amber/red), current month
- Tier badge in sidebar footer (Free/Pro/Business/Agency, links to Settings)
- Analytics & Billing nav items with coming-soon dots, link to Settings
#38 — Navigate-Away Notice + Completion Email
- Browser
beforeunloadwarning during active generation - "Safe to leave" banner above all content during generation
- Branded completion email via Resend (article count, words, blog link)
- Email preferences toggle in Settings (on by default)
emailNotificationsfield on User model +/api/user/preferencesendpoint
#31 — Article Page Polish (Complete)
- Copy link share button (clipboard API + checkmark feedback)
- Next/prev article navigation at bottom of articles
- Removed tier indicator debug badge from blog pages
- Fixed next/prev link paths for subdomain routing
#2 — Publishing Engine (Closed)
- Core engine fully operational, remaining items broken out:
Infrastructure
- OpenClaw updated 2026.2.9 → 2026.3.2 (fixed Telegram billing error bug)
- #55 MongoDB Atlas network security (created, tied to AWS Phase 2)
- #7 Custom domains: phased plan (Vercel API now, AWS post-incorporation)
- #8 → Brand Analytics, #39 → Platform Analytics & Observability (restructured)
New Issues Created
- #55 MongoDB network security (P1)
- #56 Scheduled publishing (P2)
- #57 Article regeneration (P2)
- #58 Bulk operations (P2)
Stats
- 20 commits since v0.8.2
- 4 issues closed, 5 created
- Dashboard API now returns
tierfield - New files:
email.ts,CopyLinkButton.tsx,/api/notify/completion,/api/user/preferences
v0.8.4 — Session Wrap: Image Optimization + Performance + Cleanup
Session Summary (Mar 6, 2026)
Closed Issues
- #51 — Image optimization (7/7 tasks): Vercel Blob CDN, JPEG Q85 compression, migration
- #52 — Emoji alignment fix
- #53 — Dashboard pagination (24/page + Load More)
- #25 — Article limit enforcement (verified fixed)
Created Issues
- #54 — Server-side search/sort on status API (P2)
Updated Issues
- #7 — Custom domain connection: expanded with architecture options (Vercel vs AWS vs Hybrid) + blob storage dependency
Performance Gains
| Metric | Before | After |
|---|---|---|
| Image load | 11.84s | 0.43s (27x faster) |
| Blog SSR | 2.80s | 1.63s (42% faster) |
| Image size | 835KB | 157KB (81% smaller) |
| MongoDB freed | — | 63MB |
Tags: v0.8.1 → v0.8.4
v0.8.3 — Image Optimization Complete (#51)
#51 — All 7 Tasks Complete ✅
Images migrated from base64 blobs in MongoDB → compressed JPEG Q85 on Vercel Blob CDN.
Performance Results
| Metric | Before | After | Improvement |
|---|---|---|---|
| Blog SSR | 2.80s | 1.63s | 42% faster |
| Blog API | 1.69s | 1.44s | 15% faster |
| Image load | 11.84s | 0.43s | 27x faster |
| Image size | 835KB | 157KB | 81% smaller |
| MongoDB storage | ~63MB | ~0MB | 63MB freed |
Tasks Completed
- ✅ sharp + @vercel/blob installed, Vercel Blob store connected
- ✅
image-processor.ts— fetch → JPEG Q85 → Vercel Blob → CDN URL - ✅
POST /api/images/uploadendpoint - ✅ Worker updated — DALL-E URL → upload API (no more base64)
- ✅ Migration — 63/63 articles, 0 errors, 56% avg compression
- ✅ Image route — 301 redirect to CDN, immutable cache
- ✅ Projection workarounds removed — clean queries