{"version":1,"generated_at":"2026-09-24","hourly_value_usd":50,"evidence_note":"All savings are modeled from public prices and planning assumptions (setup and upkeep valued at $50/hour). None are measured customer results yet. Unknown prices are null and never ranked.","path_types":{"switch":"Switch vendor","downgrade":"Cheaper plan","open_source":"Open source","per_use":"Pay per use","build":"Replace with AI","bundled":"Already included"},"vendors":{"chatgpt":{"id":"chatgpt","name":"ChatGPT","url":"https://chatgpt.com","license":"proprietary","category":"AI chat","from_usd":20,"features":["Chat with AI","Web search","File and image uploads","Image generation","Deep research","Voice mode","Projects","Custom GPTs","Memory","Codex coding agent"]},"claude":{"id":"claude","name":"Claude","url":"https://claude.ai","license":"proprietary","category":"AI chat","from_usd":20,"features":["Chat with AI","File and image uploads","Projects","Artifacts","Web search","Research","Claude Code","Memory","Connectors and integrations","Code execution"]},"google_ai_pro":{"id":"google_ai_pro","name":"Google AI Pro (Gemini)","url":"https://gemini.google","license":"proprietary","category":"AI chat","from_usd":4.99,"features":["Chat with AI","Deep research","Image generation","Video generation (Flow/Veo)","Gemini in Gmail and Docs","Cloud storage","NotebookLM higher limits","Coding agent (Antigravity/Jules)","Family sharing"]},"perplexity":{"id":"perplexity","name":"Perplexity","url":"https://www.perplexity.ai","license":"proprietary","category":"AI chat","from_usd":20,"features":["AI web search with citations","Model choice","Deep research","File uploads","Spaces","Image generation","Comet browser assistant"]},"supergrok":{"id":"supergrok","name":"SuperGrok (Grok)","url":"https://grok.com","license":"proprietary","category":"AI chat","from_usd":30,"features":["Chat with AI","Web and X search","Image and video generation (Imagine)","Voice mode","Deep research","Projects","Build (coding)"]},"midjourney":{"id":"midjourney","name":"Midjourney","url":"https://www.midjourney.com","license":"proprietary","category":"AI image & video","from_usd":10,"features":["Text-to-image","Image variations and upscaling","Style and character references","Image editor","Video generation","Relax mode (unlimited slow)","Stealth mode","Personalization"]},"openai_api":{"id":"openai_api","name":"OpenAI API","url":"https://platform.openai.com","license":"proprietary","category":"AI APIs","features":["Text generation (Responses API)","Embeddings","Image generation API","Speech-to-text and TTS","Batch API","Fine-tuning","Realtime voice API","Usage limits and billing controls"]},"anthropic_api":{"id":"anthropic_api","name":"Anthropic API (Claude Developer Platform)","url":"https://platform.claude.com","license":"proprietary","category":"AI APIs","features":["Messages API","Prompt caching","Batch API","Tool use","Files API","Web search tool","Usage and cost reports","Spend limits"]},"openrouter":{"id":"openrouter","name":"OpenRouter","url":"https://openrouter.ai","license":"proprietary","category":"AI APIs","features":["Unified API for many models","Chat playground","Provider fallback routing","Free models","Budgets and spend controls","Activity logs export","BYO provider keys"]},"replicate":{"id":"replicate","name":"Replicate","url":"https://replicate.com","license":"proprietary","category":"AI APIs","features":["Image generation models","Video generation models","LLM inference","Deploy custom models (Cog)","Fine-tune models","Webhooks and async predictions"]},"fal":{"id":"fal","name":"fal","url":"https://fal.ai","license":"proprietary","category":"AI APIs","features":["Image generation models","Video generation models","Audio models","Workflows","LoRA training","Serverless GPU deployments"]},"elevenlabs":{"id":"elevenlabs","name":"ElevenLabs","url":"https://elevenlabs.io","license":"proprietary","category":"AI APIs","from_usd":6,"features":["Text-to-speech","Voice cloning","Speech-to-text","Dubbing","Studio (long-form audio)","Voice agents","API access","Sound effects and music"]},"cursor":{"id":"cursor","name":"Cursor","url":"https://cursor.com","license":"proprietary","category":"AI coding","from_usd":20,"features":["AI agent in editor","Tab autocomplete","Chat with codebase","Frontier model choice","Cloud/background agents","CLI agent","Code review bot","MCP, rules and skills"]},"github_copilot":{"id":"github_copilot","name":"GitHub Copilot","url":"https://github.com/features/copilot","license":"proprietary","category":"AI coding","from_usd":10,"features":["Code completions","Chat in IDE","Agent mode","Cloud coding agent","Pull request code review","Copilot CLI","Multiple model choice"]},"windsurf":{"id":"windsurf","name":"Windsurf","url":"https://windsurf.com","license":"proprietary","category":"AI coding","from_usd":20,"features":["AI agent (Cascade)","Tab autocomplete","Frontier model choice","Cloud agents (Devin)","Inline edits","Previews and deploys"]},"lovable":{"id":"lovable","name":"Lovable","url":"https://lovable.dev","license":"proprietary","category":"App builders","features":["Build app from prompt","Visual edits","Hosting and custom domain","Lovable Cloud database/auth","GitHub sync","Collaboration (unlimited members)"]},"bolt":{"id":"bolt","name":"Bolt.new","url":"https://bolt.new","license":"proprietary","category":"App builders","from_usd":25,"features":["Build app from prompt","In-browser dev environment","Hosting and custom domains","Databases","Export/download code","GitHub integration"]},"replit":{"id":"replit","name":"Replit","url":"https://replit.com","license":"proprietary","category":"App builders","from_usd":20,"features":["AI Agent builds apps","Cloud IDE","One-click deployments","Databases","Collaboration","Mobile app","Secrets management"]},"v0":{"id":"v0","name":"v0 by Vercel","url":"https://v0.app","license":"proprietary","category":"App builders","from_usd":30,"features":["Build UI/app from prompt","Deploy to Vercel","Design mode edits","GitHub sync","Model choice","Shared team credits"]},"agentmail":{"id":"agentmail","name":"AgentMail","url":"https://www.agentmail.to","license":"proprietary","category":"Email infrastructure","from_usd":20,"features":["Create inboxes via API","Send email","Receive email and webhooks","Threads and search","Custom domains","Attachments"]},"browserbase":{"id":"browserbase","name":"Browserbase","url":"https://www.browserbase.com","license":"proprietary","category":"AI agent infra","from_usd":20,"features":["Hosted headless browsers","Session recordings","Proxies","Stealth and captcha handling","Search API","Fetch/extract API","Stagehand SDK"]},"e2b":{"id":"e2b","name":"E2B","url":"https://e2b.dev","license":"open_source","category":"AI agent infra","from_usd":150,"features":["Code sandboxes via SDK","Per-second billing","Custom sandbox templates","Filesystem and process API","Concurrent sandboxes","Self-host option"]},"vercel":{"id":"vercel","name":"Vercel","url":"https://vercel.com","license":"proprietary","category":"Hosting","from_usd":20,"features":["Git push deploys","Preview deployments","Serverless functions","Custom domains and SSL","Edge CDN","Image optimization","Web analytics","Firewall and bot protection","Blob storage","Cron jobs"]},"netlify":{"id":"netlify","name":"Netlify","url":"https://www.netlify.com","license":"proprietary","category":"Hosting","from_usd":9,"features":["Git push deploys","Deploy previews","Serverless functions","Custom domains and SSL","Form handling","Edge CDN","Split testing"]},"render":{"id":"render","name":"Render","url":"https://render.com","license":"proprietary","category":"Hosting","from_usd":25,"features":["Web services from Git","Background workers","Cron jobs","Managed Postgres","Key-value (Redis)","Preview environments","Custom domains and SSL","Private networking"]},"railway":{"id":"railway","name":"Railway","url":"https://railway.com","license":"proprietary","category":"Hosting","from_usd":5,"features":["Deploy from Git or Docker","Managed databases","Cron jobs","Custom domains","Private networking","Object storage","Environments and PR previews"]},"flyio":{"id":"flyio","name":"Fly.io","url":"https://fly.io","license":"proprietary","category":"Hosting","features":["Deploy containers globally","Machines API","Persistent volumes","Private networking","Custom domains and SSL","Managed Postgres","GPU machines"]},"supabase":{"id":"supabase","name":"Supabase","url":"https://supabase.com","license":"open_source","category":"Databases","from_usd":25,"features":["Postgres database","Auth","File storage","Realtime","Edge functions","Vector (pgvector)","Auto-generated APIs","Daily backups"]},"neon":{"id":"neon","name":"Neon","url":"https://neon.com","license":"proprietary","category":"Databases","features":["Serverless Postgres","Database branching","Scale to zero","Point-in-time restore","Read replicas","Neon Auth"]},"planetscale":{"id":"planetscale","name":"PlanetScale","url":"https://planetscale.com","license":"proprietary","category":"Databases","features":["Managed Postgres","Vitess MySQL","High availability replicas","Branching and deploy requests","Query insights","Backups"]},"cloudflare":{"id":"cloudflare","name":"Cloudflare","url":"https://www.cloudflare.com","license":"proprietary","category":"Hosting","from_usd":5,"features":["DNS","CDN and caching","DDoS protection and WAF","SSL certificates","Workers (serverless)","Pages (static hosting)","R2 object storage","Zero Trust access","Email routing"]},"digitalocean":{"id":"digitalocean","name":"DigitalOcean","url":"https://www.digitalocean.com","license":"proprietary","category":"Hosting","from_usd":4,"features":["Virtual machines (Droplets)","Managed databases","Object storage (Spaces)","App Platform","Kubernetes","Load balancers","Backups and snapshots"]},"aws":{"id":"aws","name":"Amazon Web Services","url":"https://aws.amazon.com","license":"proprietary","category":"Hosting","features":["Virtual machines (EC2)","Object storage (S3)","Managed databases (RDS)","Serverless (Lambda)","Email sending (SES)","CDN (CloudFront)","DNS (Route 53)","Cost Explorer and budgets"]},"heroku":{"id":"heroku","name":"Heroku","url":"https://www.heroku.com","license":"proprietary","category":"Hosting","from_usd":5,"features":["Git push deploys","Managed Postgres","Key-Value store","Add-ons marketplace","Pipelines and review apps","Scheduler (cron)","Custom domains and SSL"]},"resend":{"id":"resend","name":"Resend","url":"https://resend.com","license":"proprietary","category":"Email infrastructure","from_usd":20,"features":["Send email API","Receive email (inbound)","Custom domains and DKIM","Webhooks and events","React Email templates","Broadcasts/marketing emails","Logs"]},"postmark":{"id":"postmark","name":"Postmark","url":"https://postmarkapp.com","license":"proprietary","category":"Email infrastructure","from_usd":15,"features":["Send email API and SMTP","Inbound email processing","Templates","Message streams","Bounce and spam handling","Activity logs"]},"sendgrid":{"id":"sendgrid","name":"SendGrid (Twilio)","url":"https://sendgrid.com","license":"proprietary","category":"Email infrastructure","from_usd":19.95,"features":["Send email API and SMTP","Templates","Webhooks and events","Deliverability insights","Marketing campaigns","Dedicated IP"]},"mailgun":{"id":"mailgun","name":"Mailgun","url":"https://www.mailgun.com","license":"proprietary","category":"Email infrastructure","from_usd":15,"features":["Send email API and SMTP","Inbound routing","Email validation","Templates","Logs and analytics","Webhooks"]},"sentry":{"id":"sentry","name":"Sentry","url":"https://sentry.io","license":"source_available","category":"Monitoring","features":["Error tracking","Performance tracing","Session replay","Alerts","Release health","Cron and uptime monitors","Logs","Source maps and stack traces"]},"better_stack":{"id":"better_stack","name":"Better Stack","url":"https://betterstack.com","license":"proprietary","category":"Status pages","from_usd":34,"features":["Uptime monitoring","Status pages","On-call scheduling","Phone and SMS alerts","Log management","Error tracking","Incident management"]},"posthog":{"id":"posthog","name":"PostHog","url":"https://posthog.com","license":"open_source","category":"Analytics","features":["Product analytics","Session replay","Feature flags","A/B experiments","Surveys","Web analytics","Error tracking","Data warehouse"]},"namecheap":{"id":"namecheap","name":"Namecheap","url":"https://www.namecheap.com","license":"proprietary","category":"Domains","features":["Domain registration","Domain renewal","DNS management","WHOIS privacy","Email forwarding","Private email add-on"]},"godaddy":{"id":"godaddy","name":"GoDaddy","url":"https://www.godaddy.com","license":"proprietary","category":"Domains","features":["Domain registration","Domain renewal","DNS management","Domain privacy","Email add-ons","Website builder add-on"]},"porkbun":{"id":"porkbun","name":"Porkbun","url":"https://porkbun.com","license":"proprietary","category":"Domains","features":["Domain registration","Domain renewal","DNS management","Free WHOIS privacy","Free SSL","Email forwarding"]},"cloudflare_registrar":{"id":"cloudflare_registrar","name":"Cloudflare Registrar","url":"https://www.cloudflare.com/products/registrar/","license":"proprietary","category":"Domains","features":["Domain registration","Domain renewal","DNS management","Free WHOIS redaction","DNSSEC","Transfer lock"]},"semrush":{"id":"semrush","name":"Semrush","url":"https://www.semrush.com","license":"proprietary","category":"SEO data","from_usd":139,"features":["Keyword research","Rank tracking","Site audit","Backlink analysis","Competitor traffic analysis","AI search visibility","Content ideas","Reporting"]},"ahrefs":{"id":"ahrefs","name":"Ahrefs","url":"https://ahrefs.com","license":"proprietary","category":"SEO data","from_usd":129,"features":["Backlink analysis","Keyword research","Rank tracking","Site audit","Competitor analysis","Content explorer","AI brand visibility","API access"]},"moz":{"id":"moz","name":"Moz Pro","url":"https://moz.com","license":"proprietary","category":"SEO data","from_usd":99,"features":["Keyword research","Rank tracking","Site crawl audit","Backlink analysis","Domain Authority","AI search visibility"]},"clay":{"id":"clay","name":"Clay","url":"https://www.clay.com","license":"proprietary","category":"Lead data","from_usd":185,"features":["Contact and company enrichment","Waterfall across data providers","AI web research agent","Tables and workflows","CRM sync","Email sequencing","Signals and intent tracking"]},"apollo":{"id":"apollo","name":"Apollo.io","url":"https://www.apollo.io","license":"proprietary","category":"Lead data","features":["B2B contact search","Email finder","Phone numbers","Email sequences","Chrome extension","CRM enrichment","Dialer"]},"hunter":{"id":"hunter","name":"Hunter","url":"https://hunter.io","license":"proprietary","category":"Lead data","from_usd":49,"features":["Email finder","Email verifier","Domain search","Cold email campaigns","B2B lead database","Chrome extension","API"]},"crunchbase":{"id":"crunchbase","name":"Crunchbase","url":"https://www.crunchbase.com","license":"proprietary","category":"Lead data","features":["Company search","Funding round data","Investor profiles","Saved lists and alerts","CSV export","API access"]},"lusha":{"id":"lusha","name":"Lusha","url":"https://www.lusha.com","license":"proprietary","category":"Lead data","features":["Contact email lookup","Phone number lookup","Chrome extension","Prospecting lists","CRM enrichment","API"]},"dataforseo":{"id":"dataforseo","name":"DataForSEO","url":"https://dataforseo.com","license":"proprietary","category":"SEO data","features":["SERP API","Keyword data API","Backlinks API","On-page audit API","LLM mentions API","Domain analytics API"]},"serpapi":{"id":"serpapi","name":"SerpApi","url":"https://serpapi.com","license":"proprietary","category":"SEO data","from_usd":25,"features":["Google search results API","Other engines (Bing, YouTube, Maps)","Location targeting","Legal shield","Structured JSON output","Account usage API"]},"treg":{"id":"treg","name":"treg","url":"https://treg.to","license":"open_source","category":"AI agent infra","features":["One API key for many tools","SEO data calls","Contact and company enrichment","Email finding and verification","Funding data","Social publishing","Bring your own keys","MCP server"]},"mailchimp":{"id":"mailchimp","name":"Mailchimp","url":"https://mailchimp.com","license":"proprietary","category":"Email marketing","from_usd":13,"features":["Email campaigns","Audience/contact management","Automations","Signup forms and landing pages","Templates","A/B testing","Reporting"]},"kit":{"id":"kit","name":"Kit (ConvertKit)","url":"https://kit.com","license":"proprietary","category":"Email marketing","from_usd":39,"features":["Email broadcasts","Landing pages and forms","Tagging and segmentation","Visual automations","Email sequences","Paid newsletters and products","Creator Network recommendations"]},"beehiiv":{"id":"beehiiv","name":"beehiiv","url":"https://www.beehiiv.com","license":"proprietary","category":"Email marketing","features":["Newsletter sending","Hosted website","Ad network monetization","Referral program","Paid subscriptions","Automations","Analytics"]},"buffer":{"id":"buffer","name":"Buffer","url":"https://buffer.com","license":"proprietary","category":"Social scheduling","features":["Schedule posts","Multi-network publishing","Content calendar","Analytics","AI assistant","Community inbox"]},"typefully":{"id":"typefully","name":"Typefully","url":"https://typefully.com","license":"proprietary","category":"Social scheduling","features":["Thread and post editor","Schedule posts","Multi-network publishing","Analytics","AI writing assistant","Team drafts and comments"]},"hypefury":{"id":"hypefury","name":"Hypefury","url":"https://hypefury.com","license":"proprietary","category":"Social scheduling","from_usd":6,"features":["Schedule posts","Thread composer","Evergreen recycling","Auto-plugs","Cross-posting","Engagement builder"]},"framer":{"id":"framer","name":"Framer","url":"https://www.framer.com","license":"proprietary","category":"Landing pages","features":["Visual site editor","Custom domain","CMS","Animations and interactions","AI site generation","Localization","Forms"]},"webflow":{"id":"webflow","name":"Webflow","url":"https://webflow.com","license":"proprietary","category":"Landing pages","features":["Visual site editor","CMS","Hosting and custom domain","Forms","Ecommerce","Interactions and animations","Code export"]},"carrd":{"id":"carrd","name":"Carrd","url":"https://carrd.co","license":"proprietary","category":"Landing pages","features":["One-page site builder","Custom domain","Forms","Templates","Embeds and widgets","Google Analytics integration"]},"notion":{"id":"notion","name":"Notion","url":"https://www.notion.com","license":"proprietary","category":"Knowledge","features":["Docs and pages","Databases","Wiki","Task and project boards","Notion AI","Templates","Sharing and permissions","Calendar and Mail","Integrations and API"]},"linear":{"id":"linear","name":"Linear","url":"https://linear.app","license":"proprietary","category":"Work management","features":["Issues and backlog","Cycles (sprints)","Projects and roadmaps","GitHub integration","Triage","Insights","API"]},"slack":{"id":"slack","name":"Slack","url":"https://slack.com","license":"proprietary","category":"Team chat","from_usd":8.75,"features":["Channels and DMs","Huddles (calls)","Message history and search","App integrations","Slack Connect (external)","Workflows","Slack AI"]},"google_workspace":{"id":"google_workspace","name":"Google Workspace","url":"https://workspace.google.com","license":"proprietary","category":"Productivity","features":["Business email (Gmail)","Docs, Sheets, Slides","Drive storage","Meet video calls","Chat","Calendar and appointment booking","Gemini AI","Admin console"]},"microsoft_365":{"id":"microsoft_365","name":"Microsoft 365 Business","url":"https://www.microsoft.com/microsoft-365/business","license":"proprietary","category":"Productivity","features":["Business email (Outlook)","Word, Excel, PowerPoint","OneDrive storage","Teams meetings and chat","SharePoint","Copilot AI","Device management"]},"zoom":{"id":"zoom","name":"Zoom Workplace","url":"https://zoom.us","license":"proprietary","category":"Team chat","from_usd":16.99,"features":["Video meetings","Screen sharing","Cloud recording","AI Companion summaries","Team chat","Whiteboard","Webinars add-on"]},"loom":{"id":"loom","name":"Loom","url":"https://www.loom.com","license":"proprietary","category":"Video recording","from_usd":18,"features":["Screen and camera recording","Instant share links","Viewer comments and reactions","Video editing","AI summaries","Viewer analytics"]},"calendly":{"id":"calendly","name":"Calendly","url":"https://calendly.com","license":"proprietary","category":"Scheduling","features":["Booking links","Calendar sync","Multiple event types","Reminders and follow-ups","Round-robin","Payments collection","Routing forms","Integrations (Zoom, CRM)"]},"cal_com":{"id":"cal_com","name":"Cal.com","url":"https://cal.com","license":"open_source","category":"Scheduling","features":["Booking links","Calendar sync","Multiple event types","Reminders and follow-ups","Round-robin","Payments collection","Routing forms","Self-hosting"]},"typeform":{"id":"typeform","name":"Typeform","url":"https://www.typeform.com","license":"proprietary","category":"Forms","from_usd":29,"features":["Form builder","Logic and branching","Response collection","Payments","File uploads","Integrations","Quizzes"]},"tally":{"id":"tally","name":"Tally","url":"https://tally.so","license":"proprietary","category":"Forms","features":["Form builder","Logic and branching","Response collection","Payments","File uploads","Integrations","Signatures"]},"airtable":{"id":"airtable","name":"Airtable","url":"https://www.airtable.com","license":"proprietary","category":"Knowledge","features":["Relational tables","Grid, kanban, calendar views","Automations","Interfaces (apps)","Forms","AI fields","API and integrations"]},"zapier":{"id":"zapier","name":"Zapier","url":"https://zapier.com","license":"proprietary","category":"Automation","from_usd":19.99,"features":["Multi-step automations (Zaps)","App integrations","Filters and paths","Tables","Forms","AI agents","Webhooks"]},"make":{"id":"make","name":"Make","url":"https://www.make.com","license":"proprietary","category":"Automation","from_usd":12,"features":["Visual scenario builder","App integrations","Routers and filters","Scheduling","Webhooks","AI agents","Data stores"]},"n8n":{"id":"n8n","name":"n8n","url":"https://n8n.io","license":"source_available","category":"Automation","license_note":"Sustainable Use License / source-available, not an unrestricted open-source SaaS-resale license. Review permitted use before hosting for customers.","features":["Visual workflow builder","App integrations","AI agent nodes","Code nodes (JS/Python)","Webhooks","Self-hosting","Execution history"]},"superhuman":{"id":"superhuman","name":"Superhuman (Grammarly, Mail, Go)","url":"https://superhuman.com","license":"proprietary","category":"Productivity","from_usd":15,"features":["Fast email client","AI writing and rewrites","Grammar checking","Split inbox","Snippets and reminders","AI assistant across apps"]},"onepassword":{"id":"onepassword","name":"1Password","url":"https://1password.com","license":"proprietary","category":"Passwords","features":["Password vault","Autofill in browser and apps","Passkeys","Shared vaults","Password generator","Breach alerts (Watchtower)","2FA codes","Secure notes and documents"]},"figma":{"id":"figma","name":"Figma","url":"https://www.figma.com","license":"proprietary","category":"Design","features":["UI design canvas","Components and design systems","Prototyping","Real-time collaboration","Dev Mode handoff","FigJam whiteboard","AI (Figma Make)","Plugins"]},"canva":{"id":"canva","name":"Canva","url":"https://www.canva.com","license":"proprietary","category":"Design","features":["Templates","Graphic design editor","Brand kit","Background remover","Magic AI tools","Video editor","Content planner and scheduling","Premium stock library"]},"otter":{"id":"otter","name":"Otter.ai","url":"https://otter.ai","license":"proprietary","category":"Transcription","from_usd":16.99,"features":["Live transcription","Meeting bot (Zoom/Meet/Teams)","AI summaries","Action items","Search transcripts","Import audio files","AI chat over meetings"]},"fathom":{"id":"fathom","name":"Fathom","url":"https://www.fathom.ai","license":"proprietary","category":"Transcription","from_usd":19,"features":["Meeting recording","Transcription","AI summaries","Action items","CRM sync","Clips and highlights"]},"descript":{"id":"descript","name":"Descript","url":"https://www.descript.com","license":"proprietary","category":"Video recording","from_usd":24,"features":["Text-based video editing","Transcription","Screen recording","Remote recording","AI voice (Overdub)","Studio Sound cleanup","Captions"]},"dropbox":{"id":"dropbox","name":"Dropbox","url":"https://www.dropbox.com","license":"proprietary","category":"Cloud storage","from_usd":9.99,"features":["File sync across devices","Cloud storage","File sharing links","Version history","E-signatures","Shared folders","Backup"]},"stripe":{"id":"stripe","name":"Stripe","url":"https://stripe.com","license":"proprietary","category":"Payments","features":["Card payments","Checkout and payment links","Subscriptions billing","Invoicing","Customer portal","Tax calculation","Payouts"]},"lemon_squeezy":{"id":"lemon_squeezy","name":"Lemon Squeezy","url":"https://www.lemonsqueezy.com","license":"proprietary","category":"Payments","features":["Checkout","Subscriptions","Global sales tax/VAT handling","License keys","Affiliates","Email marketing"]},"paddle":{"id":"paddle","name":"Paddle","url":"https://www.paddle.com","license":"proprietary","category":"Payments","features":["Checkout","Subscriptions","Global sales tax/VAT handling","Invoicing","Churn recovery","Revenue analytics"]},"netflix":{"id":"netflix","name":"Netflix","url":"https://www.netflix.com","license":"proprietary","category":"streaming_media","from_usd":8.99,"features":["Stream shows and movies","Multiple profiles","Downloads","Games","4K (Premium)","Extra members"]},"spotify":{"id":"spotify","name":"Spotify Premium","url":"https://www.spotify.com","license":"proprietary","category":"music","from_usd":12.99,"features":["Ad-free music","Offline downloads","Playlists and library","Podcasts","Audiobook hours","Family/Duo plans"]},"youtube_premium":{"id":"youtube_premium","name":"YouTube Premium","url":"https://www.youtube.com/premium","license":"proprietary","category":"streaming_media","features":["Ad-free videos","Background play","Downloads","YouTube Music Premium","Family sharing","Picture-in-picture on mobile"]},"apple_one":{"id":"apple_one","name":"Apple One","url":"https://www.apple.com/apple-one/","license":"proprietary","category":"streaming_media","from_usd":21.95,"features":["iCloud+ storage","Apple Music","Apple TV","Apple Arcade","Family sharing","Fitness+ and News+ (Premier)"]},"icloud_plus":{"id":"icloud_plus","name":"iCloud+","url":"https://www.apple.com/icloud/","license":"proprietary","category":"Cloud storage","from_usd":0.99,"features":["Cloud storage","Device backup","Photo library sync","Hide My Email","Private Relay","Family sharing"]},"amazon_prime":{"id":"amazon_prime","name":"Amazon Prime","url":"https://www.amazon.com/amazonprime","license":"proprietary","category":"streaming_media","from_usd":14.99,"features":["Free fast delivery","Prime Video","Amazon Music","Prime deals","Grubhub+","Rx savings"]},"disney_plus":{"id":"disney_plus","name":"Disney+","url":"https://www.disneyplus.com","license":"proprietary","category":"streaming_media","from_usd":12.49,"features":["Stream shows and movies","Multiple profiles","Downloads","4K on Premium","Bundles with Hulu/ESPN","Watch on multiple devices"]},"x_premium":{"id":"x_premium","name":"X Premium","url":"https://x.com","license":"proprietary","category":"news_media","from_usd":3,"features":["Verified checkmark","Edit posts","Longer posts and videos","Fewer ads","Grok access","Creator monetization"]},"plausible":{"id":"plausible","name":"Plausible Analytics","url":"https://plausible.io","license":"open_source","category":"Analytics","from_usd":9,"features":["Pageview analytics","Traffic sources","Goals and conversions","No cookies","Email reports","Self-hosting"]},"umami":{"id":"umami","name":"Umami","url":"https://umami.is","license":"open_source","category":"Analytics","license_note":"Inspect current repository license and hosted-plan features.","features":["Pageview analytics","Traffic sources","Custom events","No cookies","Self-hosting","Team sharing"]},"listmonk":{"id":"listmonk","name":"listmonk","url":"https://listmonk.app","license":"open_source","category":"Email marketing","license_note":"AGPL project; mail delivery service and operational ownership remain separate.","features":["Email campaigns","Subscriber lists and segments","Templates","Transactional mail API","Analytics","Self-hosting"]},"postiz":{"id":"postiz","name":"Postiz","url":"https://postiz.com","license":"open_source","category":"Social scheduling","features":["Schedule posts","Multi-network publishing","Content calendar","AI copilot","Team collaboration","Self-hosting"]},"dub":{"id":"dub","name":"Dub","url":"https://dub.co","license":"open_source","category":"url_shortener","from_usd":90,"features":["Branded short links","Click analytics","QR codes","Conversion tracking","Affiliate programs","API"]},"bitwarden":{"id":"bitwarden","name":"Bitwarden","url":"https://bitwarden.com","license":"open_source","category":"Passwords","features":["Password vault","Autofill in browser and apps","Passkeys","Shared collections","Password generator","Breach reports","2FA codes","Self-hosting"]},"proton_pass":{"id":"proton_pass","name":"Proton Pass","url":"https://proton.me/pass","license":"open_source","category":"Passwords","features":["Password vault","Autofill in browser and apps","Passkeys","Email aliases","Password generator","2FA codes"]},"excalidraw":{"id":"excalidraw","name":"Excalidraw","url":"https://excalidraw.com","license":"open_source","category":"Design","features":["Whiteboard canvas","Live collaboration","Shape libraries","Export PNG/SVG","Self-hosting","End-to-end encrypted sharing"]},"affine":{"id":"affine","name":"AFFiNE","url":"https://affine.pro","license":"open_source","category":"Knowledge","features":["Docs and pages","Databases","Whiteboard canvas","Local-first offline","AI assistant","Self-hosting"]},"appflowy":{"id":"appflowy","name":"AppFlowy","url":"https://appflowy.com","license":"open_source","category":"Knowledge","from_usd":12.5,"features":["Docs and pages","Databases","Kanban boards","AI assistant","Offline/local","Self-hosting"]},"jitsi":{"id":"jitsi","name":"Jitsi Meet","url":"https://jitsi.org/jitsi-meet/","license":"open_source","category":"Team chat","features":["Video meetings","Screen sharing","No account needed","Recording (self-hosted)","Chat","Self-hosting"]},"ollama":{"id":"ollama","name":"Ollama","url":"https://ollama.com","license":"open_source","category":"AI chat","from_usd":20,"features":["Run models locally","OpenAI-compatible API","Model library","Cloud models","Desktop app","Runs offline"]},"open_webui":{"id":"open_webui","name":"Open WebUI","url":"https://openwebui.com","license":"source_available","category":"AI chat","features":["Chat with AI","Multiple model providers","Document chat (RAG)","Web search","Multi-user accounts","Self-hosting"]},"deepseek_api":{"id":"deepseek_api","name":"DeepSeek API","url":"https://platform.deepseek.com","license":"proprietary","category":"AI APIs","features":["Chat completions API","Reasoning model","Context caching","OpenAI-compatible API","Off-peak discounts","Tool/function calling"]},"cline":{"id":"cline","name":"Cline","url":"https://cline.bot","license":"open_source","category":"AI coding","features":["AI agent in editor","Chat with codebase","Any model provider (BYO key)","Terminal and browser actions","MCP support","Plan/act modes"]},"aider":{"id":"aider","name":"Aider","url":"https://aider.chat","license":"open_source","category":"AI coding","features":["AI agent in terminal","Chat with codebase","Any model provider (BYO key)","Git auto-commits","Repo map","Voice coding"]},"coolify":{"id":"coolify","name":"Coolify","url":"https://coolify.io","license":"open_source","category":"Hosting","features":["Git push deploys","Deploy containers and apps","Managed databases","Automatic SSL","Preview deployments","Backups","Self-hosting"]},"hetzner":{"id":"hetzner","name":"Hetzner Cloud","url":"https://www.hetzner.com/cloud/","license":"proprietary","category":"Hosting","features":["Virtual machines","Volumes","Object storage","Load balancers","Snapshots and backups","Firewalls"]},"github_pages":{"id":"github_pages","name":"GitHub Pages","url":"https://pages.github.com","license":"proprietary","category":"Hosting","features":["Static site hosting","Custom domain","HTTPS","Deploy from Git","GitHub Actions builds","Jekyll support"]},"uptime_kuma":{"id":"uptime_kuma","name":"Uptime Kuma","url":"https://github.com/louislam/uptime-kuma","license":"open_source","category":"Status pages","license_note":"MIT project; operational independence must be designed, not inferred from a license.","features":["Uptime monitoring","Status pages","Notifications (Slack, email, Telegram)","Keyword and JSON checks","Certificate expiry","Docker container checks"]},"uptimerobot":{"id":"uptimerobot","name":"UptimeRobot","url":"https://uptimerobot.com","license":"proprietary","category":"Status pages","features":["Uptime monitoring","Status pages","Email and chat alerts","SSL monitoring","Keyword checks","API"]},"glitchtip":{"id":"glitchtip","name":"GlitchTip","url":"https://glitchtip.com","license":"open_source","category":"Monitoring","features":["Error tracking","Sentry SDK compatible","Performance monitoring","Uptime monitoring","Alerts","Self-hosting"]},"amazon_ses":{"id":"amazon_ses","name":"Amazon SES","url":"https://aws.amazon.com/ses/","license":"proprietary","category":"Email infrastructure","features":["Send email API and SMTP","Receive email (inbound)","Custom domains and DKIM","Event publishing","Dedicated IPs","Deliverability dashboard"]},"mailerlite":{"id":"mailerlite","name":"MailerLite","url":"https://www.mailerlite.com","license":"proprietary","category":"Email marketing","from_usd":12,"features":["Email campaigns","Audience/contact management","Automations","Signup forms and landing pages","Templates","A/B testing"]},"ghost":{"id":"ghost","name":"Ghost","url":"https://ghost.org","license":"open_source","category":"Email marketing","features":["Newsletter sending","Hosted website","Paid subscriptions","Member management","SEO","Self-hosting"]},"penpot":{"id":"penpot","name":"Penpot","url":"https://penpot.app","license":"open_source","category":"Design","from_usd":7,"features":["UI design canvas","Components and design systems","Prototyping","Real-time collaboration","Inspect/code handoff","Self-hosting"]},"activepieces":{"id":"activepieces","name":"Activepieces","url":"https://www.activepieces.com","license":"open_source","category":"Automation","license_note":"MIT core with separately licensed enterprise features; validate the exact edition.","from_usd":20,"features":["Visual workflow builder","App integrations","AI agents","Webhooks","Code steps","Self-hosting"]},"nocodb":{"id":"nocodb","name":"NocoDB","url":"https://nocodb.com","license":"open_source","category":"Knowledge","features":["Relational tables","Grid, kanban, calendar views","Forms","API","Automations","Self-hosting"]},"baserow":{"id":"baserow","name":"Baserow","url":"https://baserow.io","license":"open_source","category":"Knowledge","license_note":"MIT for non-premium/non-enterprise core per official repository; paid editions have separate terms. https://github.com/baserow/baserow","from_usd":12,"features":["Relational tables","Grid, kanban, calendar views","Forms","API","Automations","Self-hosting"]},"plane":{"id":"plane","name":"Plane","url":"https://plane.so","license":"open_source","category":"Work management","features":["Issues and backlog","Cycles (sprints)","Projects and roadmaps","GitHub integration","Pages/docs","Self-hosting"]},"mattermost":{"id":"mattermost","name":"Mattermost","url":"https://mattermost.com","license":"open_source","category":"Team chat","features":["Channels and DMs","Calls","Message history and search","Integrations and webhooks","Playbooks","Self-hosting"]},"obs_studio":{"id":"obs_studio","name":"OBS Studio","url":"https://obsproject.com","license":"open_source","category":"Video recording","features":["Screen and camera recording","Scene composition","Live streaming","Audio mixing","Local MP4/MKV files","Plugins"]},"cap":{"id":"cap","name":"Cap","url":"https://cap.so","license":"open_source","category":"Video recording","from_usd":12,"features":["Screen and camera recording","Instant share links","Viewer comments","Video editing","AI summaries","Self-hosting"]},"whisper_cpp":{"id":"whisper_cpp","name":"whisper.cpp","url":"https://github.com/ggml-org/whisper.cpp","license":"open_source","category":"Transcription","features":["Transcribe audio files","Runs offline on device","Many languages","Subtitles (SRT/VTT)","GPU acceleration","Command-line and server mode"]},"rallly":{"id":"rallly","name":"Rallly","url":"https://rallly.co","license":"open_source","category":"Scheduling","features":["Group availability polls","Share link","Calendar invites","Comments","Self-hosting","No account for participants"]},"formbricks":{"id":"formbricks","name":"Formbricks","url":"https://formbricks.com","license":"open_source","category":"Forms","license_note":"Open-core; inspect current repository license and paid-feature boundaries.","from_usd":74,"features":["Form builder","Logic and branching","Response collection","In-app surveys","Integrations","Self-hosting"]},"google_search_console":{"id":"google_search_console","name":"Google Search Console","url":"https://search.google.com/search-console","license":"proprietary","category":"SEO data","features":["Search queries and clicks","Average position","Indexing status","Top linking sites","Core Web Vitals","Sitemaps"]},"serper":{"id":"serper","name":"Serper","url":"https://serper.dev","license":"proprietary","category":"SEO data","features":["Google search results API","News, images, places","Structured JSON output","Autocomplete","Location targeting","Pay-as-you-go credits"]},"openseo":{"id":"openseo","name":"OpenSEO","url":"https://openseo.so","license":"MIT","category":"SEO data","from_usd":10,"features":["Keyword research","Rank tracking","Backlink analysis","Site audit","MCP server for agents"]},"salesforce":{"id":"salesforce","name":"Salesforce","url":"https://www.salesforce.com/sales/pricing/","license":null,"category":"CRM","from_usd":25,"features":["Contacts and accounts","Opportunity pipelines","Automation","Quoting and forecasting","Integrations"]},"hubspot_sales_hub":{"id":"hubspot_sales_hub","name":"HubSpot Sales Hub","url":"https://www.hubspot.com/products/sales","license":null,"category":"CRM","features":["Contacts","Pipelines","Sales engagement","Reporting","Sales automation"]},"pipedrive":{"id":"pipedrive","name":"Pipedrive","url":"https://www.pipedrive.com/en/pricing","license":null,"category":"CRM","features":["Contacts","Deal pipelines","Activities","Automation","Sales reporting"]},"bigin":{"id":"bigin","name":"Bigin","url":"https://www.bigin.com/pricing.html","license":null,"category":"CRM","from_usd":7,"features":["Contacts","Team pipelines","Workflows","Email integration","Dashboards"]},"twenty":{"id":"twenty","name":"Twenty","url":"https://twenty.com/pricing","license":null,"category":"CRM","license_note":"Open-core; inspect current LICENSE and enterprise directory before distribution. Repository: https://github.com/twentyhq/twenty","from_usd":9,"features":["Custom CRM objects","Views","Workflows","App customization","Self-hosting"]},"jotform":{"id":"jotform","name":"Jotform","url":"https://www.jotform.com/pricing/","license":null,"category":"Forms","features":["Forms","Conditional logic","Integrations","Payments","Document workflows"]},"paperform":{"id":"paperform","name":"Paperform","url":"https://paperform.co/pricing/","license":null,"category":"Forms","features":["Forms","Calculations","Payments","Scheduling","Integrations"]},"cal_diy":{"id":"cal_diy","name":"Cal.diy","url":"https://github.com/calcom/cal.diy","license":null,"category":"Scheduling","license_note":"Current calcom/cal.com repository redirects here. Verify current license, maintenance and hosted-vs-community feature differences; no license certification in this seed.","features":["Self-hosted scheduling","Calendar integrations","Booking pages"]},"smartsheet":{"id":"smartsheet","name":"Smartsheet","url":"https://www.smartsheet.com/pricing","license":null,"category":"Work management","features":["Work tracking","Grid and project views","Dashboards","Forms","Automation"]},"retool":{"id":"retool","name":"Retool","url":"https://retool.com/pricing","license":null,"category":"Internal tools","features":["Internal applications","Database queries","Workflows","Permissions","Audit logs"]},"softr":{"id":"softr","name":"Softr","url":"https://www.softr.io/pricing","license":null,"category":"Internal tools","features":["Client portals","Internal applications","Data integrations","User access"]},"appsmith":{"id":"appsmith","name":"Appsmith","url":"https://github.com/appsmithorg/appsmith","license":null,"category":"Internal tools","license_note":"Open-core; inspect current Apache-licensed core and paid enterprise features.","features":["Admin panels","Database connections","API connections","Internal dashboards"]},"canny":{"id":"canny","name":"Canny","url":"https://canny.io/pricing","license":null,"category":"Feedback","from_usd":79,"features":["Feedback boards","Voting","Roadmaps","Changelog","Feedback triage"]},"productboard":{"id":"productboard","name":"Productboard","url":"https://www.productboard.com/pricing/","license":null,"category":"Feedback","features":["Feedback organization","Prioritization","Roadmaps","Product planning"]},"fider":{"id":"fider","name":"Fider","url":"https://www.fider.io/","license":null,"category":"Feedback","license_note":"Open-source project; inspect pinned version license and hosted offering separately.","features":["Feedback portal","Feature requests","Voting","Self-hosting"]},"senja":{"id":"senja","name":"Senja","url":"https://senja.io/pricing","license":null,"category":"Testimonials","from_usd":29,"features":["Collect testimonials","Testimonial widgets","Video testimonials","Imports","Social proof pages"]},"intercom":{"id":"intercom","name":"Intercom","url":"https://www.intercom.com/pricing","license":null,"category":"Support","from_usd":29,"features":["Shared inbox","Live chat","Help center","Ticketing","Support automation","Fin AI"]},"zendesk":{"id":"zendesk","name":"Zendesk","url":"https://www.zendesk.com/pricing/","license":null,"category":"Support","features":["Ticketing","Help center","Messaging","Automation","Support reporting"]},"help_scout":{"id":"help_scout","name":"Help Scout","url":"https://www.helpscout.com/pricing/","license":null,"category":"Support","features":["Shared inbox","Knowledge base","Customer messaging","Reporting"]},"front":{"id":"front","name":"Front","url":"https://front.com/pricing","license":null,"category":"Support","features":["Shared inbox","Routing","Collaboration","Customer service workflows"]},"chatwoot":{"id":"chatwoot","name":"Chatwoot","url":"https://www.chatwoot.com/pricing","license":null,"category":"Support","license_note":"Community and paid editions differ. Self-hosted pricing: https://www.chatwoot.com/pricing/self-hosted-plans","from_usd":19,"features":["Shared inbox","Live chat","Email channels","Help center","Self-hosting"]},"unbounce":{"id":"unbounce","name":"Unbounce","url":"https://unbounce.com/pricing/","license":null,"category":"Landing pages","from_usd":99,"features":["Landing pages","Lead forms","Popups","A/B tests on higher plans","Traffic optimization on higher plans"]},"bannerbear":{"id":"bannerbear","name":"Bannerbear","url":"https://www.bannerbear.com/pricing/","license":null,"category":"Media automation","from_usd":49,"features":["Template image generation","Video automation","API","Workflow integrations"]},"placid":{"id":"placid","name":"Placid","url":"https://placid.app/pricing","license":null,"category":"Media automation","features":["Image templates","PDF generation","Video generation","Creative automation API"]},"docparser":{"id":"docparser","name":"Docparser","url":"https://docparser.com/pricing/","license":null,"category":"Document extraction","features":["Document parsing","Table extraction","Structured exports","Workflow integrations"]},"pandadoc":{"id":"pandadoc","name":"PandaDoc","url":"https://www.pandadoc.com/pricing/","license":null,"category":"Documents","from_usd":49,"features":["Proposals","Templates","Electronic signatures","Quotes","Approval workflows"]},"docusign":{"id":"docusign","name":"Docusign","url":"https://ecom.docusign.com/plans-and-pricing/esignature","license":null,"category":"Documents","features":["Electronic signatures","Templates","Document routing","Audit evidence"]},"docuseal":{"id":"docuseal","name":"DocuSeal","url":"https://www.docuseal.com/pricing","license":null,"category":"Documents","license_note":"Open-core; inspect pinned community license, API terms and paid feature limits. Repository: https://github.com/docusealco/docuseal","features":["PDF forms","Signing workflows","Signature collection","Self-hosting"]},"documenso":{"id":"documenso","name":"Documenso","url":"https://documenso.com/pricing","license":null,"category":"Documents","license_note":"Open-core; inspect exact release license and enterprise feature boundaries.","features":["Electronic signatures","Document workflows","Templates","Self-hosting"]},"statuspage":{"id":"statuspage","name":"Statuspage","url":"https://www.atlassian.com/software/statuspage/pricing","license":null,"category":"Status pages","from_usd":99,"features":["Status pages","Incident communication","Subscribers","Email and SMS notifications","Metrics"]},"openstatus":{"id":"openstatus","name":"OpenStatus","url":"https://github.com/openstatusHQ/openstatus","license":null,"category":"Status pages","license_note":"Inspect current repository license and hosted-plan differences.","features":["Status pages","Uptime monitoring","API monitoring"]},"mixpanel":{"id":"mixpanel","name":"Mixpanel","url":"https://mixpanel.com/pricing/","license":null,"category":"Analytics","features":["Event analytics","Funnels","Retention","Cohorts","Reports"]},"amplitude":{"id":"amplitude","name":"Amplitude","url":"https://amplitude.com/pricing","license":null,"category":"Analytics","features":["Product analytics","Funnels","Retention","User behavior","Experiment-related tools"]},"databox":{"id":"databox","name":"Databox","url":"https://databox.com/pricing","license":null,"category":"Reporting","features":["KPI dashboards","Data integrations","Reports","Performance tracking"]},"metabase":{"id":"metabase","name":"Metabase","url":"https://www.metabase.com/start/oss","license":null,"category":"Reporting","license_note":"Open-source edition plus paid tiers; check embedding, permissions and SSO requirements.","features":["SQL dashboards","Exploration","Charts","Self-hosting"]},"bitly":{"id":"bitly","name":"Bitly","url":"https://bitly.com/pages/pricing","license":null,"category":"Links","from_usd":29,"features":["Short links","Branded domains","QR codes","Click analytics","Routing"]},"shlink":{"id":"shlink","name":"Shlink","url":"https://github.com/shlinkio/shlink","license":null,"category":"Links","license_note":"Inspect pinned version and third-party geolocation/data licensing.","features":["Short links","Custom domains","Visit tracking","API","Self-hosting"]},"asana":{"id":"asana","name":"Asana","url":"https://asana.com/pricing","license":null,"category":"Work management","features":["Tasks","Projects","Dependencies","Portfolios","Automations"]},"monday_com":{"id":"monday_com","name":"monday.com","url":"https://monday.com/pricing","license":null,"category":"Work management","features":["Boards","Workflows","Dashboards","Automations","Team collaboration"]},"clickup":{"id":"clickup","name":"ClickUp","url":"https://clickup.com/pricing","license":null,"category":"Work management","features":["Tasks","Docs","Projects","Dashboards","Automations"]}},"alternatives":{"chatgpt":[{"to":"openrouter","name":"OpenRouter","relation":"per_use_api","notes":"Pay per token for GPT and other models via one key; cheaper than a seat for light use. No ChatGPT apps, memory or Codex."},{"to":"open_webui","name":"Open WebUI","relation":"open_source_self_host","notes":"Self-hosted ChatGPT-style UI; plug in OpenRouter/OpenAI API keys or local Ollama models. You run and maintain it."},{"to":"google_ai_pro","name":"Google AI Pro (Gemini)","relation":"already_bundled","notes":"If you already pay for Google AI Pro (e.g., for 5 TB storage), Gemini covers most day-to-day ChatGPT use."}],"claude":[{"to":"anthropic_api","name":"Anthropic API (Claude Developer Platform)","relation":"per_use_api","notes":"Same models billed per token; cheaper for light or bursty use via a BYO-key chat client. No Projects UI or memory."},{"to":"openrouter","name":"OpenRouter","relation":"per_use_api","notes":"Claude plus other models on one prepaid balance, billed per token; includes a chat playground."}],"google_ai_pro":[{"to":"google_workspace","name":"Google Workspace","relation":"already_bundled","notes":"Workspace business plans include Gemini in Gmail/Docs and pooled storage; a separate personal AI Pro may be redundant."},{"to":"chatgpt","name":"ChatGPT","relation":"free_tier","notes":"ChatGPT Free covers casual chat with limited image generation and deep research; no storage bundle."}],"perplexity":[{"to":"chatgpt","name":"ChatGPT","relation":"free_tier","notes":"ChatGPT Free includes web search with sources and limited deep research."},{"to":"openrouter","name":"OpenRouter","relation":"per_use_api","notes":"Pay per token for search-capable models (incl. Perplexity Sonar) instead of a flat seat."}],"supergrok":[{"to":"x_premium","name":"X Premium","relation":"already_bundled","notes":"X Premium+ includes Grok access; if you pay for Premium+, a separate SuperGrok may be redundant (check usage limits)."},{"to":"openrouter","name":"OpenRouter","relation":"per_use_api","notes":"Grok models are available per token via API routers; cheaper for occasional use."},{"to":"chatgpt","name":"ChatGPT","relation":"free_tier","notes":"For general chat, ChatGPT's free tier may be enough; lacks native X search."}],"midjourney":[{"to":"fal","name":"fal","relation":"per_use_api","notes":"Pay per image/video for FLUX, Seedream, Wan etc.; cheaper if you generate occasionally. No Discord/web community."},{"to":"replicate","name":"Replicate","relation":"per_use_api","notes":"Per-image pricing (e.g. flux-dev $0.025/image) for occasional generation."},{"to":"chatgpt","name":"ChatGPT","relation":"already_bundled","notes":"ChatGPT plans include image generation and editing; if you already pay for ChatGPT, Midjourney may be optional."}],"openai_api":[{"to":"deepseek_api","name":"DeepSeek API","relation":"cheaper_same_job","notes":"Much lower per-token prices and off-peak discounts for many text tasks; OpenAI-compatible API. Quality/latency differ."},{"to":"ollama","name":"Ollama","relation":"open_source_self_host","notes":"Run open models locally with an OpenAI-compatible API; no per-token cost, needs your hardware."},{"to":"openrouter","name":"OpenRouter","relation":"cheaper_same_job","notes":"One key to switch to cheaper models per task, plus 25+ free models; keeps OpenAI models available."}],"anthropic_api":[{"to":"deepseek_api","name":"DeepSeek API","relation":"cheaper_same_job","notes":"Lower-cost model for bulk/simple tasks; keep Claude for hard ones. Different quality profile."},{"to":"ollama","name":"Ollama","relation":"open_source_self_host","notes":"Local open models for dev/test and private workloads; no API bill."},{"to":"openrouter","name":"OpenRouter","relation":"cheaper_same_job","notes":"Route easy calls to cheaper or free models while keeping Claude via the same key."}],"openrouter":[{"to":"ollama","name":"Ollama","relation":"open_source_self_host","notes":"Serve open models locally behind an OpenAI-compatible API; zero marginal cost."},{"to":"deepseek_api","name":"DeepSeek API","relation":"cheaper_same_job","notes":"If you mostly call one cheap model, going direct avoids routing overhead."}],"replicate":[{"to":"fal","name":"fal","relation":"cheaper_same_job","notes":"Similar model catalog billed per output; compare per-model prices. Serverless GPUs from $1.89/hr H100."}],"fal":[{"to":"replicate","name":"Replicate","relation":"cheaper_same_job","notes":"Overlapping model catalog; some models are cheaper per output on one or the other."}],"elevenlabs":[{"to":"openai_api","name":"OpenAI API","relation":"per_use_api","notes":"Pay-per-use TTS and transcription with no monthly plan; fewer voices and no cloning."},{"to":"whisper_cpp","name":"whisper.cpp","relation":"open_source_self_host","notes":"Free local transcription only; does not replace TTS or voice cloning."}],"cursor":[{"to":"github_copilot","name":"GitHub Copilot","relation":"cheaper_same_job","notes":"Copilot Pro is $10/mo vs Cursor Pro $20, with agent mode, CLI and code review; works in VS Code/JetBrains."},{"to":"cline","name":"Cline","relation":"open_source_self_host","notes":"Free open-source agent in VS Code; pay only for model tokens with your own key. No tab autocomplete."},{"to":"aider","name":"Aider","relation":"open_source_self_host","notes":"Free terminal coding agent with any model; pay only API usage."}],"github_copilot":[{"to":"cline","name":"Cline","relation":"open_source_self_host","notes":"Open-source agent with BYO API key; no subscription."}],"windsurf":[{"to":"github_copilot","name":"GitHub Copilot","relation":"cheaper_same_job","notes":"Copilot Pro $10/mo vs Windsurf Pro $20; Windsurf Teams costs $80/mo + $40/seat."},{"to":"cline","name":"Cline","relation":"open_source_self_host","notes":"Free open-source agent; pay only model tokens."}],"lovable":[{"to":"bolt","name":"Bolt.new","relation":"free_tier","notes":"Bolt Free gives 1M tokens/mo (300K/day) with hosting; enough for small prototypes."},{"to":"v0","name":"v0 by Vercel","relation":"free_tier","notes":"v0 Free includes $5 monthly credits and deploys to Vercel."},{"to":"cursor","name":"Cursor","relation":"cheaper_same_job","notes":"Once the app is in GitHub, iterate in Cursor ($20/mo) or Copilot ($10/mo) and host on a free tier."}],"bolt":[{"to":"v0","name":"v0 by Vercel","relation":"free_tier","notes":"v0 Free includes $5 monthly credits and Vercel deploys."},{"to":"cursor","name":"Cursor","relation":"cheaper_same_job","notes":"Export the code and continue in a $10-20/mo coding assistant."}],"replit":[{"to":"railway","name":"Railway","relation":"cheaper_same_job","notes":"Host finished apps on Railway Hobby ($5 min, includes $5 usage) instead of keeping a Replit plan for deploys."},{"to":"bolt","name":"Bolt.new","relation":"free_tier","notes":"Bolt Free (1M tokens/mo) for light prompt-to-app work."}],"v0":[{"to":"bolt","name":"Bolt.new","relation":"free_tier","notes":"Bolt Free gives 1M tokens/mo."},{"to":"github_copilot","name":"GitHub Copilot","relation":"cheaper_same_job","notes":"For developers, Copilot Pro ($10) inside your editor can replace per-user v0 seats."}],"agentmail":[{"to":"resend","name":"Resend","relation":"free_tier","notes":"Resend Free sends 3,000 emails/mo and supports inbound; you build inbox/thread logic yourself."},{"to":"amazon_ses","name":"Amazon SES","relation":"per_use_api","notes":"SES send/receive at cents per 1,000 emails; DIY inbox storage and threading."}],"browserbase":[{"to":"serper","name":"Serper","relation":"per_use_api","notes":"If you mainly use the Search API, a dedicated search results API is billed per query."},{"to":"treg","name":"treg","relation":"per_use_api","notes":"Pay-per-call access to search and scraping providers through one key, 0% markup."}],"e2b":[{"to":"flyio","name":"Fly.io","relation":"cheaper_same_job","notes":"Fly Machines are per-second VMs you can start per task; no base fee but more DIY."}],"vercel":[{"to":"cloudflare","name":"Cloudflare","relation":"free_tier","notes":"Cloudflare Pages/Workers free tier (100k requests/day) covers many sites; Workers Paid is $5/mo."},{"to":"netlify","name":"Netlify","relation":"cheaper_same_job","notes":"Netlify Personal is $9/mo vs Vercel Pro $20 for a single member."},{"to":"coolify","name":"Coolify","relation":"open_source_self_host","notes":"Self-host a Vercel-like PaaS on a cheap VPS; you manage servers and uptime."},{"to":"github_pages","name":"GitHub Pages","relation":"free_tier","notes":"Free for static sites only (no server functions)."}],"netlify":[{"to":"cloudflare","name":"Cloudflare","relation":"free_tier","notes":"Cloudflare Pages/Workers free tier; Workers Paid $5/mo."},{"to":"coolify","name":"Coolify","relation":"open_source_self_host","notes":"Self-host on your own VPS; free software."},{"to":"github_pages","name":"GitHub Pages","relation":"free_tier","notes":"Free static hosting; no functions or forms."}],"render":[{"to":"railway","name":"Railway","relation":"cheaper_same_job","notes":"Railway Hobby is a $5 minimum including $5 usage vs Render Pro $25/mo + compute for teams."},{"to":"coolify","name":"Coolify","relation":"open_source_self_host","notes":"Run services and Postgres on your own VPS with Coolify; no per-service markup."},{"to":"flyio","name":"Fly.io","relation":"cheaper_same_job","notes":"Small Fly Machines start around $1.94/mo vs Render instances from $7/mo."}],"railway":[{"to":"coolify","name":"Coolify","relation":"open_source_self_host","notes":"Self-host on a VPS; flat server cost instead of usage billing."},{"to":"hetzner","name":"Hetzner Cloud","relation":"cheaper_same_job","notes":"A low-cost VPS (with Coolify) can replace several always-on services; more ops work."},{"to":"render","name":"Render","relation":"free_tier","notes":"Render's free instances (sleep when idle) cover hobby apps."}],"flyio":[{"to":"hetzner","name":"Hetzner Cloud","relation":"cheaper_same_job","notes":"Fixed-price VPS in EU/US for always-on workloads; no global anycast."},{"to":"coolify","name":"Coolify","relation":"open_source_self_host","notes":"Self-hosted PaaS on your own servers."}],"supabase":[{"to":"neon","name":"Neon","relation":"free_tier","notes":"If you only use the database, Neon Free (0.5 GB/project, scale to zero) may cover it."}],"neon":[{"to":"supabase","name":"Supabase","relation":"free_tier","notes":"Supabase Free includes Postgres plus auth and storage (projects pause after inactivity)."},{"to":"planetscale","name":"PlanetScale","relation":"cheaper_same_job","notes":"PlanetScale Postgres single node starts at $5/mo for small always-on workloads."}],"planetscale":[{"to":"neon","name":"Neon","relation":"free_tier","notes":"Neon Free with branching and scale-to-zero for dev and small apps."},{"to":"supabase","name":"Supabase","relation":"free_tier","notes":"Supabase Free Postgres for small projects."}],"digitalocean":[{"to":"hetzner","name":"Hetzner Cloud","relation":"cheaper_same_job","notes":"Hetzner Cloud VMs typically cost less for the same vCPU/RAM, with generous traffic."},{"to":"coolify","name":"Coolify","relation":"open_source_self_host","notes":"Replace App Platform with Coolify on a Droplet or other VPS."}],"aws":[{"to":"hetzner","name":"Hetzner Cloud","relation":"cheaper_same_job","notes":"For simple always-on servers, a fixed-price VPS avoids egress and per-service fees."},{"to":"cloudflare","name":"Cloudflare","relation":"cheaper_same_job","notes":"R2 storage, Workers and free DNS/CDN can replace S3/Lambda/CloudFront/Route 53 for many small apps."},{"to":"digitalocean","name":"DigitalOcean","relation":"cheaper_same_job","notes":"Simpler flat pricing: Droplets from $4/mo, managed DBs, Spaces storage."}],"heroku":[{"to":"render","name":"Render","relation":"cheaper_same_job","notes":"Similar PaaS; free instances for hobby apps and $7/mo small instances."},{"to":"railway","name":"Railway","relation":"cheaper_same_job","notes":"Usage-based: Hobby $5 minimum includes $5 of usage."},{"to":"coolify","name":"Coolify","relation":"open_source_self_host","notes":"Self-hosted Heroku-style PaaS on your own VPS."}],"resend":[{"to":"amazon_ses","name":"Amazon SES","relation":"per_use_api","notes":"SES costs cents per 1,000 emails with no monthly fee; rawer DX and you manage templates."}],"postmark":[{"to":"amazon_ses","name":"Amazon SES","relation":"per_use_api","notes":"Pay per email instead of $15+/mo; you handle suppression lists and templates."},{"to":"resend","name":"Resend","relation":"free_tier","notes":"Resend Free: 3,000 emails/mo vs Postmark Free 100/mo."}],"sendgrid":[{"to":"amazon_ses","name":"Amazon SES","relation":"per_use_api","notes":"Pay per email vs Essentials $19.95+/mo."},{"to":"resend","name":"Resend","relation":"free_tier","notes":"Resend Free sends 3,000/mo permanently; SendGrid's free option is a 60-day trial."},{"to":"listmonk","name":"listmonk","relation":"open_source_self_host","notes":"Self-hosted newsletters/campaigns; pair with SES for sending."}],"mailgun":[{"to":"amazon_ses","name":"Amazon SES","relation":"per_use_api","notes":"Per-email pricing with no base fee; validation not included."},{"to":"resend","name":"Resend","relation":"free_tier","notes":"Resend Free: 3,000 emails/mo."}],"sentry":[{"to":"glitchtip","name":"GlitchTip","relation":"open_source_self_host","notes":"Sentry-SDK compatible; self-host free or hosted from $15/mo. Lacks replay and deep tracing."},{"to":"better_stack","name":"Better Stack","relation":"free_tier","notes":"Better Stack Free includes 100k exceptions/mo plus uptime monitors."}],"better_stack":[{"to":"uptime_kuma","name":"Uptime Kuma","relation":"open_source_self_host","notes":"Free self-hosted monitor with 90+ notification services; no phone-call on-call."},{"to":"uptimerobot","name":"UptimeRobot","relation":"free_tier","notes":"UptimeRobot Free covers basic uptime checks and a status page."}],"posthog":[{"to":"plausible","name":"Plausible Analytics","relation":"cheaper_same_job","notes":"If you only need website traffic stats, Plausible is from $9/mo or free self-hosted."},{"to":"umami","name":"Umami","relation":"open_source_self_host","notes":"Free self-hosted privacy-friendly web analytics."}],"godaddy":[{"to":"porkbun","name":"Porkbun","relation":"cheaper_same_job","notes":".com at $11.08/yr vs GoDaddy's $22.99/yr renewal, with free WHOIS privacy and SSL."},{"to":"cloudflare_registrar","name":"Cloudflare Registrar","relation":"cheaper_same_job","notes":"At-cost renewals with free WHOIS redaction; requires Cloudflare DNS."},{"to":"namecheap","name":"Namecheap","relation":"cheaper_same_job","notes":".com renews at $18.48/yr vs $22.99."}],"namecheap":[{"to":"porkbun","name":"Porkbun","relation":"cheaper_same_job","notes":".com $11.08/yr vs Namecheap $18.48/yr renewal."},{"to":"cloudflare_registrar","name":"Cloudflare Registrar","relation":"cheaper_same_job","notes":"At-cost renewals, no markup."}],"porkbun":[{"to":"cloudflare_registrar","name":"Cloudflare Registrar","relation":"cheaper_same_job","notes":"At-cost pricing; savings are small vs Porkbun."}],"semrush":[{"to":"dataforseo","name":"DataForSEO","relation":"per_use_api","notes":"Pay per request for SERP/keyword/backlink data ($50 minimum deposit) instead of $139+/mo; no UI."},{"to":"treg","name":"treg","relation":"per_use_api","notes":"Semrush keyword data at ~$0.006/call via treg (provider rate, 0% markup); good for agents and occasional lookups."},{"to":"google_search_console","name":"Google Search Console","relation":"free_tier","notes":"Free, first-party data on your own site's queries, positions and indexing; no competitor data."},{"to":"moz","name":"Moz Pro","relation":"cheaper_same_job","notes":"Moz Standard $99/mo ($79 annual) vs Semrush SEO $139/mo."},{"to":"openseo","name":"OpenSEO","relation":"open_source_self_host","notes":"MIT-licensed Semrush/Ahrefs alternative: self-host free (pay DataForSEO per request) or $10/mo hosted."}],"ahrefs":[{"to":"dataforseo","name":"DataForSEO","relation":"per_use_api","notes":"Per-request backlinks/keyword/SERP data instead of $129+/mo."},{"to":"google_search_console","name":"Google Search Console","relation":"free_tier","notes":"Free first-party search data for your own site."},{"to":"moz","name":"Moz Pro","relation":"cheaper_same_job","notes":"Moz Standard $99/mo vs Ahrefs Lite $129/mo."},{"to":"openseo","name":"OpenSEO","relation":"open_source_self_host","notes":"MIT-licensed Semrush/Ahrefs alternative: self-host free (pay DataForSEO per request) or $10/mo hosted."}],"moz":[{"to":"dataforseo","name":"DataForSEO","relation":"per_use_api","notes":"Per-request SEO data APIs."},{"to":"treg","name":"treg","relation":"per_use_api","notes":"Moz backlinks ~$0.012/call via treg, no subscription."},{"to":"google_search_console","name":"Google Search Console","relation":"free_tier","notes":"Free first-party data for your own site."}],"clay":[{"to":"treg","name":"treg","relation":"per_use_api","notes":"Pay per enrichment call across providers (e.g., found email ~$0.0245, misses free) instead of $185+/mo."},{"to":"hunter","name":"Hunter","relation":"cheaper_same_job","notes":"For just finding/verifying emails, Hunter starts at $34/mo annual."}],"apollo":[{"to":"treg","name":"treg","relation":"per_use_api","notes":"Pay-per-result enrichment (treg lists Apollo/Hunter/Lusha replacements); no per-seat fee."},{"to":"hunter","name":"Hunter","relation":"free_tier","notes":"Hunter Free: 50 credits/mo for occasional email lookups."}],"hunter":[{"to":"treg","name":"treg","relation":"per_use_api","notes":"Hunter data per call: found email ~$0.0245 (misses free), verification ~$0.01225."}],"crunchbase":[{"to":"treg","name":"treg","relation":"per_use_api","notes":"Crunchbase funding data ~$0.020/call via treg, no seat."}],"lusha":[{"to":"treg","name":"treg","relation":"per_use_api","notes":"Pay-per-result contact data; treg lists Lusha as a replaced subscription."}],"serpapi":[{"to":"dataforseo","name":"DataForSEO","relation":"per_use_api","notes":"Pay-as-you-go SERP API instead of $25-275/mo plans."},{"to":"serper","name":"Serper","relation":"per_use_api","notes":"Prepaid query credits for Google results; no monthly plan."}],"mailchimp":[{"to":"kit","name":"Kit (ConvertKit)","relation":"free_tier","notes":"Kit Free covers up to 10,000 subscribers with unlimited broadcasts vs Mailchimp Free's 250 contacts."},{"to":"mailerlite","name":"MailerLite","relation":"cheaper_same_job","notes":"Similar feature set; free to 250 subscribers, paid from ~$12/mo."},{"to":"listmonk","name":"listmonk","relation":"open_source_self_host","notes":"Free self-hosted list manager; pair with Amazon SES for sending at cents per 1,000."},{"to":"beehiiv","name":"beehiiv","relation":"free_tier","notes":"beehiiv Launch is free up to 2,500 subscribers."}],"kit":[{"to":"beehiiv","name":"beehiiv","relation":"free_tier","notes":"Free up to 2,500 subscribers, with a hosted site."},{"to":"ghost","name":"Ghost","relation":"open_source_self_host","notes":"Self-host Ghost for newsletters and paid memberships; you need a mail provider."},{"to":"listmonk","name":"listmonk","relation":"open_source_self_host","notes":"Self-hosted lists and campaigns; basic automation only."}],"beehiiv":[{"to":"kit","name":"Kit (ConvertKit)","relation":"free_tier","notes":"Kit Free covers up to 10,000 subscribers."},{"to":"ghost","name":"Ghost","relation":"open_source_self_host","notes":"Open-source publishing with memberships; self-host free."}],"buffer":[{"to":"postiz","name":"Postiz","relation":"open_source_self_host","notes":"Open-source scheduler; self-host free."}],"typefully":[{"to":"buffer","name":"Buffer","relation":"free_tier","notes":"Buffer Free schedules to up to 3 channels."},{"to":"postiz","name":"Postiz","relation":"open_source_self_host","notes":"Self-hosted open-source scheduler."},{"to":"hypefury","name":"Hypefury","relation":"cheaper_same_job","notes":"Hypefury Flexible is $6/mo ($5 annual)."}],"hypefury":[{"to":"buffer","name":"Buffer","relation":"free_tier","notes":"Buffer Free for up to 3 channels."},{"to":"postiz","name":"Postiz","relation":"open_source_self_host","notes":"Self-host free."}],"framer":[{"to":"carrd","name":"Carrd","relation":"cheaper_same_job","notes":"Carrd Pro from $19/year for simple one-page sites; no CMS."},{"to":"github_pages","name":"GitHub Pages","relation":"free_tier","notes":"If you can export/code the site, host static pages free with a custom domain."}],"webflow":[{"to":"framer","name":"Framer","relation":"cheaper_same_job","notes":"Framer Basic $10/mo (yearly) vs Webflow Basic $15/mo (yearly)."},{"to":"carrd","name":"Carrd","relation":"cheaper_same_job","notes":"From $19/year for simple landing pages."},{"to":"github_pages","name":"GitHub Pages","relation":"free_tier","notes":"Use Webflow's code export, then host the static site free."}],"notion":[{"to":"affine","name":"AFFiNE","relation":"open_source_self_host","notes":"Open-source, local-first docs + whiteboards + databases; self-host free."},{"to":"appflowy","name":"AppFlowy","relation":"open_source_self_host","notes":"Open-source Notion alternative; free plan, Pro $10/user annual."}],"linear":[{"to":"plane","name":"Plane","relation":"open_source_self_host","notes":"Open-source Linear-style tracker; free self-hosted or Pro $6/seat."}],"slack":[{"to":"mattermost","name":"Mattermost","relation":"open_source_self_host","notes":"Free self-hosted team chat with full history."},{"to":"google_workspace","name":"Google Workspace","relation":"already_bundled","notes":"Google Chat and Meet are included in Workspace; check before paying for both."},{"to":"microsoft_365","name":"Microsoft 365 Business","relation":"already_bundled","notes":"Teams is included in Microsoft 365 Business plans."}],"zoom":[{"to":"google_workspace","name":"Google Workspace","relation":"already_bundled","notes":"Google Meet is included with Workspace."},{"to":"microsoft_365","name":"Microsoft 365 Business","relation":"already_bundled","notes":"Teams meetings are included in Microsoft 365 Business."},{"to":"jitsi","name":"Jitsi Meet","relation":"open_source_self_host","notes":"Free, encrypted, no account; self-host for recording."}],"loom":[{"to":"cap","name":"Cap","relation":"open_source_self_host","notes":"Open-source Loom alternative; $29/yr local license or $8.16/mo cloud."},{"to":"obs_studio","name":"OBS Studio","relation":"open_source_self_host","notes":"Free local recording; share files via your own storage."}],"calendly":[{"to":"cal_com","name":"Cal.com","relation":"free_tier","notes":"Cal.com is free forever for individuals and open source (self-hostable)."},{"to":"google_workspace","name":"Google Workspace","relation":"already_bundled","notes":"Workspace includes appointment booking pages on eligible plans."},{"to":"rallly","name":"Rallly","relation":"open_source_self_host","notes":"For group scheduling polls, Rallly is free and open source."}],"typeform":[{"to":"tally","name":"Tally","relation":"free_tier","notes":"Tally Free has unlimited forms and submissions; Typeform Free caps at 100 responses/mo."},{"to":"formbricks","name":"Formbricks","relation":"open_source_self_host","notes":"Open-source surveys; self-host free."},{"to":"google_workspace","name":"Google Workspace","relation":"already_bundled","notes":"Google Forms is included with Workspace/Google accounts."}],"tally":[{"to":"formbricks","name":"Formbricks","relation":"open_source_self_host","notes":"Self-host free."}],"airtable":[{"to":"nocodb","name":"NocoDB","relation":"open_source_self_host","notes":"Open-source; free for up to 3 users hosted or self-host."},{"to":"baserow","name":"Baserow","relation":"open_source_self_host","notes":"Open-source; free self-hosted, Premium $10/user annual."}],"zapier":[{"to":"n8n","name":"n8n","relation":"open_source_self_host","notes":"Self-hosted Community edition is free with unlimited executions (you run it)."},{"to":"make","name":"Make","relation":"cheaper_same_job","notes":"Make Core $12/mo for 10,000 credits vs Zapier Professional from $19.99."},{"to":"activepieces","name":"Activepieces","relation":"open_source_self_host","notes":"MIT-core open source; free tier or Plus $20/mo flat."}],"make":[{"to":"n8n","name":"n8n","relation":"open_source_self_host","notes":"Self-host free."},{"to":"activepieces","name":"Activepieces","relation":"open_source_self_host","notes":"Open-source alternative; self-host or hosted free tier."}],"n8n":[{"to":"activepieces","name":"Activepieces","relation":"open_source_self_host","notes":"MIT-core alternative with hosted free tier."}],"onepassword":[{"to":"bitwarden","name":"Bitwarden","relation":"cheaper_same_job","notes":"Open source; free for individuals, Premium $1.65/mo, Families $3.99/mo (annual)."},{"to":"proton_pass","name":"Proton Pass","relation":"free_tier","notes":"Free plan with unlimited logins and devices."}],"figma":[{"to":"penpot","name":"Penpot","relation":"open_source_self_host","notes":"Open-source; free and fully featured, self-hostable."},{"to":"excalidraw","name":"Excalidraw","relation":"free_tier","notes":"For whiteboarding, Excalidraw is free with live collaboration."}],"canva":[{"to":"chatgpt","name":"ChatGPT","relation":"already_bundled","notes":"If you pay for ChatGPT, its image generation/editing covers some AI design tasks."}],"otter":[{"to":"fathom","name":"Fathom","relation":"free_tier","notes":"Fathom Free offers unlimited recordings and basic summaries."},{"to":"whisper_cpp","name":"whisper.cpp","relation":"open_source_self_host","notes":"Free local transcription of recordings; no meeting bot or AI summaries."}],"fathom":[{"to":"whisper_cpp","name":"whisper.cpp","relation":"open_source_self_host","notes":"Local transcription of saved recordings."}],"descript":[{"to":"cap","name":"Cap","relation":"open_source_self_host","notes":"Open-source screen recorder for quick demos."},{"to":"whisper_cpp","name":"whisper.cpp","relation":"open_source_self_host","notes":"Free local transcription and subtitles."}],"dropbox":[{"to":"google_ai_pro","name":"Google AI Pro (Gemini)","relation":"already_bundled","notes":"Google AI Pro includes 5 TB of storage; if you pay for it, Dropbox Plus may be redundant."},{"to":"google_workspace","name":"Google Workspace","relation":"already_bundled","notes":"Workspace includes pooled Drive storage (30 GB-5 TB/user)."},{"to":"microsoft_365","name":"Microsoft 365 Business","relation":"already_bundled","notes":"Microsoft 365 Business Basic includes 1 TB OneDrive per user."},{"to":"icloud_plus","name":"iCloud+","relation":"cheaper_same_job","notes":"iCloud+ 2 TB is $9.99/mo in the US; best for Apple-only users."}],"lemon_squeezy":[{"to":"stripe","name":"Stripe","relation":"cheaper_same_job","notes":"Stripe standard fees 2.9% + 30c vs 5% + 50c, but you handle sales tax/VAT yourself (not a merchant of record)."}],"paddle":[{"to":"stripe","name":"Stripe","relation":"cheaper_same_job","notes":"Stripe 2.9% + 30c vs Paddle 5% + 50c; you take on tax compliance."}],"stripe":[{"to":"lemon_squeezy","name":"Lemon Squeezy","relation":"cheaper_same_job","notes":"Higher fees (5% + 50c) but includes global tax filing as merchant of record; may be cheaper than tax tooling."}]},"recipes":[{"id":"crm-pipeline","title":"Small-team sales pipeline","category":"CRM","incumbents":["salesforce","hubspot_sales_hub","pipedrive"],"features_used":["Contacts","Companies","Deals","Tasks","Simple pipeline report"],"excluded":["CPQ","Territories","Complex forecast rules","Large integration estates","Enterprise security parity"],"eligibility":["All must-have features covered","Export relationships verified","No required CPQ or territory model","Compare downgrade and managed CRM first"],"entities":["Contact","Company","Deal","Task","Activity"],"build_scope":"Build or configure one pipeline, CSV migration, access controls and a weekly digest. Prefer a ready-made CRM before greenfield.","priority":"B","build_request":"Salesforce CSV → configured small-team CRM; migration and custom workflow pack.","source":"catalog_seed","paths":[{"type":"switch","name":"Bigin Express","product_id":"bigin","url":"https://www.bigin.com/pricing.html","license_note":null,"covers":["Contacts","Companies","Deals","Tasks","Simple pipeline report"],"scope":"10 users; contacts, one deal pipeline, tasks and simple reports","excluded":"No Salesforce CPQ, territory logic, required advanced permissions or complex integration estate.","incumbent_plan":"Salesforce Pro","seats":10,"savings":{"baseline_monthly":1000,"new_cash_monthly":70,"maintenance_hours_monthly":0.5,"new_monthly_with_time":95.0,"setup_cash":100,"setup_hours":10,"setup_total":600,"annual_recurring":10860,"year_one_net":10260,"payback_months":0.7,"hourly_value":50},"sources":["https://www.salesforce.com/sales/pricing/","https://www.bigin.com/pricing.html"],"note":"Baseline $100/user/month annual; alternative $7/user/month annual. Both must meet this narrow workflow.","evidence":"modeled","confidence":"medium","pros":[],"cons":[],"id":"crm-pipeline--switch--bigin-express","recipe_id":"crm-pipeline"},{"type":"build","name":"Replace with AI: bespoke pipeline","product_id":null,"url":null,"license_note":null,"covers":["Contacts","Companies","Deals","Tasks","Simple pipeline report"],"scope":"10 users; one pipeline, CSV import/export, roles and weekly digest","excluded":"No email sync, CPQ, territories or enterprise platform parity.","incumbent_plan":"Salesforce Pro","seats":10,"savings":{"baseline_monthly":1000,"new_cash_monthly":40,"maintenance_hours_monthly":2,"new_monthly_with_time":140,"setup_cash":500,"setup_hours":50,"setup_total":3000,"annual_recurring":10320,"year_one_net":7320,"payback_months":3.5,"hourly_value":50},"sources":["https://www.salesforce.com/sales/pricing/"],"note":"","evidence":"modeled","confidence":"medium","pros":[],"cons":[],"id":"crm-pipeline--build--replace-with-ai-bespoke-pipeline","recipe_id":"crm-pipeline"},{"type":"switch","name":"Twenty","product_id":"twenty","url":"https://twenty.com/pricing","license_note":"Open-core; inspect current LICENSE and enterprise directory before distribution. Repository: https://github.com/twentyhq/twenty","covers":["Contacts","Companies","Deals","Tasks","Simple pipeline report"],"savings":null,"sources":["https://twenty.com/pricing"],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"crm-pipeline--switch--twenty","recipe_id":"crm-pipeline"},{"type":"open_source","name":"Twenty","product_id":"twenty","url":"https://twenty.com/pricing","license_note":"Open-core; inspect current LICENSE and enterprise directory before distribution. Repository: https://github.com/twentyhq/twenty","covers":["Contacts","Companies","Deals","Tasks","Simple pipeline report"],"savings":null,"sources":["https://twenty.com/pricing"],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"crm-pipeline--open_source--twenty","recipe_id":"crm-pipeline"}],"best_path_id":"crm-pipeline--switch--bigin-express","best_year_one_net":10260,"path_types":["switch","open_source","build"],"incumbent_names":["Salesforce","HubSpot Sales Hub","Pipedrive"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Small-team sales pipeline\n\nReplaces the part of **Salesforce, HubSpot Sales Hub, Pipedrive** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Contacts\n- Companies\n- Deals\n- Tasks\n- Simple pipeline report\n\n## Out of scope (do not build)\n- CPQ\n- Territories\n- Complex forecast rules\n- Large integration estates\n- Enterprise security parity\n\n## Data model\n- Contact, Company, Deal, Task, Activity\n\n## Approach\nBuild or configure one pipeline, CSV migration, access controls and a weekly digest. Prefer a ready-made CRM before greenfield.\n\n## Check before building\n- All must-have features covered\n- Export relationships verified\n- No required CPQ or territory model\n- Compare downgrade and managed CRM first\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- Twenty: https://twenty.com/pricing\n\n## Cost targets\n- Incumbent baseline: $1,000/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Contacts works end to end with seeded data\n- Companies works end to end with seeded data\n- Deals works end to end with seeded data\n- Tasks works end to end with seeded data\n- Simple pipeline report works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/crm-pipeline (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"support-inbox","title":"Small-team support inbox","category":"Support","incumbents":["intercom","zendesk","help_scout","front"],"features_used":["Email support","Live chat","Assignment","Macros","Public help content"],"excluded":["Fin parity","Voice","Complex routing","Enterprise SLAs","SSO and audit parity in free editions"],"eligibility":["Exact paid-feature needs checked","Reply/thread routing tested","Mailbox history migration verified","Human support labor impact included"],"entities":["Conversation","Message","Customer","Assignment"],"build_scope":"Configure a maintained inbox and migrate supported history; optionally add a supervised draft assistant.","priority":"B","build_request":"Helpdesk migration, branding integration and safe draft-assistant adapter—not a new email transport.","source":"catalog_seed","paths":[{"type":"switch","name":"Chatwoot cloud","product_id":"chatwoot","url":"https://www.chatwoot.com/pricing","license_note":"Community and paid editions differ. Self-hosted pricing: https://www.chatwoot.com/pricing/self-hosted-plans","covers":["Email support","Live chat","Assignment","Macros","Public help content"],"scope":"5 agents; email, website chat, public help center","excluded":"No Fin, teams/advanced automation, SSO or audit log parity; human handling time assumed unchanged.","incumbent_plan":"Intercom Advanced","seats":5,"savings":{"baseline_monthly":425,"new_cash_monthly":95,"maintenance_hours_monthly":0.5,"new_monthly_with_time":120.0,"setup_cash":100,"setup_hours":10,"setup_total":600,"annual_recurring":3660,"year_one_net":3060,"payback_months":2.0,"hourly_value":50},"sources":["https://www.intercom.com/pricing","https://www.chatwoot.com/pricing"],"note":"Baseline $85/seat annual; alternative $19/agent displayed rate. Confirm checkout cadence, retention and fair use.","evidence":"modeled","confidence":"medium","pros":[],"cons":[],"id":"support-inbox--switch--chatwoot-cloud","recipe_id":"support-inbox"},{"type":"open_source","name":"Chatwoot community","product_id":"chatwoot","url":"https://www.chatwoot.com/pricing","license_note":"Community and paid editions differ. Self-hosted pricing: https://www.chatwoot.com/pricing/self-hosted-plans","covers":["Email support","Live chat","Assignment","Macros","Public help content"],"scope":"5 agents; email and basic website support","excluded":"No Fin, SSO, SLA policies, custom role controls or enterprise assurances; support labor unchanged.","incumbent_plan":"Intercom Advanced","seats":5,"savings":{"baseline_monthly":425,"new_cash_monthly":50,"maintenance_hours_monthly":2,"new_monthly_with_time":150,"setup_cash":100,"setup_hours":18,"setup_total":1000,"annual_recurring":3300,"year_one_net":2300,"payback_months":3.6,"hourly_value":50},"sources":["https://www.intercom.com/pricing","https://www.chatwoot.com/pricing/self-hosted-plans"],"note":"","evidence":"modeled","confidence":"medium","pros":[],"cons":[],"id":"support-inbox--open_source--chatwoot-community","recipe_id":"support-inbox"},{"type":"build","name":"Replace with AI: small-team support inbox","product_id":null,"covers":["Email support","Live chat","Assignment","Macros","Public help content"],"scope":"Configure a maintained inbox and migrate supported history; optionally add a supervised draft assistant.","savings":null,"sources":[],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"support-inbox--build--replace-with-ai-small-team-support-inbox","recipe_id":"support-inbox"}],"best_path_id":"support-inbox--switch--chatwoot-cloud","best_year_one_net":3060,"path_types":["switch","open_source","build"],"incumbent_names":["Intercom","Zendesk","Help Scout","Front"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Small-team support inbox\n\nReplaces the part of **Intercom, Zendesk, Help Scout, Front** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Email support\n- Live chat\n- Assignment\n- Macros\n- Public help content\n\n## Out of scope (do not build)\n- Fin parity\n- Voice\n- Complex routing\n- Enterprise SLAs\n- SSO and audit parity in free editions\n\n## Data model\n- Conversation, Message, Customer, Assignment\n\n## Approach\nConfigure a maintained inbox and migrate supported history; optionally add a supervised draft assistant.\n\n## Check before building\n- Exact paid-feature needs checked\n- Reply/thread routing tested\n- Mailbox history migration verified\n- Human support labor impact included\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- Chatwoot community: https://www.chatwoot.com/pricing\n\n## Cost targets\n- Incumbent baseline: $425/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Email support works end to end with seeded data\n- Live chat works end to end with seeded data\n- Assignment works end to end with seeded data\n- Macros works end to end with seeded data\n- Public help content works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/support-inbox (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"operations-app","title":"One internal operations workflow","category":"Internal data","incumbents":["airtable","smartsheet"],"features_used":["Structured records","Views","Roles","Approvals","Import/export"],"excluded":["General no-code application builder","Full formula engine","Arbitrary cross-base sync","Every extension"],"eligibility":["Actual editing seats known","Single stable workflow","Formula and attachment migration tested","Role model meets needs"],"entities":["Project","Record","Approval","Attachment","AuditEvent"],"build_scope":"Replace one stable base with a typed database and purpose-built UI, preserving relationships and access.","priority":"A","build_request":"Agency approval tracker with client isolation, imports and an audit log.","source":"catalog_seed","paths":[{"type":"build","name":"Replace with AI: operations app","product_id":null,"url":null,"license_note":null,"covers":["Structured records","Views","Roles","Approvals","Import/export"],"scope":"20 editing users; one stable approval workflow","excluded":"No general visual builder, arbitrary formulas, cross-base sync or entire Airtable replacement.","incumbent_plan":"Airtable Team","seats":20,"savings":{"baseline_monthly":400,"new_cash_monthly":25,"maintenance_hours_monthly":1,"new_monthly_with_time":75,"setup_cash":200,"setup_hours":16,"setup_total":1000,"annual_recurring":3900,"year_one_net":2900,"payback_months":3.1,"hourly_value":50},"sources":["https://airtable.com/pricing"],"note":"","evidence":"modeled","confidence":"medium","pros":[],"cons":[],"id":"operations-app--build--replace-with-ai-operations-app","recipe_id":"operations-app"},{"type":"switch","name":"Baserow Premium","product_id":"baserow","url":"https://baserow.io","license_note":"MIT for non-premium/non-enterprise core per official repository; paid editions have separate terms. https://github.com/baserow/baserow","covers":["Structured records","Views","Roles","Approvals","Import/export"],"scope":"20 users; compatible tables and views within plan limits","excluded":"No exact formula/automation equivalence; required roles may need Baserow Advanced.","incumbent_plan":"Airtable Team","seats":20,"savings":{"baseline_monthly":400,"new_cash_monthly":200,"maintenance_hours_monthly":0.5,"new_monthly_with_time":225.0,"setup_cash":100,"setup_hours":8,"setup_total":500,"annual_recurring":2100,"year_one_net":1600,"payback_months":2.9,"hourly_value":50},"sources":["https://airtable.com/pricing","https://baserow.io/pricing"],"note":"","evidence":"modeled","confidence":"medium","pros":[],"cons":[],"id":"operations-app--switch--baserow-premium","recipe_id":"operations-app"},{"type":"open_source","name":"Baserow","product_id":"baserow","url":"https://baserow.io","license_note":"MIT for non-premium/non-enterprise core per official repository; paid editions have separate terms. https://github.com/baserow/baserow","covers":["Structured records","Views","Roles","Approvals","Import/export"],"savings":null,"sources":["https://baserow.io"],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"operations-app--open_source--baserow","recipe_id":"operations-app"}],"best_path_id":"operations-app--build--replace-with-ai-operations-app","best_year_one_net":2900,"path_types":["switch","open_source","build"],"incumbent_names":["Airtable","Smartsheet"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: One internal operations workflow\n\nReplaces the part of **Airtable, Smartsheet** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Structured records\n- Views\n- Roles\n- Approvals\n- Import/export\n\n## Out of scope (do not build)\n- General no-code application builder\n- Full formula engine\n- Arbitrary cross-base sync\n- Every extension\n\n## Data model\n- Project, Record, Approval, Attachment, AuditEvent\n\n## Approach\nReplace one stable base with a typed database and purpose-built UI, preserving relationships and access.\n\n## Check before building\n- Actual editing seats known\n- Single stable workflow\n- Formula and attachment migration tested\n- Role model meets needs\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- Baserow: https://baserow.io\n\n## Cost targets\n- Incumbent baseline: $400/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Structured records works end to end with seeded data\n- Views works end to end with seeded data\n- Roles works end to end with seeded data\n- Approvals works end to end with seeded data\n- Import/export works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/operations-app (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-clay","title":"Lead enrichment","category":"Lead data","incumbents":["clay"],"features_used":["Contact and company enrichment","Waterfall across data providers","Tables and workflows"],"excluded":["AI web research agent","CRM sync","Email sequencing","Signals and intent tracking"],"eligibility":["You only rely on: Contact and company enrichment, Waterfall across data providers, Tables and workflows","Export your data from Clay before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"downgrade","name":"Clay (free tier)","product_id":"clay","url":"https://www.clay.com","repo_url":null,"license":"proprietary","covers":["Contact and company enrichment","Tables and workflows","AI web research agent"],"missing":["Waterfall across data providers"],"feature_coverage":0.67,"incumbent_plan":"Clay Launch","scope":"1 seat. If your use fits the free tier (100 data credits and 500 actions/mo; unlimited seats).","seats":1,"savings":{"baseline_monthly":185,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.25,"setup_total":12,"annual_recurring":2220,"year_one_net":2208,"payback_months":0.1,"hourly_value":50},"best_for":"Free plan: 100 data credits and 500 actions/mo with unlimited seats.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":1,"sources":["https://www.clay.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"clay__competitor__clay_free","id":"replace-clay--downgrade--clay-free-tier","recipe_id":"replace-clay"},{"type":"switch","name":"Hunter","product_id":"hunter","url":"https://hunter.io","repo_url":null,"license":"proprietary","covers":["Contact and company enrichment"],"missing":["Waterfall across data providers","Tables and workflows"],"feature_coverage":0.33,"incumbent_plan":"Clay Launch","scope":"1 seat. For just finding/verifying emails, Hunter starts at $34/mo annual.","seats":1,"savings":{"baseline_monthly":185,"new_cash_monthly":49,"maintenance_hours_monthly":0,"new_monthly_with_time":49,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":1632,"year_one_net":1582,"payback_months":0.4,"hourly_value":50},"best_for":"For just finding/verifying emails, Hunter starts at $34/mo annual.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":1,"sources":["https://www.clay.com/pricing","https://hunter.io/pricing"],"evidence":"modeled","confidence":"medium","option_id":"clay__competitor__hunter","id":"replace-clay--switch--hunter","recipe_id":"replace-clay"}],"best_path_id":"replace-clay--downgrade--clay-free-tier","best_year_one_net":2208,"path_types":["switch","downgrade"],"incumbent_names":["Clay"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Lead enrichment\n\nReplaces the part of **Clay** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Contact and company enrichment\n- Waterfall across data providers\n- Tables and workflows\n\n## Out of scope (do not build)\n- AI web research agent\n- CRM sync\n- Email sequencing\n- Signals and intent tracking\n\n## Check before building\n- You only rely on: Contact and company enrichment, Waterfall across data providers, Tables and workflows\n- Export your data from Clay before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Cost targets\n- Incumbent baseline: $185/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Contact and company enrichment works end to end with seeded data\n- Waterfall across data providers works end to end with seeded data\n- Tables and workflows works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-clay (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-e2b","title":"Code sandbox infra","category":"AI agent infra","incumbents":["e2b"],"features_used":["Code sandboxes via SDK"],"excluded":["Per-second billing","Custom sandbox templates","Filesystem and process API","Concurrent sandboxes","Self-host option"],"eligibility":["You only rely on: Code sandboxes via SDK","Export your data from E2B before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"downgrade","name":"E2B (free tier)","product_id":"e2b","url":"https://e2b.dev","repo_url":null,"license":"open_source","covers":["Code sandboxes via SDK","Per-second billing"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"E2B Pro","scope":"1 seat. If your use fits the free tier (Hobby: $100 one-time usage credit; 1-hr sessions; 20 concurrent sandboxes).","seats":1,"savings":{"baseline_monthly":150,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.25,"setup_total":12,"annual_recurring":1800,"year_one_net":1788,"payback_months":0.1,"hourly_value":50},"best_for":"Hobby: $100 one-time credit, 1-hour sessions, 20 concurrent sandboxes; enough for early prototypes.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://e2b.dev/pricing"],"evidence":"modeled","confidence":"medium","option_id":"e2b__competitor__e2b_free","id":"replace-e2b--downgrade--e2b-free-tier","recipe_id":"replace-e2b"},{"type":"open_source","name":"E2B (self-hosted)","product_id":"e2b","url":"https://e2b.dev","repo_url":null,"license":"open_source","covers":["Code sandboxes via SDK","Custom sandbox templates","Filesystem and process API"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"E2B Pro","scope":"1 seat. E2B infrastructure is open source; self-host to avoid the $150/mo Pro base fee (you run the infra).","seats":1,"savings":{"baseline_monthly":150,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":540,"year_one_net":340,"payback_months":4.4,"hourly_value":50},"best_for":"E2B infrastructure is open source; self-host to avoid the $150/mo Pro base fee (you run the infra).","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":4,"sources":["https://e2b.dev/pricing"],"evidence":"modeled","confidence":"low","option_id":"e2b__open_source__e2b","id":"replace-e2b--open_source--e2b-self-hosted","recipe_id":"replace-e2b"}],"best_path_id":"replace-e2b--downgrade--e2b-free-tier","best_year_one_net":1788,"path_types":["downgrade","open_source"],"incumbent_names":["E2B"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Code sandbox infra\n\nReplaces the part of **E2B** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Code sandboxes via SDK\n\n## Out of scope (do not build)\n- Per-second billing\n- Custom sandbox templates\n- Filesystem and process API\n- Concurrent sandboxes\n- Self-host option\n\n## Check before building\n- You only rely on: Code sandboxes via SDK\n- Export your data from E2B before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- E2B (self-hosted): https://e2b.dev\n\n## Cost targets\n- Incumbent baseline: $150/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Code sandboxes via SDK works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-e2b (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"keyword-workbench","title":"Occasional keyword or rank lookups","category":"SEO data","incumbents":["semrush"],"features_used":["Selected keyword queries","Selected SERP/rank lookups","CSV export"],"excluded":["Entire competitive index","Historical parity","All backlink data","Automated full-suite equivalence"],"eligibility":["Exact data endpoint identified","Coverage compared","Prepayments included in cash flow","Cadence and unit counts confirmed"],"entities":["Query","Result","DataLicense","UsageCharge"],"build_scope":"Build a bounded query interface over licensed APIs; cache results and expose endpoint-specific prices.","priority":"B","build_request":"Small SEO workbench around licensed data APIs, not a rebuilt search index.","source":"catalog_seed","paths":[{"type":"per_use","name":"Semrush data via Treg (per call)","product_id":"treg","url":"https://treg.to","repo_url":null,"license":"open_source","covers":["Keyword research","Backlink analysis","Competitor traffic analysis"],"missing":["Rank tracking","Site audit"],"feature_coverage":0.33,"incumbent_plan":"Semrush SEO","scope":"1 seat, about 300 keyword/backlink lookups a month.","seats":1,"savings":{"baseline_monthly":139,"new_cash_monthly":1.8,"maintenance_hours_monthly":0,"new_monthly_with_time":1.8,"setup_cash":0,"setup_hours":0.25,"setup_total":12,"annual_recurring":1646,"year_one_net":1634,"payback_months":0.1,"hourly_value":50},"best_for":"Occasional lookups from an agent or script; same Semrush data, no seat.","pros":["Same Semrush data at the provider rate","One key for thousands of other paid tools","$1 free credit to try"],"cons":["No UI: API or agent only","No rank tracking or site audit"],"porting_ease":5,"porting_notes":"Nothing to port; keep a CSV export of projects if you want history.","maintenance":1,"sources":["https://treg.to/","https://www.semrush.com/prices/"],"evidence":"modeled","confidence":"medium","option_id":"semrush__per_use_api__treg","id":"keyword-workbench--per_use--semrush-data-via-treg-per-call","recipe_id":"keyword-workbench"},{"type":"switch","name":"Google Search Console (free tier)","product_id":"google_search_console","url":"https://search.google.com/search-console","repo_url":null,"license":"proprietary","covers":["Rank tracking","Site audit"],"missing":["Keyword research"],"feature_coverage":0.67,"incumbent_plan":"Semrush SEO","scope":"1 seat. If your use fits the free tier.","seats":1,"savings":{"baseline_monthly":139,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":1668,"year_one_net":1618,"payback_months":0.4,"hourly_value":50},"best_for":"Free, first-party data on your own site's queries, positions and indexing; no competitor data.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":1,"sources":["https://www.semrush.com/prices/","https://search.google.com/search-console/about"],"evidence":"modeled","confidence":"medium","option_id":"semrush__competitor__google_search_console_free","id":"keyword-workbench--switch--google-search-console-free-tier","recipe_id":"keyword-workbench"},{"type":"open_source","name":"OpenSEO (hosted)","product_id":"openseo","url":"https://openseo.so","repo_url":"https://github.com/every-app/open-seo","license":"MIT","covers":["Keyword research","Rank tracking","Site audit","Backlink analysis","Competitor traffic analysis"],"missing":["AI search visibility","Content ideas"],"feature_coverage":1.0,"incumbent_plan":"Semrush SEO","scope":"1 seat. Same UI with nothing to run: pay $10 a month plus data at cost + 28%.","seats":1,"savings":{"baseline_monthly":139,"new_cash_monthly":12.3,"maintenance_hours_monthly":0,"new_monthly_with_time":12.3,"setup_cash":0,"setup_hours":0.5,"setup_total":25,"annual_recurring":1520,"year_one_net":1495,"payback_months":0.2,"hourly_value":50},"best_for":"Same UI with nothing to run: pay $10 a month plus data at cost + 28%.","pros":["Nothing to host","Same open-source code: can self-host later","Usage-based data cost"],"cons":["28% markup on data requests","Smaller dataset UI than Semrush"],"porting_ease":4,"porting_notes":"Same as self-hosted; can move to self-hosted without re-entering data by exporting.","maintenance":1,"sources":["https://github.com/every-app/open-seo","https://www.semrush.com/prices/"],"evidence":"modeled","confidence":"medium","option_id":"semrush__open_source__openseo_hosted","id":"keyword-workbench--open_source--openseo-hosted","recipe_id":"keyword-workbench"},{"type":"open_source","name":"OpenSEO (self-hosted)","product_id":"openseo","url":"https://openseo.so","repo_url":"https://github.com/every-app/open-seo","license":"MIT","covers":["Keyword research","Rank tracking","Site audit","Backlink analysis","Competitor traffic analysis"],"missing":["AI search visibility","Content ideas"],"feature_coverage":1.0,"incumbent_plan":"Semrush SEO","scope":"1 seat. Founders comfortable with Docker or Cloudflare who want a UI and an MCP server for their coding agent.","seats":1,"savings":{"baseline_monthly":139,"new_cash_monthly":1.8,"maintenance_hours_monthly":0.5,"new_monthly_with_time":26.8,"setup_cash":0,"setup_hours":1.5,"setup_total":75,"annual_recurring":1346,"year_one_net":1271,"payback_months":0.7,"hourly_value":50},"best_for":"Founders comfortable with Docker or Cloudflare who want a UI and an MCP server for their coding agent.","pros":["No monthly fee: you pay DataForSEO per request","MCP server and agent skills for Claude Code","MIT license, runs on Cloudflare's free plan"],"cons":["You bring and fund a DataForSEO key ($50 minimum deposit)","No history import from Semrush projects","Fewer reports than Semrush (no AI search visibility)"],"porting_ease":4,"porting_notes":"Re-add your domain and tracked keywords (CSV export from Semrush). Rank history does not move.","maintenance":2,"sources":["https://github.com/every-app/open-seo","https://www.semrush.com/prices/","https://dataforseo.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"semrush__open_source__openseo","id":"keyword-workbench--open_source--openseo-self-hosted","recipe_id":"keyword-workbench"},{"type":"build","name":"Build it: keyword + rank checker","product_id":null,"url":null,"repo_url":null,"license":null,"covers":["Keyword research","Rank tracking"],"missing":["Site audit","Backlink analysis","Competitor traffic analysis","AI search visibility"],"feature_coverage":0.67,"incumbent_plan":"Semrush SEO","scope":"1 seat. You only check volumes and your own rankings; want it inside your own dashboard.","seats":1,"savings":{"baseline_monthly":139,"new_cash_monthly":1.8,"maintenance_hours_monthly":1,"new_monthly_with_time":51.8,"setup_cash":60,"setup_hours":4,"setup_total":260,"annual_recurring":1046,"year_one_net":786,"payback_months":3.0,"hourly_value":50},"best_for":"You only check volumes and your own rankings; want it inside your own dashboard.","pros":["Exactly the 2 features you use","Lives in your stack (cron + table + page)","Data API cost only"],"cons":["You own bugs and API changes","No backlink or audit data"],"porting_ease":4,"porting_notes":"Export tracked keywords from Semrush as CSV and seed the table.","maintenance":3,"sources":["https://dataforseo.com/pricing","https://www.semrush.com/prices/"],"evidence":"modeled","confidence":"medium","option_id":"semrush__self_built__keyword_tool","id":"keyword-workbench--build--build-it-keyword-rank-checker","recipe_id":"keyword-workbench"},{"type":"switch","name":"Moz Pro","product_id":"moz","url":"https://moz.com","repo_url":null,"license":"proprietary","covers":["Keyword research","Rank tracking","Site audit","Backlink analysis"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Semrush SEO","scope":"1 seat. Moz Standard $99/mo ($79 annual) vs Semrush SEO $139/mo.","seats":1,"savings":{"baseline_monthly":139,"new_cash_monthly":99,"maintenance_hours_monthly":0,"new_monthly_with_time":99,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":480,"year_one_net":430,"payback_months":1.2,"hourly_value":50},"best_for":"Moz Standard $99/mo ($79 annual) vs Semrush SEO $139/mo.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":1,"sources":["https://www.semrush.com/prices/","https://moz.com/products/pro/pricing"],"evidence":"modeled","confidence":"medium","option_id":"semrush__competitor__moz","id":"keyword-workbench--switch--moz-pro","recipe_id":"keyword-workbench"},{"type":"switch","name":"DataForSEO","product_id":"dataforseo","url":"https://dataforseo.com","license_note":null,"covers":["Selected keyword queries","Selected SERP/rank lookups","CSV export"],"savings":null,"sources":["https://dataforseo.com"],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"keyword-workbench--switch--dataforseo","recipe_id":"keyword-workbench"},{"type":"build","name":"Replace with AI: occasional keyword or rank lookups","product_id":null,"covers":["Selected keyword queries","Selected SERP/rank lookups","CSV export"],"scope":"Build a bounded query interface over licensed APIs; cache results and expose endpoint-specific prices.","savings":null,"sources":[],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"keyword-workbench--build--replace-with-ai-occasional-keyword-or-rank-lookups","recipe_id":"keyword-workbench"}],"best_path_id":"keyword-workbench--per_use--semrush-data-via-treg-per-call","best_year_one_net":1634,"path_types":["switch","open_source","per_use","build"],"incumbent_names":["Semrush"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Occasional keyword or rank lookups\n\nReplaces the part of **Semrush** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Selected keyword queries\n- Selected SERP/rank lookups\n- CSV export\n\n## Out of scope (do not build)\n- Entire competitive index\n- Historical parity\n- All backlink data\n- Automated full-suite equivalence\n\n## Data model\n- Query, Result, DataLicense, UsageCharge\n\n## Approach\nBuild a bounded query interface over licensed APIs; cache results and expose endpoint-specific prices.\n\n## Check before building\n- Exact data endpoint identified\n- Coverage compared\n- Prepayments included in cash flow\n- Cadence and unit counts confirmed\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- OpenSEO (hosted): https://github.com/every-app/open-seo\n- OpenSEO (self-hosted): https://github.com/every-app/open-seo\n\n## Cost targets\n- Incumbent baseline: $139/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Selected keyword queries works end to end with seeded data\n- Selected SERP/rank lookups works end to end with seeded data\n- CSV export works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/keyword-workbench (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-ahrefs","title":"SEO research suite","category":"SEO data","incumbents":["ahrefs"],"features_used":["Backlink analysis","Keyword research","Rank tracking","Site audit"],"excluded":["Competitor analysis","Content explorer","AI brand visibility","API access"],"eligibility":["You only rely on: Backlink analysis, Keyword research, Rank tracking, Site audit","Export your data from Ahrefs before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"downgrade","name":"Ahrefs (free tier)","product_id":"ahrefs","url":"https://ahrefs.com","repo_url":null,"license":"proprietary","covers":["Site audit","Backlink analysis"],"missing":["Keyword research","Rank tracking"],"feature_coverage":0.5,"incumbent_plan":"Ahrefs Lite","scope":"1 seat. If your use fits the free tier (Ahrefs Free: data on your own verified site).","seats":1,"savings":{"baseline_monthly":129,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.25,"setup_total":12,"annual_recurring":1548,"year_one_net":1536,"payback_months":0.1,"hourly_value":50},"best_for":"Ahrefs Free gives data on your own verified site.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":1,"sources":["https://ahrefs.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"ahrefs__competitor__ahrefs_free","id":"replace-ahrefs--downgrade--ahrefs-free-tier","recipe_id":"replace-ahrefs"},{"type":"switch","name":"Google Search Console (free tier)","product_id":"google_search_console","url":"https://search.google.com/search-console","repo_url":null,"license":"proprietary","covers":["Rank tracking","Site audit"],"missing":["Backlink analysis","Keyword research"],"feature_coverage":0.5,"incumbent_plan":"Ahrefs Lite","scope":"1 seat. If your use fits the free tier.","seats":1,"savings":{"baseline_monthly":129,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":1548,"year_one_net":1498,"payback_months":0.4,"hourly_value":50},"best_for":"Free first-party search data for your own site.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":1,"sources":["https://ahrefs.com/pricing","https://search.google.com/search-console/about"],"evidence":"modeled","confidence":"medium","option_id":"ahrefs__competitor__google_search_console_free","id":"replace-ahrefs--switch--google-search-console-free-tier","recipe_id":"replace-ahrefs"},{"type":"open_source","name":"OpenSEO (self-hosted)","product_id":"openseo","url":"https://openseo.so","repo_url":"https://github.com/every-app/open-seo","license":"MIT","covers":["Backlink analysis","Keyword research","Rank tracking","Site audit"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Ahrefs Lite","scope":"1 seat. Ahrefs Lite users who mainly check backlinks and keywords for 1-2 sites.","seats":1,"savings":{"baseline_monthly":129,"new_cash_monthly":1.8,"maintenance_hours_monthly":0.5,"new_monthly_with_time":26.8,"setup_cash":0,"setup_hours":1.5,"setup_total":75,"annual_recurring":1226,"year_one_net":1151,"payback_months":0.7,"hourly_value":50},"best_for":"Ahrefs Lite users who mainly check backlinks and keywords for 1-2 sites.","pros":["No monthly fee","Backlinks, keywords, rank tracking and audits in one UI","MCP server for agents"],"cons":["Backlink index is DataForSEO's, not Ahrefs'","You fund a DataForSEO key ($50 minimum)"],"porting_ease":4,"porting_notes":"Re-add projects and keywords; historical Ahrefs data does not move.","maintenance":2,"sources":["https://github.com/every-app/open-seo","https://ahrefs.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"ahrefs__open_source__openseo","id":"replace-ahrefs--open_source--openseo-self-hosted","recipe_id":"replace-ahrefs"},{"type":"switch","name":"Moz Pro","product_id":"moz","url":"https://moz.com","repo_url":null,"license":"proprietary","covers":["Backlink analysis","Keyword research","Rank tracking","Site audit"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Ahrefs Lite","scope":"1 seat. Moz Standard $99/mo vs Ahrefs Lite $129/mo.","seats":1,"savings":{"baseline_monthly":129,"new_cash_monthly":99,"maintenance_hours_monthly":0,"new_monthly_with_time":99,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":360,"year_one_net":310,"payback_months":1.7,"hourly_value":50},"best_for":"Moz Standard $99/mo vs Ahrefs Lite $129/mo.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":1,"sources":["https://ahrefs.com/pricing","https://moz.com/products/pro/pricing"],"evidence":"modeled","confidence":"medium","option_id":"ahrefs__competitor__moz","id":"replace-ahrefs--switch--moz-pro","recipe_id":"replace-ahrefs"}],"best_path_id":"replace-ahrefs--downgrade--ahrefs-free-tier","best_year_one_net":1536,"path_types":["switch","downgrade","open_source"],"incumbent_names":["Ahrefs"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: SEO research suite\n\nReplaces the part of **Ahrefs** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Backlink analysis\n- Keyword research\n- Rank tracking\n- Site audit\n\n## Out of scope (do not build)\n- Competitor analysis\n- Content explorer\n- AI brand visibility\n- API access\n\n## Check before building\n- You only rely on: Backlink analysis, Keyword research, Rank tracking, Site audit\n- Export your data from Ahrefs before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- OpenSEO (self-hosted): https://github.com/every-app/open-seo\n\n## Cost targets\n- Incumbent baseline: $129/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Backlink analysis works end to end with seeded data\n- Keyword research works end to end with seeded data\n- Rank tracking works end to end with seeded data\n- Site audit works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-ahrefs (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"branded-links","title":"Owned-domain short links and QR codes","category":"Links","incumbents":["bitly"],"features_used":["Create short links","Custom-domain redirects","QR codes","Basic click counts"],"excluded":["Continuity for bit.ly-owned URLs","Mobile deep linking","Geo-routing parity","Enterprise analytics"],"eligibility":["Buyer controls the old domain","Existing URL paths preserved","No broken printed QR codes","Retention and abuse rules implemented"],"entities":["Link","Domain","RedirectRule","ClickAggregate"],"build_scope":"Deploy a maintained shortener or a small redirect API with durable storage, ownership checks and abuse controls.","priority":"A","build_request":"Bulk importer and own-domain redirect migration with a link-by-link continuity test.","source":"catalog_seed","paths":[{"type":"open_source","name":"own-domain shortener","product_id":"shlink","url":"https://github.com/shlinkio/shlink","license_note":"Inspect pinned version and third-party geolocation/data licensing.","covers":["Create short links","Custom-domain redirects","QR codes","Basic click counts"],"scope":"Up to 3,000 links/month; custom domain and basic click counts","excluded":"No continuity for bit.ly domain URLs, deep links, advanced regional routing or full analytics.","incumbent_plan":"Bitly Premium","seats":1,"savings":{"baseline_monthly":199,"new_cash_monthly":15,"maintenance_hours_monthly":0.5,"new_monthly_with_time":40.0,"setup_cash":100,"setup_hours":6,"setup_total":400,"annual_recurring":1908,"year_one_net":1508,"payback_months":2.5,"hourly_value":50},"sources":["https://bitly.com/pages/pricing","https://github.com/shlinkio/shlink"],"note":"","evidence":"modeled","confidence":"medium","pros":[],"cons":[],"id":"branded-links--open_source--own-domain-shortener","recipe_id":"branded-links"},{"type":"build","name":"Replace with AI: owned-domain short links and qr codes","product_id":null,"covers":["Create short links","Custom-domain redirects","QR codes","Basic click counts"],"scope":"Deploy a maintained shortener or a small redirect API with durable storage, ownership checks and abuse controls.","savings":null,"sources":[],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"branded-links--build--replace-with-ai-owned-domain-short-links-and-qr-codes","recipe_id":"branded-links"}],"best_path_id":"branded-links--open_source--own-domain-shortener","best_year_one_net":1508,"path_types":["open_source","build"],"incumbent_names":["Bitly"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Owned-domain short links and QR codes\n\nReplaces the part of **Bitly** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Create short links\n- Custom-domain redirects\n- QR codes\n- Basic click counts\n\n## Out of scope (do not build)\n- Continuity for bit.ly-owned URLs\n- Mobile deep linking\n- Geo-routing parity\n- Enterprise analytics\n\n## Data model\n- Link, Domain, RedirectRule, ClickAggregate\n\n## Approach\nDeploy a maintained shortener or a small redirect API with durable storage, ownership checks and abuse controls.\n\n## Check before building\n- Buyer controls the old domain\n- Existing URL paths preserved\n- No broken printed QR codes\n- Retention and abuse rules implemented\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- own-domain shortener: https://github.com/shlinkio/shlink\n\n## Cost targets\n- Incumbent baseline: $199/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Create short links works end to end with seeded data\n- Custom-domain redirects works end to end with seeded data\n- QR codes works end to end with seeded data\n- Basic click counts works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/branded-links (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"document-signing","title":"Simple templates and signature routing","category":"Documents","incumbents":["pandadoc","docusign"],"features_used":["PDF templates","Recipient routing","Signatures","Evidence export"],"excluded":["CPQ","Full proposal editor","Qualified signature assurances","Every legal jurisdiction","Full agreement lifecycle"],"eligibility":["Jurisdiction and assurance reviewed","Evidence retained","Required features available in chosen edition","No home-grown signature primitive"],"entities":["Template","Envelope","Recipient","Evidence"],"build_scope":"Configure an established signing product and build only the template/migration glue.","priority":"B","build_request":"Template migration and CRM handoff using an established signing engine.","source":"catalog_seed","paths":[{"type":"open_source","name":"DocuSeal workflow","product_id":"docuseal","url":"https://www.docuseal.com/pricing","license_note":"Open-core; inspect pinned community license, API terms and paid feature limits. Repository: https://github.com/docusealco/docuseal","covers":["PDF templates","Recipient routing","Signatures","Evidence export"],"scope":"5 staff; simple PDF templates and recipient signing","excluded":"No CPQ, full proposal editor, enterprise assurance or every paid DocuSeal feature. Legal/assurance review needed.","incumbent_plan":"PandaDoc Business","seats":5,"savings":{"baseline_monthly":245,"new_cash_monthly":25,"maintenance_hours_monthly":1,"new_monthly_with_time":75,"setup_cash":100,"setup_hours":10,"setup_total":600,"annual_recurring":2040,"year_one_net":1440,"payback_months":3.5,"hourly_value":50},"sources":["https://www.pandadoc.com/pricing/","https://www.docuseal.com/pricing","https://github.com/docusealco/docuseal"],"note":"","evidence":"modeled","confidence":"medium","pros":[],"cons":[],"id":"document-signing--open_source--docuseal-workflow","recipe_id":"document-signing"},{"type":"switch","name":"DocuSeal","product_id":"docuseal","url":"https://www.docuseal.com/pricing","license_note":"Open-core; inspect pinned community license, API terms and paid feature limits. Repository: https://github.com/docusealco/docuseal","covers":["PDF templates","Recipient routing","Signatures","Evidence export"],"savings":null,"sources":["https://www.docuseal.com/pricing"],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"document-signing--switch--docuseal","recipe_id":"document-signing"},{"type":"switch","name":"Documenso","product_id":"documenso","url":"https://documenso.com/pricing","license_note":"Open-core; inspect exact release license and enterprise feature boundaries.","covers":["PDF templates","Recipient routing","Signatures","Evidence export"],"savings":null,"sources":["https://documenso.com/pricing"],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"document-signing--switch--documenso","recipe_id":"document-signing"},{"type":"open_source","name":"Documenso","product_id":"documenso","url":"https://documenso.com/pricing","license_note":"Open-core; inspect exact release license and enterprise feature boundaries.","covers":["PDF templates","Recipient routing","Signatures","Evidence export"],"savings":null,"sources":["https://documenso.com/pricing"],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"document-signing--open_source--documenso","recipe_id":"document-signing"},{"type":"build","name":"Replace with AI: simple templates and signature routing","product_id":null,"covers":["PDF templates","Recipient routing","Signatures","Evidence export"],"scope":"Configure an established signing product and build only the template/migration glue.","savings":null,"sources":[],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"document-signing--build--replace-with-ai-simple-templates-and-signature-routing","recipe_id":"document-signing"}],"best_path_id":"document-signing--open_source--docuseal-workflow","best_year_one_net":1440,"path_types":["switch","open_source","build"],"incumbent_names":["PandaDoc","Docusign"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Simple templates and signature routing\n\nReplaces the part of **PandaDoc, Docusign** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- PDF templates\n- Recipient routing\n- Signatures\n- Evidence export\n\n## Out of scope (do not build)\n- CPQ\n- Full proposal editor\n- Qualified signature assurances\n- Every legal jurisdiction\n- Full agreement lifecycle\n\n## Data model\n- Template, Envelope, Recipient, Evidence\n\n## Approach\nConfigure an established signing product and build only the template/migration glue.\n\n## Check before building\n- Jurisdiction and assurance reviewed\n- Evidence retained\n- Required features available in chosen edition\n- No home-grown signature primitive\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- DocuSeal workflow: https://www.docuseal.com/pricing\n- Documenso: https://documenso.com/pricing\n\n## Cost targets\n- Incumbent baseline: $245/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- PDF templates works end to end with seeded data\n- Recipient routing works end to end with seeded data\n- Signatures works end to end with seeded data\n- Evidence export works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/document-signing (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-moz","title":"SEO research suite","category":"SEO data","incumbents":["moz"],"features_used":["Keyword research","Rank tracking","Site crawl audit"],"excluded":["Backlink analysis","Domain Authority","AI search visibility"],"eligibility":["You only rely on: Keyword research, Rank tracking, Site crawl audit","Export your data from Moz Pro before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"switch","name":"Google Search Console (free tier)","product_id":"google_search_console","url":"https://search.google.com/search-console","repo_url":null,"license":"proprietary","covers":["Rank tracking","Site crawl audit"],"missing":["Keyword research"],"feature_coverage":0.67,"incumbent_plan":"Moz Pro Standard","scope":"1 seat. If your use fits the free tier.","seats":1,"savings":{"baseline_monthly":99,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":1188,"year_one_net":1138,"payback_months":0.5,"hourly_value":50},"best_for":"Free first-party data for your own site.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://moz.com/products/pro/pricing","https://search.google.com/search-console/about"],"evidence":"modeled","confidence":"medium","option_id":"moz__competitor__google_search_console_free","id":"replace-moz--switch--google-search-console-free-tier","recipe_id":"replace-moz"}],"best_path_id":"replace-moz--switch--google-search-console-free-tier","best_year_one_net":1138,"path_types":["switch"],"incumbent_names":["Moz Pro"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: SEO research suite\n\nReplaces the part of **Moz Pro** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Keyword research\n- Rank tracking\n- Site crawl audit\n\n## Out of scope (do not build)\n- Backlink analysis\n- Domain Authority\n- AI search visibility\n\n## Check before building\n- You only rely on: Keyword research, Rank tracking, Site crawl audit\n- Export your data from Moz Pro before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Cost targets\n- Incumbent baseline: $99/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Keyword research works end to end with seeded data\n- Rank tracking works end to end with seeded data\n- Site crawl audit works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-moz (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"image-templates","title":"Fixed-template image generation","category":"Media automation","incumbents":["bannerbear","placid"],"features_used":["Template rendering","Variable text/images","Batch generation","API output"],"excluded":["Video generation","AI media credits","Visual template designer","Every integration"],"eligibility":["Limited known templates","Fonts and source assets licensed","Image-only workload","Benchmark actual CPU and storage costs"],"entities":["Template","RenderJob","Asset"],"build_scope":"Build a bounded template renderer and queue, with safe asset fetching, clipping and overflow tests.","priority":"A","build_request":"Five branded templates → PNG/JPEG API with batch generation and golden-image tests.","source":"catalog_seed","paths":[{"type":"build","name":"Replace with AI: fixed-template image API","product_id":null,"url":null,"license_note":null,"covers":["Template rendering","Variable text/images","Batch generation","API output"],"scope":"Up to 10,000 static images/month across five templates","excluded":"No video, AI media operations, visual template designer or all integrations.","incumbent_plan":"Bannerbear Scale","seats":1,"savings":{"baseline_monthly":149,"new_cash_monthly":20,"maintenance_hours_monthly":0.5,"new_monthly_with_time":45.0,"setup_cash":100,"setup_hours":8,"setup_total":500,"annual_recurring":1248,"year_one_net":748,"payback_months":4.8,"hourly_value":50},"sources":["https://www.bannerbear.com/pricing/"],"note":"","evidence":"modeled","confidence":"medium","pros":[],"cons":[],"id":"image-templates--build--replace-with-ai-fixed-template-image-api","recipe_id":"image-templates"}],"best_path_id":"image-templates--build--replace-with-ai-fixed-template-image-api","best_year_one_net":748,"path_types":["build"],"incumbent_names":["Bannerbear","Placid"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Fixed-template image generation\n\nReplaces the part of **Bannerbear, Placid** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Template rendering\n- Variable text/images\n- Batch generation\n- API output\n\n## Out of scope (do not build)\n- Video generation\n- AI media credits\n- Visual template designer\n- Every integration\n\n## Data model\n- Template, RenderJob, Asset\n\n## Approach\nBuild a bounded template renderer and queue, with safe asset fetching, clipping and overflow tests.\n\n## Check before building\n- Limited known templates\n- Fonts and source assets licensed\n- Image-only workload\n- Benchmark actual CPU and storage costs\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Cost targets\n- Incumbent baseline: $149/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Template rendering works end to end with seeded data\n- Variable text/images works end to end with seeded data\n- Batch generation works end to end with seeded data\n- API output works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/image-templates (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"lead-verification","title":"Occasional email verification","category":"Lead data","incumbents":["hunter"],"features_used":["Verify known email addresses","Upload a CSV","Export results"],"excluded":["Email discovery","Lead database","Outreach sequences","Guaranteed deliverability"],"eligibility":["Verification-only use confirmed","Alternative API quote retrieved","No permissionless collection","False-positive cost evaluated"],"entities":["Batch","Address","Verification"],"build_scope":"Use an approved verification provider with a narrow batch wrapper; keep discovery and outreach as separate capabilities.","priority":"C","build_request":"Bring-your-own verification API and CSV review, only when an actual cost gap exists.","source":"catalog_seed","paths":[{"type":"downgrade","name":"Hunter (free tier)","product_id":"hunter","url":"https://hunter.io","repo_url":null,"license":"proprietary","covers":["Email finder","Email verifier","Domain search"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Hunter Starter","scope":"1 seat. If your use fits the free tier (50 credits/mo).","seats":1,"savings":{"baseline_monthly":49,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.25,"setup_total":12,"annual_recurring":588,"year_one_net":576,"payback_months":0.2,"hourly_value":50},"best_for":"Free: 50 credits/mo.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://hunter.io/pricing"],"evidence":"modeled","confidence":"medium","option_id":"hunter__competitor__hunter_free","id":"lead-verification--downgrade--hunter-free-tier","recipe_id":"lead-verification"},{"type":"build","name":"Replace with AI: occasional email verification","product_id":null,"covers":["Verify known email addresses","Upload a CSV","Export results"],"scope":"Use an approved verification provider with a narrow batch wrapper; keep discovery and outreach as separate capabilities.","savings":null,"sources":[],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"lead-verification--build--replace-with-ai-occasional-email-verification","recipe_id":"lead-verification"}],"best_path_id":"lead-verification--downgrade--hunter-free-tier","best_year_one_net":576,"path_types":["downgrade","build"],"incumbent_names":["Hunter"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Occasional email verification\n\nReplaces the part of **Hunter** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Verify known email addresses\n- Upload a CSV\n- Export results\n\n## Out of scope (do not build)\n- Email discovery\n- Lead database\n- Outreach sequences\n- Guaranteed deliverability\n\n## Data model\n- Batch, Address, Verification\n\n## Approach\nUse an approved verification provider with a narrow batch wrapper; keep discovery and outreach as separate capabilities.\n\n## Check before building\n- Verification-only use confirmed\n- Alternative API quote retrieved\n- No permissionless collection\n- False-positive cost evaluated\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Cost targets\n- Incumbent baseline: $49/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Verify known email addresses works end to end with seeded data\n- Upload a CSV works end to end with seeded data\n- Export results works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/lead-verification (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"static-landing","title":"Landing pages without a visual builder","category":"Landing pages","incumbents":["unbounce"],"features_used":["Responsive pages","Lead capture","Analytics events","Custom domain"],"excluded":["Visual editing parity","Traffic optimization","Experimentation platform","Thousands of integrations"],"eligibility":["Developer-owned updates acceptable","No required optimization feature","Content and SEO redirects preserved"],"entities":["Page","Section","Lead"],"build_scope":"Build reusable page components, a content file and lead endpoint. Keep tests and analytics already in the stack.","priority":"A","build_request":"Repeatable landing-page migration and form integration pack.","source":"catalog_seed","paths":[{"type":"build","name":"Replace with AI: owned landing pages","product_id":null,"url":null,"license_note":null,"covers":["Responsive pages","Lead capture","Analytics events","Custom domain"],"scope":"Three static campaign pages, lead capture, ≤20k visits/month","excluded":"No visual editor, A/B testing or automated traffic optimization.","incumbent_plan":"Unbounce Build","seats":1,"savings":{"baseline_monthly":99,"new_cash_monthly":10,"maintenance_hours_monthly":0.25,"new_monthly_with_time":22.5,"setup_cash":100,"setup_hours":6,"setup_total":400,"annual_recurring":918,"year_one_net":518,"payback_months":5.2,"hourly_value":50},"sources":["https://unbounce.com/pricing/"],"note":"Observed $99 public price; confirm billing cadence and quote before a personalized claim.","evidence":"modeled","confidence":"medium","pros":[],"cons":[],"id":"static-landing--build--replace-with-ai-owned-landing-pages","recipe_id":"static-landing"},{"type":"switch","name":"Tally","product_id":"tally","url":"https://tally.so","license_note":null,"covers":["Responsive pages","Lead capture","Analytics events","Custom domain"],"savings":null,"sources":["https://tally.so"],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"static-landing--switch--tally","recipe_id":"static-landing"}],"best_path_id":"static-landing--build--replace-with-ai-owned-landing-pages","best_year_one_net":518,"path_types":["switch","build"],"incumbent_names":["Unbounce"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Landing pages without a visual builder\n\nReplaces the part of **Unbounce** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Responsive pages\n- Lead capture\n- Analytics events\n- Custom domain\n\n## Out of scope (do not build)\n- Visual editing parity\n- Traffic optimization\n- Experimentation platform\n- Thousands of integrations\n\n## Data model\n- Page, Section, Lead\n\n## Approach\nBuild reusable page components, a content file and lead endpoint. Keep tests and analytics already in the stack.\n\n## Check before building\n- Developer-owned updates acceptable\n- No required optimization feature\n- Content and SEO redirects preserved\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Cost targets\n- Incumbent baseline: $99/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Responsive pages works end to end with seeded data\n- Lead capture works end to end with seeded data\n- Analytics events works end to end with seeded data\n- Custom domain works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/static-landing (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-kit","title":"Creator newsletter","category":"Email marketing","incumbents":["kit"],"features_used":["Email broadcasts","Landing pages and forms","Tagging and segmentation"],"excluded":["Visual automations","Email sequences","Paid newsletters and products","Creator Network recommendations"],"eligibility":["You only rely on: Email broadcasts, Landing pages and forms, Tagging and segmentation","Export your data from Kit (ConvertKit) before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"downgrade","name":"Kit (ConvertKit) (free tier)","product_id":"kit","url":"https://kit.com","repo_url":null,"license":"proprietary","covers":["Email broadcasts","Landing pages and forms","Tagging and segmentation"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Kit (ConvertKit) Creator","scope":"1 seat. If your use fits the free tier (Up to 10,000 subscribers; unlimited broadcasts and forms).","seats":1,"savings":{"baseline_monthly":39,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.25,"setup_total":12,"annual_recurring":468,"year_one_net":456,"payback_months":0.3,"hourly_value":50},"best_for":"Free plan now covers up to 10,000 subscribers; pay only for automations/sequences.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://kit.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"kit__competitor__kit_free","id":"replace-kit--downgrade--kit-convertkit-free-tier","recipe_id":"replace-kit"},{"type":"switch","name":"beehiiv (free tier)","product_id":"beehiiv","url":"https://www.beehiiv.com","repo_url":null,"license":"proprietary","covers":["Email broadcasts","Landing pages and forms"],"missing":["Tagging and segmentation"],"feature_coverage":0.67,"incumbent_plan":"Kit (ConvertKit) Creator","scope":"1 seat. If your use fits the free tier (Launch: up to 2,500 subscribers).","seats":1,"savings":{"baseline_monthly":39,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":468,"year_one_net":418,"payback_months":1.3,"hourly_value":50},"best_for":"Free up to 2,500 subscribers, with a hosted site.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://kit.com/pricing","https://www.beehiiv.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"kit__competitor__beehiiv_free","id":"replace-kit--switch--beehiiv-free-tier","recipe_id":"replace-kit"},{"type":"open_source","name":"Ghost","product_id":"ghost","url":"https://ghost.org","repo_url":null,"license":"open_source","covers":["Email broadcasts","Landing pages and forms","Paid newsletters and products"],"missing":["Tagging and segmentation"],"feature_coverage":0.67,"incumbent_plan":"Kit (ConvertKit) Creator","scope":"1 seat. Self-host Ghost for newsletters and paid memberships; you need a mail provider.","seats":1,"savings":{"baseline_monthly":39,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-792,"year_one_net":-992,"payback_months":null,"hourly_value":50},"best_for":"Self-host Ghost for newsletters and paid memberships; you need a mail provider.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":4,"sources":["https://kit.com/pricing","https://ghost.org/pricing/"],"evidence":"modeled","confidence":"low","option_id":"kit__open_source__ghost","id":"replace-kit--open_source--ghost","recipe_id":"replace-kit"},{"type":"open_source","name":"listmonk","product_id":"listmonk","url":"https://listmonk.app","repo_url":null,"license":"open_source","covers":["Email broadcasts","Tagging and segmentation","Email sequences"],"missing":["Landing pages and forms"],"feature_coverage":0.67,"incumbent_plan":"Kit (ConvertKit) Creator","scope":"1 seat. Self-hosted lists and campaigns; basic automation only.","seats":1,"savings":{"baseline_monthly":39,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-792,"year_one_net":-992,"payback_months":null,"hourly_value":50},"best_for":"Self-hosted lists and campaigns; basic automation only.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":4,"sources":["https://kit.com/pricing","https://listmonk.app/"],"evidence":"modeled","confidence":"low","option_id":"kit__open_source__listmonk","id":"replace-kit--open_source--listmonk","recipe_id":"replace-kit"}],"best_path_id":"replace-kit--downgrade--kit-convertkit-free-tier","best_year_one_net":456,"path_types":["switch","downgrade","open_source"],"incumbent_names":["Kit (ConvertKit)"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Creator newsletter\n\nReplaces the part of **Kit (ConvertKit)** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Email broadcasts\n- Landing pages and forms\n- Tagging and segmentation\n\n## Out of scope (do not build)\n- Visual automations\n- Email sequences\n- Paid newsletters and products\n- Creator Network recommendations\n\n## Check before building\n- You only rely on: Email broadcasts, Landing pages and forms, Tagging and segmentation\n- Export your data from Kit (ConvertKit) before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- Ghost: https://ghost.org\n- listmonk: https://listmonk.app\n\n## Cost targets\n- Incumbent baseline: $39/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Email broadcasts works end to end with seeded data\n- Landing pages and forms works end to end with seeded data\n- Tagging and segmentation works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-kit (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-better-stack","title":"Uptime monitoring","category":"Status pages","incumbents":["better_stack"],"features_used":["Uptime monitoring","Status pages"],"excluded":["On-call scheduling","Phone and SMS alerts","Log management","Error tracking","Incident management"],"eligibility":["You only rely on: Uptime monitoring, Status pages","Export your data from Better Stack before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"downgrade","name":"Better Stack (free tier)","product_id":"better_stack","url":"https://betterstack.com","repo_url":null,"license":"proprietary","covers":["Uptime monitoring","Status pages","Error tracking"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Better Stack Responder license","scope":"1 seat. If your use fits the free tier (10 monitors & heartbeats, 1 status page, 100k exceptions/mo).","seats":1,"savings":{"baseline_monthly":34,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.25,"setup_total":12,"annual_recurring":408,"year_one_net":396,"payback_months":0.4,"hourly_value":50},"best_for":"Free: 10 monitors, 1 status page, Slack/email alerts; pay only for responder licenses ($29-34).","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://betterstack.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"better_stack__competitor__better_stack_free","id":"replace-better-stack--downgrade--better-stack-free-tier","recipe_id":"replace-better-stack"},{"type":"switch","name":"UptimeRobot (free tier)","product_id":"uptimerobot","url":"https://uptimerobot.com","repo_url":null,"license":"proprietary","covers":["Uptime monitoring","Status pages"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Better Stack Responder license","scope":"1 seat. If your use fits the free tier (Free plan with 5-minute checks).","seats":1,"savings":{"baseline_monthly":34,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":408,"year_one_net":358,"payback_months":1.5,"hourly_value":50},"best_for":"UptimeRobot Free covers basic uptime checks and a status page.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://betterstack.com/pricing","https://uptimerobot.com/pricing/"],"evidence":"modeled","confidence":"medium","option_id":"better_stack__competitor__uptimerobot_free","id":"replace-better-stack--switch--uptimerobot-free-tier","recipe_id":"replace-better-stack"},{"type":"open_source","name":"Uptime Kuma","product_id":"uptime_kuma","url":"https://github.com/louislam/uptime-kuma","repo_url":null,"license":"open_source","covers":["Uptime monitoring","Status pages"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Better Stack Responder license","scope":"1 seat. Free self-hosted monitor with 90+ notification services; no phone-call on-call.","seats":1,"savings":{"baseline_monthly":34,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-852,"year_one_net":-1052,"payback_months":null,"hourly_value":50},"best_for":"Free self-hosted monitor with 90+ notification services; no phone-call on-call.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":4,"sources":["https://betterstack.com/pricing","https://github.com/louislam/uptime-kuma"],"evidence":"modeled","confidence":"low","option_id":"better_stack__open_source__uptime_kuma","id":"replace-better-stack--open_source--uptime-kuma","recipe_id":"replace-better-stack"}],"best_path_id":"replace-better-stack--downgrade--better-stack-free-tier","best_year_one_net":396,"path_types":["switch","downgrade","open_source"],"incumbent_names":["Better Stack"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Uptime monitoring\n\nReplaces the part of **Better Stack** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Uptime monitoring\n- Status pages\n\n## Out of scope (do not build)\n- On-call scheduling\n- Phone and SMS alerts\n- Log management\n- Error tracking\n- Incident management\n\n## Check before building\n- You only rely on: Uptime monitoring, Status pages\n- Export your data from Better Stack before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- Uptime Kuma: https://github.com/louislam/uptime-kuma\n\n## Cost targets\n- Incumbent baseline: $34/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Uptime monitoring works end to end with seeded data\n- Status pages works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-better-stack (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-v0","title":"AI app builder","category":"App builders","incumbents":["v0"],"features_used":["Build UI/app from prompt","Deploy to Vercel"],"excluded":["Design mode edits","GitHub sync","Model choice","Shared team credits"],"eligibility":["You only rely on: Build UI/app from prompt, Deploy to Vercel","Export your data from v0 by Vercel before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"downgrade","name":"v0 by Vercel (free tier)","product_id":"v0","url":"https://v0.app","repo_url":null,"license":"proprietary","covers":["Build UI/app from prompt","Deploy to Vercel"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"v0 by Vercel Plus/Team","scope":"1 seat. If your use fits the free tier ($5 included monthly credits; deploy to Vercel).","seats":1,"savings":{"baseline_monthly":30,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.25,"setup_total":12,"annual_recurring":360,"year_one_net":348,"payback_months":0.4,"hourly_value":50},"best_for":"Free includes $5 monthly credits; Plus is $30/user.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://v0.app/pricing"],"evidence":"modeled","confidence":"medium","option_id":"v0__competitor__v0_free","id":"replace-v0--downgrade--v0-by-vercel-free-tier","recipe_id":"replace-v0"},{"type":"switch","name":"Bolt.new (free tier)","product_id":"bolt","url":"https://bolt.new","repo_url":null,"license":"proprietary","covers":["Build UI/app from prompt","GitHub sync"],"missing":["Deploy to Vercel"],"feature_coverage":0.5,"incumbent_plan":"v0 by Vercel Plus/Team","scope":"1 seat. If your use fits the free tier (300K tokens/day, 1M tokens/mo; Bolt branding).","seats":1,"savings":{"baseline_monthly":30,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":360,"year_one_net":310,"payback_months":1.7,"hourly_value":50},"best_for":"Bolt Free gives 1M tokens/mo.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://v0.app/pricing","https://bolt.new/pricing"],"evidence":"modeled","confidence":"medium","option_id":"v0__competitor__bolt_free","id":"replace-v0--switch--bolt-new-free-tier","recipe_id":"replace-v0"},{"type":"switch","name":"GitHub Copilot","product_id":"github_copilot","url":"https://github.com/features/copilot","repo_url":null,"license":"proprietary","covers":["Build UI/app from prompt","GitHub sync"],"missing":["Deploy to Vercel"],"feature_coverage":0.5,"incumbent_plan":"v0 by Vercel Plus/Team","scope":"1 seat. For developers, Copilot Pro ($10) inside your editor can replace per-user v0 seats.","seats":1,"savings":{"baseline_monthly":30,"new_cash_monthly":10,"maintenance_hours_monthly":0,"new_monthly_with_time":10,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":240,"year_one_net":190,"payback_months":2.5,"hourly_value":50},"best_for":"For developers, Copilot Pro ($10) inside your editor can replace per-user v0 seats.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://v0.app/pricing","https://github.com/features/copilot/plans"],"evidence":"modeled","confidence":"medium","option_id":"v0__competitor__github_copilot","id":"replace-v0--switch--github-copilot","recipe_id":"replace-v0"}],"best_path_id":"replace-v0--downgrade--v0-by-vercel-free-tier","best_year_one_net":348,"path_types":["switch","downgrade"],"incumbent_names":["v0 by Vercel"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: AI app builder\n\nReplaces the part of **v0 by Vercel** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Build UI/app from prompt\n- Deploy to Vercel\n\n## Out of scope (do not build)\n- Design mode edits\n- GitHub sync\n- Model choice\n- Shared team credits\n\n## Check before building\n- You only rely on: Build UI/app from prompt, Deploy to Vercel\n- Export your data from v0 by Vercel before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Cost targets\n- Incumbent baseline: $30/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Build UI/app from prompt works end to end with seeded data\n- Deploy to Vercel works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-v0 (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-supergrok","title":"General AI assistant","category":"AI chat","incumbents":["supergrok"],"features_used":["Chat with AI","Web and X search"],"excluded":["Image and video generation (Imagine)","Voice mode","Deep research","Projects","Build (coding)"],"eligibility":["You only rely on: Chat with AI, Web and X search","Export your data from SuperGrok (Grok) before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"bundled","name":"X Premium","product_id":"x_premium","url":"https://x.com","repo_url":null,"license":"proprietary","covers":["Chat with AI","Web and X search","Image and video generation (Imagine)"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"SuperGrok (Grok)","scope":"1 seat. X Premium+ includes Grok access; if you pay for Premium+, a separate SuperGrok may be redundant (check usage limits).","seats":1,"savings":{"baseline_monthly":30,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.5,"setup_total":25,"annual_recurring":360,"year_one_net":335,"payback_months":0.8,"hourly_value":50},"best_for":"X Premium+ includes Grok access; if you pay for Premium+, a separate SuperGrok may be redundant (check usage limits).","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://x.ai/pricing","https://help.x.com/en/using-x/x-premium"],"evidence":"modeled","confidence":"medium","option_id":"supergrok__bundled__x_premium","id":"replace-supergrok--bundled--x-premium","recipe_id":"replace-supergrok"},{"type":"switch","name":"ChatGPT (free tier)","product_id":"chatgpt","url":"https://chatgpt.com","repo_url":null,"license":"proprietary","covers":["Chat with AI","Web and X search","Voice mode"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"SuperGrok (Grok)","scope":"1 seat. If your use fits the free tier (Unlimited text chats with guardrails; limited uploads, image generation, voice, deep research).","seats":1,"savings":{"baseline_monthly":30,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":360,"year_one_net":310,"payback_months":1.7,"hourly_value":50},"best_for":"For general chat, ChatGPT's free tier may be enough; lacks native X search.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://x.ai/pricing","https://chatgpt.com/pricing/"],"evidence":"modeled","confidence":"medium","option_id":"supergrok__competitor__chatgpt_free","id":"replace-supergrok--switch--chatgpt-free-tier","recipe_id":"replace-supergrok"}],"best_path_id":"replace-supergrok--bundled--x-premium","best_year_one_net":335,"path_types":["switch","bundled"],"incumbent_names":["SuperGrok (Grok)"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: General AI assistant\n\nReplaces the part of **SuperGrok (Grok)** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Chat with AI\n- Web and X search\n\n## Out of scope (do not build)\n- Image and video generation (Imagine)\n- Voice mode\n- Deep research\n- Projects\n- Build (coding)\n\n## Check before building\n- You only rely on: Chat with AI, Web and X search\n- Export your data from SuperGrok (Grok) before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Cost targets\n- Incumbent baseline: $30/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Chat with AI works end to end with seeded data\n- Web and X search works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-supergrok (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"form-intake","title":"Branded intake and approval flow","category":"Forms","incumbents":["typeform","jotform","paperform"],"features_used":["Form","Conditional fields","Uploads","Validation","Webhook","CSV export"],"excluded":["Survey research suite","Unlimited third-party integrations","Regulated data guarantees","Visual drag-and-drop designer"],"eligibility":["Tally/free plan fails a real requirement","Sensitive-data handling reviewed","Response volume bounded","Cancellation actually possible"],"entities":["Form","FormVersion","Submission","Upload","Review","Delivery"],"build_scope":"Create a specific form from a schema, deterministic logic, review queue, private uploads and reliable delivery. Do not recreate a visual form platform.","priority":"A","build_request":"Own-stack intake → deterministic quote → approval → CRM; publish why existing form products fail.","source":"catalog_seed","paths":[{"type":"bundled","name":"Google Workspace","product_id":"google_workspace","url":"https://workspace.google.com","repo_url":null,"license":"proprietary","covers":["Form builder","Response collection"],"missing":["Logic and branching"],"feature_coverage":0.67,"incumbent_plan":"Typeform Basic","scope":"1 seat. Google Forms is included with Workspace/Google accounts.","seats":1,"savings":{"baseline_monthly":29,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.5,"setup_total":25,"annual_recurring":348,"year_one_net":323,"payback_months":0.9,"hourly_value":50},"best_for":"Google Forms is included with Workspace/Google accounts.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://www.typeform.com/pricing/","https://workspace.google.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"typeform__bundled__google_workspace","id":"form-intake--bundled--google-workspace","recipe_id":"form-intake"},{"type":"switch","name":"Tally (free tier)","product_id":"tally","url":"https://tally.so","repo_url":null,"license":"proprietary","covers":["Form builder","Logic and branching","Response collection","Payments","File uploads","Integrations"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Typeform Basic","scope":"1 seat. If your use fits the free tier (Unlimited forms and submissions within fair use).","seats":1,"savings":{"baseline_monthly":29,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":348,"year_one_net":298,"payback_months":1.7,"hourly_value":50},"best_for":"Tally Free has unlimited forms and submissions; Typeform Free caps at 100 responses/mo.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://www.typeform.com/pricing/","https://tally.so/pricing"],"evidence":"modeled","confidence":"medium","option_id":"typeform__competitor__tally_free","id":"form-intake--switch--tally-free-tier","recipe_id":"form-intake"},{"type":"open_source","name":"Formbricks","product_id":"formbricks","url":"https://formbricks.com","repo_url":null,"license":"open_source","covers":["Form builder","Logic and branching","Response collection","Integrations"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Typeform Basic","scope":"1 seat. Open-source surveys; self-host free.","seats":1,"savings":{"baseline_monthly":29,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-912,"year_one_net":-1112,"payback_months":null,"hourly_value":50},"best_for":"Open-source surveys; self-host free.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":4,"sources":["https://www.typeform.com/pricing/","https://formbricks.com/pricing"],"evidence":"modeled","confidence":"low","option_id":"typeform__open_source__formbricks","id":"form-intake--open_source--formbricks","recipe_id":"form-intake"},{"type":"switch","name":"Tally","product_id":"tally","url":"https://tally.so","license_note":null,"covers":["Form","Conditional fields","Uploads","Validation","Webhook","CSV export"],"savings":null,"sources":["https://tally.so"],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"form-intake--switch--tally","recipe_id":"form-intake"},{"type":"open_source","name":"Formbricks","product_id":"formbricks","url":"https://formbricks.com","license_note":"Open-core; inspect current repository license and paid-feature boundaries.","covers":["Form","Conditional fields","Uploads","Validation","Webhook","CSV export"],"savings":null,"sources":["https://formbricks.com"],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"form-intake--open_source--formbricks-2","recipe_id":"form-intake"},{"type":"build","name":"Replace with AI: branded intake and approval flow","product_id":null,"covers":["Form","Conditional fields","Uploads","Validation","Webhook","CSV export"],"scope":"Create a specific form from a schema, deterministic logic, review queue, private uploads and reliable delivery. Do not recreate a visual form platform.","savings":null,"sources":[],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"form-intake--build--replace-with-ai-branded-intake-and-approval-flow","recipe_id":"form-intake"}],"best_path_id":"form-intake--bundled--google-workspace","best_year_one_net":323,"path_types":["switch","open_source","build","bundled"],"incumbent_names":["Typeform","Jotform","Paperform"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Branded intake and approval flow\n\nReplaces the part of **Typeform, Jotform, Paperform** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Form\n- Conditional fields\n- Uploads\n- Validation\n- Webhook\n- CSV export\n\n## Out of scope (do not build)\n- Survey research suite\n- Unlimited third-party integrations\n- Regulated data guarantees\n- Visual drag-and-drop designer\n\n## Data model\n- Form, FormVersion, Submission, Upload, Review, Delivery\n\n## Approach\nCreate a specific form from a schema, deterministic logic, review queue, private uploads and reliable delivery. Do not recreate a visual form platform.\n\n## Check before building\n- Tally/free plan fails a real requirement\n- Sensitive-data handling reviewed\n- Response volume bounded\n- Cancellation actually possible\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- Formbricks: https://formbricks.com\n- Formbricks: https://formbricks.com\n\n## Cost targets\n- Incumbent baseline: $29/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Form works end to end with seeded data\n- Conditional fields works end to end with seeded data\n- Uploads works end to end with seeded data\n- Validation works end to end with seeded data\n- Webhook works end to end with seeded data\n- CSV export works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/form-intake (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"basic-status","title":"Independent status page and basic checks","category":"Status pages","incumbents":["statuspage"],"features_used":["Incident posts","Service components","Uptime checks","Email alerts"],"excluded":["SMS parity","Contractual SLA","Enterprise notification routing","Global monitoring parity"],"eligibility":["Independent hosting","Email delivery budget","Backup restore tested","No unsupported guarantee required"],"entities":["Component","Incident","Subscription","ProbeResult"],"build_scope":"Deploy maintained status tooling outside the primary application failure domain; add only required incident workflow.","priority":"A","build_request":"Status-page migration with independence test, subscriber import and incident drills.","source":"catalog_seed","paths":[{"type":"open_source","name":"basic status stack","product_id":"uptime_kuma","url":"https://github.com/louislam/uptime-kuma","license_note":"MIT project; operational independence must be designed, not inferred from a license.","covers":["Incident posts","Service components","Uptime checks","Email alerts"],"scope":"10 service components; basic checks and email incident notices","excluded":"No SMS, enterprise integration parity or contractual SLA. Hosting must be independent.","incumbent_plan":"Statuspage Startup","seats":1,"savings":{"baseline_monthly":99,"new_cash_monthly":15,"maintenance_hours_monthly":0.5,"new_monthly_with_time":40.0,"setup_cash":100,"setup_hours":6,"setup_total":400,"annual_recurring":708,"year_one_net":308,"payback_months":6.8,"hourly_value":50},"sources":["https://www.atlassian.com/software/statuspage/pricing","https://github.com/louislam/uptime-kuma"],"note":"","evidence":"modeled","confidence":"medium","pros":[],"cons":[],"id":"basic-status--open_source--basic-status-stack","recipe_id":"basic-status"},{"type":"switch","name":"OpenStatus","product_id":"openstatus","url":"https://github.com/openstatusHQ/openstatus","license_note":"Inspect current repository license and hosted-plan differences.","covers":["Incident posts","Service components","Uptime checks","Email alerts"],"savings":null,"sources":["https://github.com/openstatusHQ/openstatus"],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"basic-status--switch--openstatus","recipe_id":"basic-status"},{"type":"open_source","name":"OpenStatus","product_id":"openstatus","url":"https://github.com/openstatusHQ/openstatus","license_note":"Inspect current repository license and hosted-plan differences.","covers":["Incident posts","Service components","Uptime checks","Email alerts"],"savings":null,"sources":["https://github.com/openstatusHQ/openstatus"],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"basic-status--open_source--openstatus","recipe_id":"basic-status"},{"type":"build","name":"Replace with AI: independent status page and basic checks","product_id":null,"covers":["Incident posts","Service components","Uptime checks","Email alerts"],"scope":"Deploy maintained status tooling outside the primary application failure domain; add only required incident workflow.","savings":null,"sources":[],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"basic-status--build--replace-with-ai-independent-status-page-and-basic-checks","recipe_id":"basic-status"}],"best_path_id":"basic-status--open_source--basic-status-stack","best_year_one_net":308,"path_types":["switch","open_source","build"],"incumbent_names":["Statuspage"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Independent status page and basic checks\n\nReplaces the part of **Statuspage** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Incident posts\n- Service components\n- Uptime checks\n- Email alerts\n\n## Out of scope (do not build)\n- SMS parity\n- Contractual SLA\n- Enterprise notification routing\n- Global monitoring parity\n\n## Data model\n- Component, Incident, Subscription, ProbeResult\n\n## Approach\nDeploy maintained status tooling outside the primary application failure domain; add only required incident workflow.\n\n## Check before building\n- Independent hosting\n- Email delivery budget\n- Backup restore tested\n- No unsupported guarantee required\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- basic status stack: https://github.com/louislam/uptime-kuma\n- OpenStatus: https://github.com/openstatusHQ/openstatus\n\n## Cost targets\n- Incumbent baseline: $99/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Incident posts works end to end with seeded data\n- Service components works end to end with seeded data\n- Uptime checks works end to end with seeded data\n- Email alerts works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/basic-status (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-bolt","title":"AI app builder","category":"App builders","incumbents":["bolt"],"features_used":["Build app from prompt","In-browser dev environment","Hosting and custom domains"],"excluded":["Databases","Export/download code","GitHub integration"],"eligibility":["You only rely on: Build app from prompt, In-browser dev environment, Hosting and custom domains","Export your data from Bolt.new before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"downgrade","name":"Bolt.new (free tier)","product_id":"bolt","url":"https://bolt.new","repo_url":null,"license":"proprietary","covers":["Build app from prompt","In-browser dev environment","Hosting and custom domains","Databases"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Bolt.new Pro","scope":"1 seat. If your use fits the free tier (300K tokens/day, 1M tokens/mo; Bolt branding).","seats":1,"savings":{"baseline_monthly":25,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.25,"setup_total":12,"annual_recurring":300,"year_one_net":288,"payback_months":0.5,"hourly_value":50},"best_for":"Free: 1M tokens/mo with Bolt branding; Pro $25 only if you exceed that or need no branding.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://bolt.new/pricing"],"evidence":"modeled","confidence":"medium","option_id":"bolt__competitor__bolt_free","id":"replace-bolt--downgrade--bolt-new-free-tier","recipe_id":"replace-bolt"},{"type":"switch","name":"v0 by Vercel (free tier)","product_id":"v0","url":"https://v0.app","repo_url":null,"license":"proprietary","covers":["Build app from prompt","Hosting and custom domains","GitHub integration"],"missing":["In-browser dev environment"],"feature_coverage":0.67,"incumbent_plan":"Bolt.new Pro","scope":"1 seat. If your use fits the free tier ($5 included monthly credits; deploy to Vercel).","seats":1,"savings":{"baseline_monthly":25,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":300,"year_one_net":250,"payback_months":2.0,"hourly_value":50},"best_for":"v0 Free includes $5 monthly credits and Vercel deploys.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://bolt.new/pricing","https://v0.app/pricing"],"evidence":"modeled","confidence":"medium","option_id":"bolt__competitor__v0_free","id":"replace-bolt--switch--v0-by-vercel-free-tier","recipe_id":"replace-bolt"},{"type":"switch","name":"Cursor","product_id":"cursor","url":"https://cursor.com","repo_url":null,"license":"proprietary","covers":["Build app from prompt","Export/download code"],"missing":["In-browser dev environment","Hosting and custom domains"],"feature_coverage":0.33,"incumbent_plan":"Bolt.new Pro","scope":"1 seat. Export the code and continue in a $10-20/mo coding assistant.","seats":1,"savings":{"baseline_monthly":25,"new_cash_monthly":20,"maintenance_hours_monthly":0,"new_monthly_with_time":20,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":60,"year_one_net":10,"payback_months":10.0,"hourly_value":50},"best_for":"Export the code and continue in a $10-20/mo coding assistant.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://bolt.new/pricing","https://cursor.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"bolt__competitor__cursor","id":"replace-bolt--switch--cursor","recipe_id":"replace-bolt"}],"best_path_id":"replace-bolt--downgrade--bolt-new-free-tier","best_year_one_net":288,"path_types":["switch","downgrade"],"incumbent_names":["Bolt.new"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: AI app builder\n\nReplaces the part of **Bolt.new** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Build app from prompt\n- In-browser dev environment\n- Hosting and custom domains\n\n## Out of scope (do not build)\n- Databases\n- Export/download code\n- GitHub integration\n\n## Check before building\n- You only rely on: Build app from prompt, In-browser dev environment, Hosting and custom domains\n- Export your data from Bolt.new before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Cost targets\n- Incumbent baseline: $25/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Build app from prompt works end to end with seeded data\n- In-browser dev environment works end to end with seeded data\n- Hosting and custom domains works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-bolt (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-supabase","title":"Backend as a service","category":"Databases","incumbents":["supabase"],"features_used":["Postgres database","Auth","File storage"],"excluded":["Realtime","Edge functions","Vector (pgvector)","Auto-generated APIs","Daily backups"],"eligibility":["You only rely on: Postgres database, Auth, File storage","Export your data from Supabase before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"downgrade","name":"Supabase (free tier)","product_id":"supabase","url":"https://supabase.com","repo_url":null,"license":"open_source","covers":["Postgres database","Auth","File storage","Realtime","Edge functions"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Supabase Pro","scope":"1 seat. If your use fits the free tier (2 active projects; paused after 1 week inactivity; 1 GB file storage).","seats":1,"savings":{"baseline_monthly":25,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.25,"setup_total":12,"annual_recurring":300,"year_one_net":288,"payback_months":0.5,"hourly_value":50},"best_for":"Free: 2 active projects, but paused after 1 week inactivity; Pro $25/mo for production.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":1,"sources":["https://supabase.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"supabase__competitor__supabase_free","id":"replace-supabase--downgrade--supabase-free-tier","recipe_id":"replace-supabase"},{"type":"switch","name":"Neon (free tier)","product_id":"neon","url":"https://neon.com","repo_url":null,"license":"proprietary","covers":["Postgres database","Vector (pgvector)","Daily backups"],"missing":["Auth","File storage"],"feature_coverage":0.33,"incumbent_plan":"Supabase Pro","scope":"1 seat. If your use fits the free tier (0.5 GB per project; 100 projects; scale to zero).","seats":1,"savings":{"baseline_monthly":25,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":300,"year_one_net":250,"payback_months":2.0,"hourly_value":50},"best_for":"If you only use the database, Neon Free (0.5 GB/project, scale to zero) may cover it.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":1,"sources":["https://supabase.com/pricing","https://neon.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"supabase__competitor__neon_free","id":"replace-supabase--switch--neon-free-tier","recipe_id":"replace-supabase"},{"type":"open_source","name":"Supabase (self-hosted)","product_id":"supabase","url":"https://supabase.com","repo_url":null,"license":"open_source","covers":["Postgres database","Auth","File storage","Realtime","Auto-generated APIs"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Supabase Pro","scope":"1 seat. Supabase is open source; self-host with Docker on a VPS. You own backups and upgrades.","seats":1,"savings":{"baseline_monthly":25,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-960,"year_one_net":-1160,"payback_months":null,"hourly_value":50},"best_for":"Supabase is open source; self-host with Docker on a VPS. You own backups and upgrades.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":4,"sources":["https://supabase.com/pricing"],"evidence":"modeled","confidence":"low","option_id":"supabase__open_source__supabase","id":"replace-supabase--open_source--supabase-self-hosted","recipe_id":"replace-supabase"}],"best_path_id":"replace-supabase--downgrade--supabase-free-tier","best_year_one_net":288,"path_types":["switch","downgrade","open_source"],"incumbent_names":["Supabase"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Backend as a service\n\nReplaces the part of **Supabase** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Postgres database\n- Auth\n- File storage\n\n## Out of scope (do not build)\n- Realtime\n- Edge functions\n- Vector (pgvector)\n- Auto-generated APIs\n- Daily backups\n\n## Check before building\n- You only rely on: Postgres database, Auth, File storage\n- Export your data from Supabase before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- Supabase (self-hosted): https://supabase.com\n\n## Cost targets\n- Incumbent baseline: $25/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Postgres database works end to end with seeded data\n- Auth works end to end with seeded data\n- File storage works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-supabase (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-serpapi","title":"Search results API","category":"SEO data","incumbents":["serpapi"],"features_used":["Google search results API","Structured JSON output"],"excluded":["Other engines (Bing, YouTube, Maps)","Location targeting","Legal shield","Account usage API"],"eligibility":["You only rely on: Google search results API, Structured JSON output","Export your data from SerpApi before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"downgrade","name":"SerpApi (free tier)","product_id":"serpapi","url":"https://serpapi.com","repo_url":null,"license":"proprietary","covers":["Google search results API","Structured JSON output"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"SerpApi Starter","scope":"1 seat. If your use fits the free tier (250 searches/mo).","seats":1,"savings":{"baseline_monthly":25,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.25,"setup_total":12,"annual_recurring":300,"year_one_net":288,"payback_months":0.5,"hourly_value":50},"best_for":"Free: 250 searches/mo.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://serpapi.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"serpapi__competitor__serpapi_free","id":"replace-serpapi--downgrade--serpapi-free-tier","recipe_id":"replace-serpapi"}],"best_path_id":"replace-serpapi--downgrade--serpapi-free-tier","best_year_one_net":288,"path_types":["downgrade"],"incumbent_names":["SerpApi"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Search results API\n\nReplaces the part of **SerpApi** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Google search results API\n- Structured JSON output\n\n## Out of scope (do not build)\n- Other engines (Bing, YouTube, Maps)\n- Location targeting\n- Legal shield\n- Account usage API\n\n## Check before building\n- You only rely on: Google search results API, Structured JSON output\n- Export your data from SerpApi before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Cost targets\n- Incumbent baseline: $25/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Google search results API works end to end with seeded data\n- Structured JSON output works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-serpapi (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-cursor","title":"AI code editor","category":"AI coding","incumbents":["cursor"],"features_used":["AI agent in editor","Tab autocomplete","Chat with codebase"],"excluded":["Frontier model choice","Cloud/background agents","CLI agent","Code review bot","MCP, rules and skills"],"eligibility":["You only rely on: AI agent in editor, Tab autocomplete, Chat with codebase","Export your data from Cursor before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"downgrade","name":"Cursor (free tier)","product_id":"cursor","url":"https://cursor.com","repo_url":null,"license":"proprietary","covers":["AI agent in editor","Tab autocomplete"],"missing":["Chat with codebase"],"feature_coverage":0.67,"incumbent_plan":"Cursor Pro (Individual)","scope":"1 seat. If your use fits the free tier (Hobby: limited Agent requests and Tab completions).","seats":1,"savings":{"baseline_monthly":20,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.25,"setup_total":12,"annual_recurring":240,"year_one_net":228,"payback_months":0.6,"hourly_value":50},"best_for":"Hobby tier is free with limited Agent requests and Tab completions.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://cursor.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"cursor__competitor__cursor_free","id":"replace-cursor--downgrade--cursor-free-tier","recipe_id":"replace-cursor"},{"type":"switch","name":"GitHub Copilot","product_id":"github_copilot","url":"https://github.com/features/copilot","repo_url":null,"license":"proprietary","covers":["AI agent in editor","Tab autocomplete","Chat with codebase","Frontier model choice","CLI agent","Code review bot"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Cursor Pro (Individual)","scope":"1 seat. Copilot Pro is $10/mo vs Cursor Pro $20, with agent mode, CLI and code review; works in VS Code/JetBrains.","seats":1,"savings":{"baseline_monthly":20,"new_cash_monthly":10,"maintenance_hours_monthly":0,"new_monthly_with_time":10,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":120,"year_one_net":70,"payback_months":5.0,"hourly_value":50},"best_for":"Copilot Pro is $10/mo vs Cursor Pro $20, with agent mode, CLI and code review; works in VS Code/JetBrains.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://cursor.com/pricing","https://github.com/features/copilot/plans"],"evidence":"modeled","confidence":"medium","option_id":"cursor__competitor__github_copilot","id":"replace-cursor--switch--github-copilot","recipe_id":"replace-cursor"},{"type":"open_source","name":"Cline","product_id":"cline","url":"https://cline.bot","repo_url":null,"license":"open_source","covers":["AI agent in editor","Chat with codebase","Frontier model choice","MCP, rules and skills"],"missing":["Tab autocomplete"],"feature_coverage":0.67,"incumbent_plan":"Cursor Pro (Individual)","scope":"1 seat. Free open-source agent in VS Code; pay only for model tokens with your own key. No tab autocomplete.","seats":1,"savings":{"baseline_monthly":20,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-1020,"year_one_net":-1220,"payback_months":null,"hourly_value":50},"best_for":"Free open-source agent in VS Code; pay only for model tokens with your own key. No tab autocomplete.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":4,"sources":["https://cursor.com/pricing","https://cline.bot/pricing"],"evidence":"modeled","confidence":"low","option_id":"cursor__open_source__cline","id":"replace-cursor--open_source--cline","recipe_id":"replace-cursor"},{"type":"open_source","name":"Aider","product_id":"aider","url":"https://aider.chat","repo_url":null,"license":"open_source","covers":["AI agent in editor","Chat with codebase","Frontier model choice"],"missing":["Tab autocomplete"],"feature_coverage":0.67,"incumbent_plan":"Cursor Pro (Individual)","scope":"1 seat. Free terminal coding agent with any model; pay only API usage.","seats":1,"savings":{"baseline_monthly":20,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-1020,"year_one_net":-1220,"payback_months":null,"hourly_value":50},"best_for":"Free terminal coding agent with any model; pay only API usage.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":4,"sources":["https://cursor.com/pricing","https://aider.chat/"],"evidence":"modeled","confidence":"low","option_id":"cursor__open_source__aider","id":"replace-cursor--open_source--aider","recipe_id":"replace-cursor"}],"best_path_id":"replace-cursor--downgrade--cursor-free-tier","best_year_one_net":228,"path_types":["switch","downgrade","open_source"],"incumbent_names":["Cursor"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: AI code editor\n\nReplaces the part of **Cursor** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- AI agent in editor\n- Tab autocomplete\n- Chat with codebase\n\n## Out of scope (do not build)\n- Frontier model choice\n- Cloud/background agents\n- CLI agent\n- Code review bot\n- MCP, rules and skills\n\n## Check before building\n- You only rely on: AI agent in editor, Tab autocomplete, Chat with codebase\n- Export your data from Cursor before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- Cline: https://cline.bot\n- Aider: https://aider.chat\n\n## Cost targets\n- Incumbent baseline: $20/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- AI agent in editor works end to end with seeded data\n- Tab autocomplete works end to end with seeded data\n- Chat with codebase works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-cursor (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-windsurf","title":"AI code editor","category":"AI coding","incumbents":["windsurf"],"features_used":["AI agent (Cascade)","Tab autocomplete","Frontier model choice"],"excluded":["Cloud agents (Devin)","Inline edits","Previews and deploys"],"eligibility":["You only rely on: AI agent (Cascade), Tab autocomplete, Frontier model choice","Export your data from Windsurf before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"downgrade","name":"Windsurf (free tier)","product_id":"windsurf","url":"https://windsurf.com","repo_url":null,"license":"proprietary","covers":["Tab autocomplete","Inline edits"],"missing":["AI agent (Cascade)","Frontier model choice"],"feature_coverage":0.33,"incumbent_plan":"Windsurf Pro","scope":"1 seat. If your use fits the free tier (Light agent quota, unlimited inline edits and tab).","seats":1,"savings":{"baseline_monthly":20,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.25,"setup_total":12,"annual_recurring":240,"year_one_net":228,"payback_months":0.6,"hourly_value":50},"best_for":"Free plan keeps unlimited inline edits and tab with a light agent quota.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://windsurf.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"windsurf__competitor__windsurf_free","id":"replace-windsurf--downgrade--windsurf-free-tier","recipe_id":"replace-windsurf"},{"type":"switch","name":"GitHub Copilot","product_id":"github_copilot","url":"https://github.com/features/copilot","repo_url":null,"license":"proprietary","covers":["AI agent (Cascade)","Tab autocomplete","Frontier model choice"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Windsurf Pro","scope":"1 seat. Copilot Pro $10/mo vs Windsurf Pro $20; Windsurf Teams costs $80/mo + $40/seat.","seats":1,"savings":{"baseline_monthly":20,"new_cash_monthly":10,"maintenance_hours_monthly":0,"new_monthly_with_time":10,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":120,"year_one_net":70,"payback_months":5.0,"hourly_value":50},"best_for":"Copilot Pro $10/mo vs Windsurf Pro $20; Windsurf Teams costs $80/mo + $40/seat.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://windsurf.com/pricing","https://github.com/features/copilot/plans"],"evidence":"modeled","confidence":"medium","option_id":"windsurf__competitor__github_copilot","id":"replace-windsurf--switch--github-copilot","recipe_id":"replace-windsurf"},{"type":"open_source","name":"Cline","product_id":"cline","url":"https://cline.bot","repo_url":null,"license":"open_source","covers":["AI agent (Cascade)","Frontier model choice"],"missing":["Tab autocomplete"],"feature_coverage":0.67,"incumbent_plan":"Windsurf Pro","scope":"1 seat. Free open-source agent; pay only model tokens.","seats":1,"savings":{"baseline_monthly":20,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-1020,"year_one_net":-1220,"payback_months":null,"hourly_value":50},"best_for":"Free open-source agent; pay only model tokens.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":4,"sources":["https://windsurf.com/pricing","https://cline.bot/pricing"],"evidence":"modeled","confidence":"low","option_id":"windsurf__open_source__cline","id":"replace-windsurf--open_source--cline","recipe_id":"replace-windsurf"}],"best_path_id":"replace-windsurf--downgrade--windsurf-free-tier","best_year_one_net":228,"path_types":["switch","downgrade","open_source"],"incumbent_names":["Windsurf"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: AI code editor\n\nReplaces the part of **Windsurf** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- AI agent (Cascade)\n- Tab autocomplete\n- Frontier model choice\n\n## Out of scope (do not build)\n- Cloud agents (Devin)\n- Inline edits\n- Previews and deploys\n\n## Check before building\n- You only rely on: AI agent (Cascade), Tab autocomplete, Frontier model choice\n- Export your data from Windsurf before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- Cline: https://cline.bot\n\n## Cost targets\n- Incumbent baseline: $20/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- AI agent (Cascade) works end to end with seeded data\n- Tab autocomplete works end to end with seeded data\n- Frontier model choice works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-windsurf (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"agent-mail-wrapper","title":"Application-specific agent inbox wrapper","category":"Email infrastructure","incumbents":["agentmail"],"features_used":["Logical inboxes","Send","Receive","Threads","Custom-domain routing"],"excluded":["Mail-server operation","Reputation parity","Provider abuse handling","Full deliverability platform","SOC 2 parity"],"eligibility":["Volume and domain limits modeled","Domain control verified","Bounce/suppression handling","Isolation and webhook security","Existing cheaper tier checked"],"entities":["Inbox","Message","Thread","Suppression","Domain"],"build_scope":"Retain an email infrastructure provider; implement app-specific inbox state and routing only. Compare AgentMail downgrade/add-ons first.","priority":"C","build_request":"Specialized agent routing and ownership layer on managed email transport.","source":"catalog_seed","paths":[{"type":"downgrade","name":"AgentMail (free tier)","product_id":"agentmail","url":"https://www.agentmail.to","repo_url":null,"license":"proprietary","covers":["Create inboxes via API","Send email","Receive email and webhooks"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"AgentMail Developer","scope":"1 seat. If your use fits the free tier (3 inboxes, 3,000 emails/mo, 3 GB storage).","seats":1,"savings":{"baseline_monthly":20,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.25,"setup_total":12,"annual_recurring":240,"year_one_net":228,"payback_months":0.6,"hourly_value":50},"best_for":"Free: 3 inboxes and 3,000 emails/mo; Developer $20 only for more inboxes/domains.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://www.agentmail.to/pricing"],"evidence":"modeled","confidence":"medium","option_id":"agentmail__competitor__agentmail_free","id":"agent-mail-wrapper--downgrade--agentmail-free-tier","recipe_id":"agent-mail-wrapper"},{"type":"switch","name":"Resend (free tier)","product_id":"resend","url":"https://resend.com","repo_url":null,"license":"proprietary","covers":["Send email","Receive email and webhooks","Custom domains"],"missing":["Create inboxes via API"],"feature_coverage":0.67,"incumbent_plan":"AgentMail Developer","scope":"1 seat. If your use fits the free tier (3,000 emails/mo).","seats":1,"savings":{"baseline_monthly":20,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":240,"year_one_net":190,"payback_months":2.5,"hourly_value":50},"best_for":"Resend Free sends 3,000 emails/mo and supports inbound; you build inbox/thread logic yourself.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://www.agentmail.to/pricing","https://resend.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"agentmail__competitor__resend_free","id":"agent-mail-wrapper--switch--resend-free-tier","recipe_id":"agent-mail-wrapper"},{"type":"build","name":"Replace with AI: application-specific agent inbox wrapper","product_id":null,"covers":["Logical inboxes","Send","Receive","Threads","Custom-domain routing"],"scope":"Retain an email infrastructure provider; implement app-specific inbox state and routing only. Compare AgentMail downgrade/add-ons first.","savings":null,"sources":[],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"agent-mail-wrapper--build--replace-with-ai-application-specific-agent-inbox-wrapper","recipe_id":"agent-mail-wrapper"}],"best_path_id":"agent-mail-wrapper--downgrade--agentmail-free-tier","best_year_one_net":228,"path_types":["switch","downgrade","build"],"incumbent_names":["AgentMail"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Application-specific agent inbox wrapper\n\nReplaces the part of **AgentMail** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Logical inboxes\n- Send\n- Receive\n- Threads\n- Custom-domain routing\n\n## Out of scope (do not build)\n- Mail-server operation\n- Reputation parity\n- Provider abuse handling\n- Full deliverability platform\n- SOC 2 parity\n\n## Data model\n- Inbox, Message, Thread, Suppression, Domain\n\n## Approach\nRetain an email infrastructure provider; implement app-specific inbox state and routing only. Compare AgentMail downgrade/add-ons first.\n\n## Check before building\n- Volume and domain limits modeled\n- Domain control verified\n- Bounce/suppression handling\n- Isolation and webhook security\n- Existing cheaper tier checked\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Cost targets\n- Incumbent baseline: $20/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Logical inboxes works end to end with seeded data\n- Send works end to end with seeded data\n- Receive works end to end with seeded data\n- Threads works end to end with seeded data\n- Custom-domain routing works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/agent-mail-wrapper (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-browserbase","title":"Headless browser infra","category":"AI agent infra","incumbents":["browserbase"],"features_used":["Hosted headless browsers"],"excluded":["Session recordings","Proxies","Stealth and captcha handling","Search API","Fetch/extract API","Stagehand SDK"],"eligibility":["You only rely on: Hosted headless browsers","Export your data from Browserbase before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"downgrade","name":"Browserbase (free tier)","product_id":"browserbase","url":"https://www.browserbase.com","repo_url":null,"license":"proprietary","covers":["Hosted headless browsers","Session recordings"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Browserbase Developer","scope":"1 seat. If your use fits the free tier (Explore/prototype tier; $5 model tokens).","seats":1,"savings":{"baseline_monthly":20,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.25,"setup_total":12,"annual_recurring":240,"year_one_net":228,"payback_months":0.6,"hourly_value":50},"best_for":"Free plan for prototyping; Developer is $20/mo with 100 browser hours.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://www.browserbase.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"browserbase__competitor__browserbase_free","id":"replace-browserbase--downgrade--browserbase-free-tier","recipe_id":"replace-browserbase"}],"best_path_id":"replace-browserbase--downgrade--browserbase-free-tier","best_year_one_net":228,"path_types":["downgrade"],"incumbent_names":["Browserbase"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Headless browser infra\n\nReplaces the part of **Browserbase** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Hosted headless browsers\n\n## Out of scope (do not build)\n- Session recordings\n- Proxies\n- Stealth and captcha handling\n- Search API\n- Fetch/extract API\n- Stagehand SDK\n\n## Check before building\n- You only rely on: Hosted headless browsers\n- Export your data from Browserbase before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Cost targets\n- Incumbent baseline: $20/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Hosted headless browsers works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-browserbase (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-resend","title":"Transactional email API","category":"Email infrastructure","incumbents":["resend"],"features_used":["Send email API","Custom domains and DKIM"],"excluded":["Receive email (inbound)","Webhooks and events","React Email templates","Broadcasts/marketing emails","Logs"],"eligibility":["You only rely on: Send email API, Custom domains and DKIM","Export your data from Resend before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"downgrade","name":"Resend (free tier)","product_id":"resend","url":"https://resend.com","repo_url":null,"license":"proprietary","covers":["Send email API","Custom domains and DKIM","Webhooks and events"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Resend Pro","scope":"1 seat. If your use fits the free tier (3,000 emails/mo).","seats":1,"savings":{"baseline_monthly":20,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.25,"setup_total":12,"annual_recurring":240,"year_one_net":228,"payback_months":0.6,"hourly_value":50},"best_for":"Free sends 3,000 emails/mo; Pro $20 only above that.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://resend.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"resend__competitor__resend_free","id":"replace-resend--downgrade--resend-free-tier","recipe_id":"replace-resend"}],"best_path_id":"replace-resend--downgrade--resend-free-tier","best_year_one_net":228,"path_types":["downgrade"],"incumbent_names":["Resend"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Transactional email API\n\nReplaces the part of **Resend** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Send email API\n- Custom domains and DKIM\n\n## Out of scope (do not build)\n- Receive email (inbound)\n- Webhooks and events\n- React Email templates\n- Broadcasts/marketing emails\n- Logs\n\n## Check before building\n- You only rely on: Send email API, Custom domains and DKIM\n- Export your data from Resend before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Cost targets\n- Incumbent baseline: $20/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Send email API works end to end with seeded data\n- Custom domains and DKIM works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-resend (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-fathom","title":"Meeting notes AI","category":"Transcription","incumbents":["fathom"],"features_used":["Meeting recording","Transcription","AI summaries"],"excluded":["Action items","CRM sync","Clips and highlights"],"eligibility":["You only rely on: Meeting recording, Transcription, AI summaries","Export your data from Fathom before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"downgrade","name":"Fathom (free tier)","product_id":"fathom","url":"https://www.fathom.ai","repo_url":null,"license":"proprietary","covers":["Meeting recording","Transcription","AI summaries"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Fathom Team","scope":"1 seat. If your use fits the free tier (Unlimited recordings and basic summaries).","seats":1,"savings":{"baseline_monthly":19,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.25,"setup_total":12,"annual_recurring":228,"year_one_net":216,"payback_months":0.6,"hourly_value":50},"best_for":"Free forever with unlimited recordings.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://www.fathom.ai/pricing"],"evidence":"modeled","confidence":"medium","option_id":"fathom__competitor__fathom_free","id":"replace-fathom--downgrade--fathom-free-tier","recipe_id":"replace-fathom"},{"type":"open_source","name":"whisper.cpp","product_id":"whisper_cpp","url":"https://github.com/ggml-org/whisper.cpp","repo_url":null,"license":"open_source","covers":["Transcription"],"missing":["Meeting recording","AI summaries"],"feature_coverage":0.33,"incumbent_plan":"Fathom Team","scope":"1 seat. Local transcription of saved recordings.","seats":1,"savings":{"baseline_monthly":19,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-1032,"year_one_net":-1232,"payback_months":null,"hourly_value":50},"best_for":"Local transcription of saved recordings.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":4,"sources":["https://www.fathom.ai/pricing","https://github.com/ggml-org/whisper.cpp"],"evidence":"modeled","confidence":"low","option_id":"fathom__open_source__whisper_cpp","id":"replace-fathom--open_source--whisper-cpp","recipe_id":"replace-fathom"}],"best_path_id":"replace-fathom--downgrade--fathom-free-tier","best_year_one_net":216,"path_types":["downgrade","open_source"],"incumbent_names":["Fathom"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Meeting notes AI\n\nReplaces the part of **Fathom** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Meeting recording\n- Transcription\n- AI summaries\n\n## Out of scope (do not build)\n- Action items\n- CRM sync\n- Clips and highlights\n\n## Check before building\n- You only rely on: Meeting recording, Transcription, AI summaries\n- Export your data from Fathom before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- whisper.cpp: https://github.com/ggml-org/whisper.cpp\n\n## Cost targets\n- Incumbent baseline: $19/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Meeting recording works end to end with seeded data\n- Transcription works end to end with seeded data\n- AI summaries works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-fathom (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-chatgpt","title":"General AI assistant","category":"AI chat","incumbents":["chatgpt"],"features_used":["Chat with AI","Web search","File and image uploads","Image generation"],"excluded":["Deep research","Voice mode","Projects","Custom GPTs","Memory","Codex coding agent"],"eligibility":["You only rely on: Chat with AI, Web search, File and image uploads, Image generation","Export your data from ChatGPT before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"bundled","name":"Google AI Pro (Gemini)","product_id":"google_ai_pro","url":"https://gemini.google","repo_url":null,"license":"proprietary","covers":["Chat with AI","Deep research","Image generation","Web search"],"missing":["File and image uploads"],"feature_coverage":0.75,"incumbent_plan":"ChatGPT Plus","scope":"1 seat. If you already pay for Google AI Pro (e.g., for 5 TB storage), Gemini covers most day-to-day ChatGPT use.","seats":1,"savings":{"baseline_monthly":20,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.5,"setup_total":25,"annual_recurring":240,"year_one_net":215,"payback_months":1.2,"hourly_value":50},"best_for":"If you already pay for Google AI Pro (e.g., for 5 TB storage), Gemini covers most day-to-day ChatGPT use.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://chatgpt.com/pricing/","https://one.google.com/about/google-ai-plans/"],"evidence":"modeled","confidence":"medium","option_id":"chatgpt__bundled__google_ai_pro","id":"replace-chatgpt--bundled--google-ai-pro-gemini","recipe_id":"replace-chatgpt"},{"type":"open_source","name":"Open WebUI","product_id":"open_webui","url":"https://openwebui.com","repo_url":null,"license":"source_available","covers":["Chat with AI","Web search","File and image uploads","Memory"],"missing":["Image generation"],"feature_coverage":0.75,"incumbent_plan":"ChatGPT Plus","scope":"1 seat. Self-hosted ChatGPT-style UI; plug in OpenRouter/OpenAI API keys or local Ollama models. You run and maintain it.","seats":1,"savings":{"baseline_monthly":20,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-1020,"year_one_net":-1220,"payback_months":null,"hourly_value":50},"best_for":"Self-hosted ChatGPT-style UI; plug in OpenRouter/OpenAI API keys or local Ollama models. You run and maintain it.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":4,"sources":["https://chatgpt.com/pricing/","https://openwebui.com/"],"evidence":"modeled","confidence":"low","option_id":"chatgpt__open_source__open_webui","id":"replace-chatgpt--open_source--open-webui","recipe_id":"replace-chatgpt"}],"best_path_id":"replace-chatgpt--bundled--google-ai-pro-gemini","best_year_one_net":215,"path_types":["open_source","bundled"],"incumbent_names":["ChatGPT"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: General AI assistant\n\nReplaces the part of **ChatGPT** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Chat with AI\n- Web search\n- File and image uploads\n- Image generation\n\n## Out of scope (do not build)\n- Deep research\n- Voice mode\n- Projects\n- Custom GPTs\n- Memory\n- Codex coding agent\n\n## Check before building\n- You only rely on: Chat with AI, Web search, File and image uploads, Image generation\n- Export your data from ChatGPT before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- Open WebUI: https://openwebui.com\n\n## Cost targets\n- Incumbent baseline: $20/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Chat with AI works end to end with seeded data\n- Web search works end to end with seeded data\n- File and image uploads works end to end with seeded data\n- Image generation works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-chatgpt (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-loom","title":"Async screen recording","category":"Video recording","incumbents":["loom"],"features_used":["Screen and camera recording","Instant share links"],"excluded":["Viewer comments and reactions","Video editing","AI summaries","Viewer analytics"],"eligibility":["You only rely on: Screen and camera recording, Instant share links","Export your data from Loom before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"downgrade","name":"Loom (free tier)","product_id":"loom","url":"https://www.loom.com","repo_url":null,"license":"proprietary","covers":["Screen and camera recording","Instant share links","Viewer comments and reactions"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Loom Business","scope":"1 seat. If your use fits the free tier (Starter: 25 videos, 5-minute limit).","seats":1,"savings":{"baseline_monthly":18,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.25,"setup_total":12,"annual_recurring":216,"year_one_net":204,"payback_months":0.7,"hourly_value":50},"best_for":"Starter is free: 25 videos, 5-minute limit.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://www.atlassian.com/software/loom/pricing"],"evidence":"modeled","confidence":"medium","option_id":"loom__competitor__loom_free","id":"replace-loom--downgrade--loom-free-tier","recipe_id":"replace-loom"},{"type":"open_source","name":"Cap","product_id":"cap","url":"https://cap.so","repo_url":null,"license":"open_source","covers":["Screen and camera recording","Instant share links","Viewer comments and reactions","Video editing","AI summaries"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Loom Business","scope":"1 seat. Open-source Loom alternative; $29/yr local license or $8.16/mo cloud.","seats":1,"savings":{"baseline_monthly":18,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-1044,"year_one_net":-1244,"payback_months":null,"hourly_value":50},"best_for":"Open-source Loom alternative; $29/yr local license or $8.16/mo cloud.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":4,"sources":["https://www.atlassian.com/software/loom/pricing","https://cap.so/pricing"],"evidence":"modeled","confidence":"low","option_id":"loom__open_source__cap","id":"replace-loom--open_source--cap","recipe_id":"replace-loom"},{"type":"open_source","name":"OBS Studio","product_id":"obs_studio","url":"https://obsproject.com","repo_url":null,"license":"open_source","covers":["Screen and camera recording"],"missing":["Instant share links"],"feature_coverage":0.5,"incumbent_plan":"Loom Business","scope":"1 seat. Free local recording; share files via your own storage.","seats":1,"savings":{"baseline_monthly":18,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-1044,"year_one_net":-1244,"payback_months":null,"hourly_value":50},"best_for":"Free local recording; share files via your own storage.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":4,"sources":["https://www.atlassian.com/software/loom/pricing","https://obsproject.com/"],"evidence":"modeled","confidence":"low","option_id":"loom__open_source__obs_studio","id":"replace-loom--open_source--obs-studio","recipe_id":"replace-loom"}],"best_path_id":"replace-loom--downgrade--loom-free-tier","best_year_one_net":204,"path_types":["downgrade","open_source"],"incumbent_names":["Loom"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Async screen recording\n\nReplaces the part of **Loom** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Screen and camera recording\n- Instant share links\n\n## Out of scope (do not build)\n- Viewer comments and reactions\n- Video editing\n- AI summaries\n- Viewer analytics\n\n## Check before building\n- You only rely on: Screen and camera recording, Instant share links\n- Export your data from Loom before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- Cap: https://cap.so\n- OBS Studio: https://obsproject.com\n\n## Cost targets\n- Incumbent baseline: $18/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Screen and camera recording works end to end with seeded data\n- Instant share links works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-loom (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-zoom","title":"Video meetings","category":"Team chat","incumbents":["zoom"],"features_used":["Video meetings","Screen sharing"],"excluded":["Cloud recording","AI Companion summaries","Team chat","Whiteboard","Webinars add-on"],"eligibility":["You only rely on: Video meetings, Screen sharing","Export your data from Zoom Workplace before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"downgrade","name":"Zoom Workplace (free tier)","product_id":"zoom","url":"https://zoom.us","repo_url":null,"license":"proprietary","covers":["Video meetings","Screen sharing"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Zoom Workplace Pro","scope":"1 seat. If your use fits the free tier (Basic: 40-minute meetings).","seats":1,"savings":{"baseline_monthly":16.99,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.25,"setup_total":12,"annual_recurring":204,"year_one_net":192,"payback_months":0.7,"hourly_value":50},"best_for":"Basic is free with 40-minute meetings.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://zoom.us/pricing"],"evidence":"modeled","confidence":"medium","option_id":"zoom__competitor__zoom_free","id":"replace-zoom--downgrade--zoom-workplace-free-tier","recipe_id":"replace-zoom"},{"type":"bundled","name":"Google Workspace","product_id":"google_workspace","url":"https://workspace.google.com","repo_url":null,"license":"proprietary","covers":["Video meetings","Screen sharing","Cloud recording","Team chat"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Zoom Workplace Pro","scope":"1 seat. Google Meet is included with Workspace.","seats":1,"savings":{"baseline_monthly":16.99,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.5,"setup_total":25,"annual_recurring":204,"year_one_net":179,"payback_months":1.5,"hourly_value":50},"best_for":"Google Meet is included with Workspace.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://zoom.us/pricing","https://workspace.google.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"zoom__bundled__google_workspace","id":"replace-zoom--bundled--google-workspace","recipe_id":"replace-zoom"},{"type":"bundled","name":"Microsoft 365 Business","product_id":"microsoft_365","url":"https://www.microsoft.com/microsoft-365/business","repo_url":null,"license":"proprietary","covers":["Video meetings","Screen sharing","Team chat"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Zoom Workplace Pro","scope":"1 seat. Teams meetings are included in Microsoft 365 Business.","seats":1,"savings":{"baseline_monthly":16.99,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.5,"setup_total":25,"annual_recurring":204,"year_one_net":179,"payback_months":1.5,"hourly_value":50},"best_for":"Teams meetings are included in Microsoft 365 Business.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://zoom.us/pricing","https://www.microsoft.com/en-us/microsoft-365/business/compare-all-microsoft-365-business-products"],"evidence":"modeled","confidence":"medium","option_id":"zoom__bundled__microsoft_365","id":"replace-zoom--bundled--microsoft-365-business","recipe_id":"replace-zoom"},{"type":"open_source","name":"Jitsi Meet","product_id":"jitsi","url":"https://jitsi.org/jitsi-meet/","repo_url":null,"license":"open_source","covers":["Video meetings","Screen sharing","Team chat"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Zoom Workplace Pro","scope":"1 seat. Free, encrypted, no account; self-host for recording.","seats":1,"savings":{"baseline_monthly":16.99,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-1056,"year_one_net":-1256,"payback_months":null,"hourly_value":50},"best_for":"Free, encrypted, no account; self-host for recording.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":4,"sources":["https://zoom.us/pricing","https://jitsi.org/jitsi-meet/"],"evidence":"modeled","confidence":"low","option_id":"zoom__open_source__jitsi","id":"replace-zoom--open_source--jitsi-meet","recipe_id":"replace-zoom"}],"best_path_id":"replace-zoom--downgrade--zoom-workplace-free-tier","best_year_one_net":192,"path_types":["downgrade","open_source","bundled"],"incumbent_names":["Zoom Workplace"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Video meetings\n\nReplaces the part of **Zoom Workplace** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Video meetings\n- Screen sharing\n\n## Out of scope (do not build)\n- Cloud recording\n- AI Companion summaries\n- Team chat\n- Whiteboard\n- Webinars add-on\n\n## Check before building\n- You only rely on: Video meetings, Screen sharing\n- Export your data from Zoom Workplace before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- Jitsi Meet: https://jitsi.org/jitsi-meet/\n\n## Cost targets\n- Incumbent baseline: $17/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Video meetings works end to end with seeded data\n- Screen sharing works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-zoom (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-replit","title":"AI app builder","category":"App builders","incumbents":["replit"],"features_used":["AI Agent builds apps","Cloud IDE","One-click deployments"],"excluded":["Databases","Collaboration","Mobile app","Secrets management"],"eligibility":["You only rely on: AI Agent builds apps, Cloud IDE, One-click deployments","Export your data from Replit before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"switch","name":"Bolt.new (free tier)","product_id":"bolt","url":"https://bolt.new","repo_url":null,"license":"proprietary","covers":["AI Agent builds apps","One-click deployments"],"missing":["Cloud IDE"],"feature_coverage":0.67,"incumbent_plan":"Replit Core","scope":"1 seat. If your use fits the free tier (300K tokens/day, 1M tokens/mo; Bolt branding).","seats":1,"savings":{"baseline_monthly":20,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":240,"year_one_net":190,"payback_months":2.5,"hourly_value":50},"best_for":"Bolt Free (1M tokens/mo) for light prompt-to-app work.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":1,"sources":["https://replit.com/pricing","https://bolt.new/pricing"],"evidence":"modeled","confidence":"medium","option_id":"replit__competitor__bolt_free","id":"replace-replit--switch--bolt-new-free-tier","recipe_id":"replace-replit"},{"type":"switch","name":"Railway","product_id":"railway","url":"https://railway.com","repo_url":null,"license":"proprietary","covers":["One-click deployments","Databases"],"missing":["AI Agent builds apps","Cloud IDE"],"feature_coverage":0.33,"incumbent_plan":"Replit Core","scope":"1 seat. Host finished apps on Railway Hobby ($5 min, includes $5 usage) instead of keeping a Replit plan for deploys.","seats":1,"savings":{"baseline_monthly":20,"new_cash_monthly":5,"maintenance_hours_monthly":0,"new_monthly_with_time":5,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":180,"year_one_net":130,"payback_months":3.3,"hourly_value":50},"best_for":"Host finished apps on Railway Hobby ($5 min, includes $5 usage) instead of keeping a Replit plan for deploys.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":1,"sources":["https://replit.com/pricing","https://railway.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"replit__competitor__railway","id":"replace-replit--switch--railway","recipe_id":"replace-replit"}],"best_path_id":"replace-replit--switch--bolt-new-free-tier","best_year_one_net":190,"path_types":["switch"],"incumbent_names":["Replit"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: AI app builder\n\nReplaces the part of **Replit** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- AI Agent builds apps\n- Cloud IDE\n- One-click deployments\n\n## Out of scope (do not build)\n- Databases\n- Collaboration\n- Mobile app\n- Secrets management\n\n## Check before building\n- You only rely on: AI Agent builds apps, Cloud IDE, One-click deployments\n- Export your data from Replit before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Cost targets\n- Incumbent baseline: $20/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- AI Agent builds apps works end to end with seeded data\n- Cloud IDE works end to end with seeded data\n- One-click deployments works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-replit (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-perplexity","title":"AI search answers","category":"AI chat","incumbents":["perplexity"],"features_used":["AI web search with citations","Model choice","Deep research"],"excluded":["File uploads","Spaces","Image generation","Comet browser assistant"],"eligibility":["You only rely on: AI web search with citations, Model choice, Deep research","Export your data from Perplexity before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"switch","name":"ChatGPT (free tier)","product_id":"chatgpt","url":"https://chatgpt.com","repo_url":null,"license":"proprietary","covers":["AI web search with citations","Deep research"],"missing":["Model choice"],"feature_coverage":0.67,"incumbent_plan":"Perplexity Pro","scope":"1 seat. If your use fits the free tier (Unlimited text chats with guardrails; limited uploads, image generation, voice, deep research).","seats":1,"savings":{"baseline_monthly":20,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":240,"year_one_net":190,"payback_months":2.5,"hourly_value":50},"best_for":"ChatGPT Free includes web search with sources and limited deep research.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://www.perplexity.ai/hub/pricing","https://chatgpt.com/pricing/"],"evidence":"modeled","confidence":"medium","option_id":"perplexity__competitor__chatgpt_free","id":"replace-perplexity--switch--chatgpt-free-tier","recipe_id":"replace-perplexity"}],"best_path_id":"replace-perplexity--switch--chatgpt-free-tier","best_year_one_net":190,"path_types":["switch"],"incumbent_names":["Perplexity"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: AI search answers\n\nReplaces the part of **Perplexity** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- AI web search with citations\n- Model choice\n- Deep research\n\n## Out of scope (do not build)\n- File uploads\n- Spaces\n- Image generation\n- Comet browser assistant\n\n## Check before building\n- You only rely on: AI web search with citations, Model choice, Deep research\n- Export your data from Perplexity before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Cost targets\n- Incumbent baseline: $20/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- AI web search with citations works end to end with seeded data\n- Model choice works end to end with seeded data\n- Deep research works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-perplexity (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-render","title":"App hosting PaaS","category":"Hosting","incumbents":["render"],"features_used":["Web services from Git","Managed Postgres","Custom domains and SSL"],"excluded":["Background workers","Cron jobs","Key-value (Redis)","Preview environments","Private networking"],"eligibility":["You only rely on: Web services from Git, Managed Postgres, Custom domains and SSL","Export your data from Render before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"switch","name":"Railway","product_id":"railway","url":"https://railway.com","repo_url":null,"license":"proprietary","covers":["Web services from Git","Managed Postgres","Cron jobs","Custom domains and SSL"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Render Pro","scope":"1 seat. Railway Hobby is a $5 minimum including $5 usage vs Render Pro $25/mo + compute for teams.","seats":1,"savings":{"baseline_monthly":25,"new_cash_monthly":5,"maintenance_hours_monthly":0,"new_monthly_with_time":5,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":240,"year_one_net":190,"payback_months":2.5,"hourly_value":50},"best_for":"Railway Hobby is a $5 minimum including $5 usage vs Render Pro $25/mo + compute for teams.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":1,"sources":["https://render.com/pricing","https://railway.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"render__competitor__railway","id":"replace-render--switch--railway","recipe_id":"replace-render"},{"type":"open_source","name":"Coolify","product_id":"coolify","url":"https://coolify.io","repo_url":null,"license":"open_source","covers":["Web services from Git","Background workers","Managed Postgres","Custom domains and SSL"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Render Pro","scope":"1 seat. Run services and Postgres on your own VPS with Coolify; no per-service markup.","seats":1,"savings":{"baseline_monthly":25,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-960,"year_one_net":-1160,"payback_months":null,"hourly_value":50},"best_for":"Run services and Postgres on your own VPS with Coolify; no per-service markup.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":4,"sources":["https://render.com/pricing","https://coolify.io/pricing/"],"evidence":"modeled","confidence":"low","option_id":"render__open_source__coolify","id":"replace-render--open_source--coolify","recipe_id":"replace-render"}],"best_path_id":"replace-render--switch--railway","best_year_one_net":190,"path_types":["switch","open_source"],"incumbent_names":["Render"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: App hosting PaaS\n\nReplaces the part of **Render** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Web services from Git\n- Managed Postgres\n- Custom domains and SSL\n\n## Out of scope (do not build)\n- Background workers\n- Cron jobs\n- Key-value (Redis)\n- Preview environments\n- Private networking\n\n## Check before building\n- You only rely on: Web services from Git, Managed Postgres, Custom domains and SSL\n- Export your data from Render before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- Coolify: https://coolify.io\n\n## Cost targets\n- Incumbent baseline: $25/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Web services from Git works end to end with seeded data\n- Managed Postgres works end to end with seeded data\n- Custom domains and SSL works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-render (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-vercel","title":"Frontend hosting","category":"Hosting","incumbents":["vercel"],"features_used":["Git push deploys","Preview deployments","Serverless functions","Custom domains and SSL"],"excluded":["Edge CDN","Image optimization","Web analytics","Firewall and bot protection","Blob storage","Cron jobs"],"eligibility":["You only rely on: Git push deploys, Preview deployments, Serverless functions, Custom domains and SSL","Export your data from Vercel before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"switch","name":"Cloudflare (free tier)","product_id":"cloudflare","url":"https://www.cloudflare.com","repo_url":null,"license":"proprietary","covers":["Git push deploys","Preview deployments","Serverless functions","Custom domains and SSL","Edge CDN"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Vercel Pro","scope":"1 seat. If your use fits the free tier (Free DNS, CDN, SSL, DDoS; Workers 100k requests/day).","seats":1,"savings":{"baseline_monthly":20,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":240,"year_one_net":190,"payback_months":2.5,"hourly_value":50},"best_for":"Cloudflare Pages/Workers free tier (100k requests/day) covers many sites; Workers Paid is $5/mo.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://vercel.com/pricing","https://www.cloudflare.com/plans/"],"evidence":"modeled","confidence":"medium","option_id":"vercel__competitor__cloudflare_free","id":"replace-vercel--switch--cloudflare-free-tier","recipe_id":"replace-vercel"},{"type":"switch","name":"GitHub Pages (free tier)","product_id":"github_pages","url":"https://pages.github.com","repo_url":null,"license":"proprietary","covers":["Git push deploys","Custom domains and SSL"],"missing":["Preview deployments","Serverless functions"],"feature_coverage":0.5,"incumbent_plan":"Vercel Pro","scope":"1 seat. If your use fits the free tier (Free for public repos; usage limits apply).","seats":1,"savings":{"baseline_monthly":20,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":240,"year_one_net":190,"payback_months":2.5,"hourly_value":50},"best_for":"Free for static sites only (no server functions).","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://vercel.com/pricing","https://docs.github.com/en/pages/getting-started-with-github-pages/github-pages-limits"],"evidence":"modeled","confidence":"medium","option_id":"vercel__competitor__github_pages_free","id":"replace-vercel--switch--github-pages-free-tier","recipe_id":"replace-vercel"},{"type":"switch","name":"Netlify","product_id":"netlify","url":"https://www.netlify.com","repo_url":null,"license":"proprietary","covers":["Git push deploys","Preview deployments","Serverless functions","Custom domains and SSL"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Vercel Pro","scope":"1 seat. Netlify Personal is $9/mo vs Vercel Pro $20 for a single member.","seats":1,"savings":{"baseline_monthly":20,"new_cash_monthly":9,"maintenance_hours_monthly":0,"new_monthly_with_time":9,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":132,"year_one_net":82,"payback_months":4.5,"hourly_value":50},"best_for":"Netlify Personal is $9/mo vs Vercel Pro $20 for a single member.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://vercel.com/pricing","https://www.netlify.com/pricing/"],"evidence":"modeled","confidence":"medium","option_id":"vercel__competitor__netlify","id":"replace-vercel--switch--netlify","recipe_id":"replace-vercel"},{"type":"open_source","name":"Coolify","product_id":"coolify","url":"https://coolify.io","repo_url":null,"license":"open_source","covers":["Git push deploys","Preview deployments","Custom domains and SSL"],"missing":["Serverless functions"],"feature_coverage":0.75,"incumbent_plan":"Vercel Pro","scope":"1 seat. Self-host a Vercel-like PaaS on a cheap VPS; you manage servers and uptime.","seats":1,"savings":{"baseline_monthly":20,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-1020,"year_one_net":-1220,"payback_months":null,"hourly_value":50},"best_for":"Self-host a Vercel-like PaaS on a cheap VPS; you manage servers and uptime.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":4,"sources":["https://vercel.com/pricing","https://coolify.io/pricing/"],"evidence":"modeled","confidence":"low","option_id":"vercel__open_source__coolify","id":"replace-vercel--open_source--coolify","recipe_id":"replace-vercel"}],"best_path_id":"replace-vercel--switch--cloudflare-free-tier","best_year_one_net":190,"path_types":["switch","open_source"],"incumbent_names":["Vercel"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Frontend hosting\n\nReplaces the part of **Vercel** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Git push deploys\n- Preview deployments\n- Serverless functions\n- Custom domains and SSL\n\n## Out of scope (do not build)\n- Edge CDN\n- Image optimization\n- Web analytics\n- Firewall and bot protection\n- Blob storage\n- Cron jobs\n\n## Check before building\n- You only rely on: Git push deploys, Preview deployments, Serverless functions, Custom domains and SSL\n- Export your data from Vercel before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- Coolify: https://coolify.io\n\n## Cost targets\n- Incumbent baseline: $20/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Git push deploys works end to end with seeded data\n- Preview deployments works end to end with seeded data\n- Serverless functions works end to end with seeded data\n- Custom domains and SSL works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-vercel (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-sendgrid","title":"Transactional email API","category":"Email infrastructure","incumbents":["sendgrid"],"features_used":["Send email API and SMTP"],"excluded":["Templates","Webhooks and events","Deliverability insights","Marketing campaigns","Dedicated IP"],"eligibility":["You only rely on: Send email API and SMTP","Export your data from SendGrid (Twilio) before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"switch","name":"Resend (free tier)","product_id":"resend","url":"https://resend.com","repo_url":null,"license":"proprietary","covers":["Send email API and SMTP","Templates","Webhooks and events"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"SendGrid (Twilio) Essentials","scope":"1 seat. If your use fits the free tier (3,000 emails/mo).","seats":1,"savings":{"baseline_monthly":19.95,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":239,"year_one_net":189,"payback_months":2.5,"hourly_value":50},"best_for":"Resend Free sends 3,000/mo permanently; SendGrid's free option is a 60-day trial.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://www.twilio.com/en-us/products/email-api/pricing","https://resend.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"sendgrid__competitor__resend_free","id":"replace-sendgrid--switch--resend-free-tier","recipe_id":"replace-sendgrid"},{"type":"open_source","name":"listmonk","product_id":"listmonk","url":"https://listmonk.app","repo_url":null,"license":"open_source","covers":["Marketing campaigns"],"missing":["Send email API and SMTP"],"feature_coverage":0.0,"incumbent_plan":"SendGrid (Twilio) Essentials","scope":"1 seat. Self-hosted newsletters/campaigns; pair with SES for sending.","seats":1,"savings":{"baseline_monthly":19.95,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-1021,"year_one_net":-1221,"payback_months":null,"hourly_value":50},"best_for":"Self-hosted newsletters/campaigns; pair with SES for sending.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":4,"sources":["https://www.twilio.com/en-us/products/email-api/pricing","https://listmonk.app/"],"evidence":"modeled","confidence":"low","option_id":"sendgrid__open_source__listmonk","id":"replace-sendgrid--open_source--listmonk","recipe_id":"replace-sendgrid"}],"best_path_id":"replace-sendgrid--switch--resend-free-tier","best_year_one_net":189,"path_types":["switch","open_source"],"incumbent_names":["SendGrid (Twilio)"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Transactional email API\n\nReplaces the part of **SendGrid (Twilio)** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Send email API and SMTP\n\n## Out of scope (do not build)\n- Templates\n- Webhooks and events\n- Deliverability insights\n- Marketing campaigns\n- Dedicated IP\n\n## Check before building\n- You only rely on: Send email API and SMTP\n- Export your data from SendGrid (Twilio) before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- listmonk: https://listmonk.app\n\n## Cost targets\n- Incumbent baseline: $20/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Send email API and SMTP works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-sendgrid (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-superhuman","title":"AI writing email","category":"Productivity","incumbents":["superhuman"],"features_used":["Fast email client","AI writing and rewrites","Grammar checking"],"excluded":["Split inbox","Snippets and reminders","AI assistant across apps"],"eligibility":["You only rely on: Fast email client, AI writing and rewrites, Grammar checking","Export your data from Superhuman (Grammarly, Mail, Go) before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"downgrade","name":"Superhuman (Grammarly, Mail, Go) (free tier)","product_id":"superhuman","url":"https://superhuman.com","repo_url":null,"license":"proprietary","covers":["AI writing and rewrites","Grammar checking","AI assistant across apps"],"missing":["Fast email client"],"feature_coverage":0.67,"incumbent_plan":"Superhuman (Grammarly, Mail, Go) Pro","scope":"1 seat. If your use fits the free tier (AI chat in every app; basic Grammarly).","seats":1,"savings":{"baseline_monthly":15,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.25,"setup_total":12,"annual_recurring":180,"year_one_net":168,"payback_months":0.8,"hourly_value":50},"best_for":"Free tier includes AI chat in every app and basic grammar.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://superhuman.com/plans"],"evidence":"modeled","confidence":"medium","option_id":"superhuman__competitor__superhuman_free","id":"replace-superhuman--downgrade--superhuman-grammarly-mail-go-free-tier","recipe_id":"replace-superhuman"}],"best_path_id":"replace-superhuman--downgrade--superhuman-grammarly-mail-go-free-tier","best_year_one_net":168,"path_types":["downgrade"],"incumbent_names":["Superhuman (Grammarly, Mail, Go)"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: AI writing email\n\nReplaces the part of **Superhuman (Grammarly, Mail, Go)** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Fast email client\n- AI writing and rewrites\n- Grammar checking\n\n## Out of scope (do not build)\n- Split inbox\n- Snippets and reminders\n- AI assistant across apps\n\n## Check before building\n- You only rely on: Fast email client, AI writing and rewrites, Grammar checking\n- Export your data from Superhuman (Grammarly, Mail, Go) before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Cost targets\n- Incumbent baseline: $15/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Fast email client works end to end with seeded data\n- AI writing and rewrites works end to end with seeded data\n- Grammar checking works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-superhuman (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"feedback-board","title":"Feedback, roadmap and changelog","category":"Feedback","incumbents":["canny","productboard"],"features_used":["Feedback submission","Votes","Statuses","Moderation","Changelog"],"excluded":["Full product discovery platform","Revenue attribution","AI call ingestion","Enterprise roadmap portfolio"],"eligibility":["Existing Fider/other tools checked","Voting uniqueness enforced","Private feedback access tested","Upfront cost amortized honestly"],"entities":["Post","Vote","Comment","Status","ChangelogEntry"],"build_scope":"Implement or deploy a small board, with an importer and product-specific triage. AI categorization is optional.","priority":"A","build_request":"Feedback importer + changelog + GitHub issue linking; optional reusable install pack.","source":"catalog_seed","paths":[{"type":"build","name":"Replace with AI: a small feedback board","product_id":null,"url":null,"license_note":null,"covers":["Feedback submission","Votes","Statuses","Moderation","Changelog"],"scope":"One board; posts, votes, moderation, statuses and changelog","excluded":"No AI capture, revenue attribution, call ingestion or enterprise controls.","incumbent_plan":"Canny Pro","seats":1,"savings":{"baseline_monthly":79,"new_cash_monthly":15,"maintenance_hours_monthly":0.25,"new_monthly_with_time":27.5,"setup_cash":50,"setup_hours":8,"setup_total":450,"annual_recurring":618,"year_one_net":168,"payback_months":8.7,"hourly_value":50},"sources":["https://canny.io/pricing"],"note":"","evidence":"modeled","confidence":"medium","pros":[],"cons":[],"id":"feedback-board--build--replace-with-ai-a-small-feedback-board","recipe_id":"feedback-board"},{"type":"open_source","name":"Fider","product_id":"fider","url":"https://www.fider.io/","license_note":"Open-source project; inspect pinned version license and hosted offering separately.","covers":["Feedback submission","Votes","Statuses","Moderation","Changelog"],"savings":null,"sources":["https://www.fider.io/"],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"feedback-board--open_source--fider","recipe_id":"feedback-board"}],"best_path_id":"feedback-board--build--replace-with-ai-a-small-feedback-board","best_year_one_net":168,"path_types":["open_source","build"],"incumbent_names":["Canny","Productboard"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Feedback, roadmap and changelog\n\nReplaces the part of **Canny, Productboard** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Feedback submission\n- Votes\n- Statuses\n- Moderation\n- Changelog\n\n## Out of scope (do not build)\n- Full product discovery platform\n- Revenue attribution\n- AI call ingestion\n- Enterprise roadmap portfolio\n\n## Data model\n- Post, Vote, Comment, Status, ChangelogEntry\n\n## Approach\nImplement or deploy a small board, with an importer and product-specific triage. AI categorization is optional.\n\n## Check before building\n- Existing Fider/other tools checked\n- Voting uniqueness enforced\n- Private feedback access tested\n- Upfront cost amortized honestly\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- Fider: https://www.fider.io/\n\n## Cost targets\n- Incumbent baseline: $79/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Feedback submission works end to end with seeded data\n- Votes works end to end with seeded data\n- Statuses works end to end with seeded data\n- Moderation works end to end with seeded data\n- Changelog works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/feedback-board (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-otter","title":"Meeting notes AI","category":"Transcription","incumbents":["otter"],"features_used":["Live transcription","Meeting bot (Zoom/Meet/Teams)","AI summaries"],"excluded":["Action items","Search transcripts","Import audio files","AI chat over meetings"],"eligibility":["You only rely on: Live transcription, Meeting bot (Zoom/Meet/Teams), AI summaries","Export your data from Otter.ai before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"switch","name":"Fathom (free tier)","product_id":"fathom","url":"https://www.fathom.ai","repo_url":null,"license":"proprietary","covers":["Meeting bot (Zoom/Meet/Teams)","AI summaries","Action items","Search transcripts"],"missing":["Live transcription"],"feature_coverage":0.67,"incumbent_plan":"Otter.ai Pro","scope":"1 seat. If your use fits the free tier (Unlimited recordings and basic summaries).","seats":1,"savings":{"baseline_monthly":16.99,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":204,"year_one_net":154,"payback_months":2.9,"hourly_value":50},"best_for":"Fathom Free offers unlimited recordings and basic summaries.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://otter.ai/pricing","https://www.fathom.ai/pricing"],"evidence":"modeled","confidence":"medium","option_id":"otter__competitor__fathom_free","id":"replace-otter--switch--fathom-free-tier","recipe_id":"replace-otter"},{"type":"open_source","name":"whisper.cpp","product_id":"whisper_cpp","url":"https://github.com/ggml-org/whisper.cpp","repo_url":null,"license":"open_source","covers":["Import audio files","Search transcripts"],"missing":["Live transcription","Meeting bot (Zoom/Meet/Teams)","AI summaries"],"feature_coverage":0.0,"incumbent_plan":"Otter.ai Pro","scope":"1 seat. Free local transcription of recordings; no meeting bot or AI summaries.","seats":1,"savings":{"baseline_monthly":16.99,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-1056,"year_one_net":-1256,"payback_months":null,"hourly_value":50},"best_for":"Free local transcription of recordings; no meeting bot or AI summaries.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":4,"sources":["https://otter.ai/pricing","https://github.com/ggml-org/whisper.cpp"],"evidence":"modeled","confidence":"low","option_id":"otter__open_source__whisper_cpp","id":"replace-otter--open_source--whisper-cpp","recipe_id":"replace-otter"}],"best_path_id":"replace-otter--switch--fathom-free-tier","best_year_one_net":154,"path_types":["switch","open_source"],"incumbent_names":["Otter.ai"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Meeting notes AI\n\nReplaces the part of **Otter.ai** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Live transcription\n- Meeting bot (Zoom/Meet/Teams)\n- AI summaries\n\n## Out of scope (do not build)\n- Action items\n- Search transcripts\n- Import audio files\n- AI chat over meetings\n\n## Check before building\n- You only rely on: Live transcription, Meeting bot (Zoom/Meet/Teams), AI summaries\n- Export your data from Otter.ai before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- whisper.cpp: https://github.com/ggml-org/whisper.cpp\n\n## Cost targets\n- Incumbent baseline: $17/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Live transcription works end to end with seeded data\n- Meeting bot (Zoom/Meet/Teams) works end to end with seeded data\n- AI summaries works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-otter (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-postmark","title":"Transactional email API","category":"Email infrastructure","incumbents":["postmark"],"features_used":["Send email API and SMTP","Bounce and spam handling"],"excluded":["Inbound email processing","Templates","Message streams","Activity logs"],"eligibility":["You only rely on: Send email API and SMTP, Bounce and spam handling","Export your data from Postmark before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"switch","name":"Resend (free tier)","product_id":"resend","url":"https://resend.com","repo_url":null,"license":"proprietary","covers":["Send email API and SMTP","Inbound email processing","Templates"],"missing":["Bounce and spam handling"],"feature_coverage":0.5,"incumbent_plan":"Postmark Basic","scope":"1 seat. If your use fits the free tier (3,000 emails/mo).","seats":1,"savings":{"baseline_monthly":15,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":180,"year_one_net":130,"payback_months":3.3,"hourly_value":50},"best_for":"Resend Free: 3,000 emails/mo vs Postmark Free 100/mo.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://postmarkapp.com/pricing","https://resend.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"postmark__competitor__resend_free","id":"replace-postmark--switch--resend-free-tier","recipe_id":"replace-postmark"}],"best_path_id":"replace-postmark--switch--resend-free-tier","best_year_one_net":130,"path_types":["switch"],"incumbent_names":["Postmark"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Transactional email API\n\nReplaces the part of **Postmark** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Send email API and SMTP\n- Bounce and spam handling\n\n## Out of scope (do not build)\n- Inbound email processing\n- Templates\n- Message streams\n- Activity logs\n\n## Check before building\n- You only rely on: Send email API and SMTP, Bounce and spam handling\n- Export your data from Postmark before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Cost targets\n- Incumbent baseline: $15/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Send email API and SMTP works end to end with seeded data\n- Bounce and spam handling works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-postmark (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-mailgun","title":"Transactional email API","category":"Email infrastructure","incumbents":["mailgun"],"features_used":["Send email API and SMTP"],"excluded":["Inbound routing","Email validation","Templates","Logs and analytics","Webhooks"],"eligibility":["You only rely on: Send email API and SMTP","Export your data from Mailgun before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"switch","name":"Resend (free tier)","product_id":"resend","url":"https://resend.com","repo_url":null,"license":"proprietary","covers":["Send email API and SMTP","Templates","Webhooks"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Mailgun Basic","scope":"1 seat. If your use fits the free tier (3,000 emails/mo).","seats":1,"savings":{"baseline_monthly":15,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":180,"year_one_net":130,"payback_months":3.3,"hourly_value":50},"best_for":"Resend Free: 3,000 emails/mo.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://www.mailgun.com/pricing/","https://resend.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"mailgun__competitor__resend_free","id":"replace-mailgun--switch--resend-free-tier","recipe_id":"replace-mailgun"}],"best_path_id":"replace-mailgun--switch--resend-free-tier","best_year_one_net":130,"path_types":["switch"],"incumbent_names":["Mailgun"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Transactional email API\n\nReplaces the part of **Mailgun** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Send email API and SMTP\n\n## Out of scope (do not build)\n- Inbound routing\n- Email validation\n- Templates\n- Logs and analytics\n- Webhooks\n\n## Check before building\n- You only rely on: Send email API and SMTP\n- Export your data from Mailgun before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Cost targets\n- Incumbent baseline: $15/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Send email API and SMTP works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-mailgun (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-github-copilot","title":"AI code editor","category":"AI coding","incumbents":["github_copilot"],"features_used":["Code completions","Chat in IDE","Agent mode"],"excluded":["Cloud coding agent","Pull request code review","Copilot CLI","Multiple model choice"],"eligibility":["You only rely on: Code completions, Chat in IDE, Agent mode","Export your data from GitHub Copilot before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"downgrade","name":"GitHub Copilot (free tier)","product_id":"github_copilot","url":"https://github.com/features/copilot","repo_url":null,"license":"proprietary","covers":["Code completions","Chat in IDE","Copilot CLI"],"missing":["Agent mode"],"feature_coverage":0.67,"incumbent_plan":"GitHub Copilot Pro","scope":"1 seat. If your use fits the free tier (2,000 completions/mo; limited chat and models).","seats":1,"savings":{"baseline_monthly":10,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.25,"setup_total":12,"annual_recurring":120,"year_one_net":108,"payback_months":1.2,"hourly_value":50},"best_for":"Copilot Free gives 2,000 completions/mo; Pro+ ($39) and Max ($100) only if you need premium-model credits.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://github.com/features/copilot/plans"],"evidence":"modeled","confidence":"medium","option_id":"github_copilot__competitor__github_copilot_free","id":"replace-github-copilot--downgrade--github-copilot-free-tier","recipe_id":"replace-github-copilot"},{"type":"open_source","name":"Cline","product_id":"cline","url":"https://cline.bot","repo_url":null,"license":"open_source","covers":["Agent mode","Chat in IDE","Multiple model choice"],"missing":["Code completions"],"feature_coverage":0.67,"incumbent_plan":"GitHub Copilot Pro","scope":"1 seat. Open-source agent with BYO API key; no subscription.","seats":1,"savings":{"baseline_monthly":10,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-1140,"year_one_net":-1340,"payback_months":null,"hourly_value":50},"best_for":"Open-source agent with BYO API key; no subscription.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":4,"sources":["https://github.com/features/copilot/plans","https://cline.bot/pricing"],"evidence":"modeled","confidence":"low","option_id":"github_copilot__open_source__cline","id":"replace-github-copilot--open_source--cline","recipe_id":"replace-github-copilot"}],"best_path_id":"replace-github-copilot--downgrade--github-copilot-free-tier","best_year_one_net":108,"path_types":["downgrade","open_source"],"incumbent_names":["GitHub Copilot"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: AI code editor\n\nReplaces the part of **GitHub Copilot** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Code completions\n- Chat in IDE\n- Agent mode\n\n## Out of scope (do not build)\n- Cloud coding agent\n- Pull request code review\n- Copilot CLI\n- Multiple model choice\n\n## Check before building\n- You only rely on: Code completions, Chat in IDE, Agent mode\n- Export your data from GitHub Copilot before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- Cline: https://cline.bot\n\n## Cost targets\n- Incumbent baseline: $10/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Code completions works end to end with seeded data\n- Chat in IDE works end to end with seeded data\n- Agent mode works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-github-copilot (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-mailchimp","title":"Email marketing","category":"Email marketing","incumbents":["mailchimp"],"features_used":["Email campaigns","Audience/contact management","Automations"],"excluded":["Signup forms and landing pages","Templates","A/B testing","Reporting"],"eligibility":["You only rely on: Email campaigns, Audience/contact management, Automations","Export your data from Mailchimp before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"switch","name":"Kit (ConvertKit) (free tier)","product_id":"kit","url":"https://kit.com","repo_url":null,"license":"proprietary","covers":["Email campaigns","Audience/contact management","Signup forms and landing pages"],"missing":["Automations"],"feature_coverage":0.67,"incumbent_plan":"Mailchimp Essentials","scope":"1 seat. If your use fits the free tier (Up to 10,000 subscribers; unlimited broadcasts and forms).","seats":1,"savings":{"baseline_monthly":13,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":156,"year_one_net":106,"payback_months":3.8,"hourly_value":50},"best_for":"Kit Free covers up to 10,000 subscribers with unlimited broadcasts vs Mailchimp Free's 250 contacts.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://mailchimp.com/pricing/marketing/","https://kit.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"mailchimp__competitor__kit_free","id":"replace-mailchimp--switch--kit-convertkit-free-tier","recipe_id":"replace-mailchimp"},{"type":"switch","name":"beehiiv (free tier)","product_id":"beehiiv","url":"https://www.beehiiv.com","repo_url":null,"license":"proprietary","covers":["Email campaigns","Audience/contact management"],"missing":["Automations"],"feature_coverage":0.67,"incumbent_plan":"Mailchimp Essentials","scope":"1 seat. If your use fits the free tier (Launch: up to 2,500 subscribers).","seats":1,"savings":{"baseline_monthly":13,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":156,"year_one_net":106,"payback_months":3.8,"hourly_value":50},"best_for":"beehiiv Launch is free up to 2,500 subscribers.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://mailchimp.com/pricing/marketing/","https://www.beehiiv.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"mailchimp__competitor__beehiiv_free","id":"replace-mailchimp--switch--beehiiv-free-tier","recipe_id":"replace-mailchimp"},{"type":"switch","name":"MailerLite","product_id":"mailerlite","url":"https://www.mailerlite.com","repo_url":null,"license":"proprietary","covers":["Email campaigns","Audience/contact management","Automations","Signup forms and landing pages","Templates","A/B testing"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Mailchimp Essentials","scope":"1 seat. Similar feature set; free to 250 subscribers, paid from ~$12/mo.","seats":1,"savings":{"baseline_monthly":13,"new_cash_monthly":12,"maintenance_hours_monthly":0,"new_monthly_with_time":12,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":12,"year_one_net":-38,"payback_months":50.0,"hourly_value":50},"best_for":"Similar feature set; free to 250 subscribers, paid from ~$12/mo.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://mailchimp.com/pricing/marketing/","https://www.mailerlite.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"mailchimp__competitor__mailerlite","id":"replace-mailchimp--switch--mailerlite","recipe_id":"replace-mailchimp"},{"type":"open_source","name":"listmonk","product_id":"listmonk","url":"https://listmonk.app","repo_url":null,"license":"open_source","covers":["Email campaigns","Audience/contact management","Templates","Reporting"],"missing":["Automations"],"feature_coverage":0.67,"incumbent_plan":"Mailchimp Essentials","scope":"1 seat. Free self-hosted list manager; pair with Amazon SES for sending at cents per 1,000.","seats":1,"savings":{"baseline_monthly":13,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-1104,"year_one_net":-1304,"payback_months":null,"hourly_value":50},"best_for":"Free self-hosted list manager; pair with Amazon SES for sending at cents per 1,000.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":4,"sources":["https://mailchimp.com/pricing/marketing/","https://listmonk.app/"],"evidence":"modeled","confidence":"low","option_id":"mailchimp__open_source__listmonk","id":"replace-mailchimp--open_source--listmonk","recipe_id":"replace-mailchimp"}],"best_path_id":"replace-mailchimp--switch--kit-convertkit-free-tier","best_year_one_net":106,"path_types":["switch","open_source"],"incumbent_names":["Mailchimp"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Email marketing\n\nReplaces the part of **Mailchimp** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Email campaigns\n- Audience/contact management\n- Automations\n\n## Out of scope (do not build)\n- Signup forms and landing pages\n- Templates\n- A/B testing\n- Reporting\n\n## Check before building\n- You only rely on: Email campaigns, Audience/contact management, Automations\n- Export your data from Mailchimp before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- listmonk: https://listmonk.app\n\n## Cost targets\n- Incumbent baseline: $13/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Email campaigns works end to end with seeded data\n- Audience/contact management works end to end with seeded data\n- Automations works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-mailchimp (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-midjourney","title":"AI image generation","category":"AI image & video","incumbents":["midjourney"],"features_used":["Text-to-image","Image variations and upscaling","Style and character references"],"excluded":["Image editor","Video generation","Relax mode (unlimited slow)","Stealth mode","Personalization"],"eligibility":["You only rely on: Text-to-image, Image variations and upscaling, Style and character references","Export your data from Midjourney before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"bundled","name":"ChatGPT","product_id":"chatgpt","url":"https://chatgpt.com","repo_url":null,"license":"proprietary","covers":["Text-to-image","Image editor"],"missing":["Image variations and upscaling","Style and character references"],"feature_coverage":0.33,"incumbent_plan":"Midjourney Basic","scope":"1 seat. ChatGPT plans include image generation and editing; if you already pay for ChatGPT, Midjourney may be optional.","seats":1,"savings":{"baseline_monthly":10,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.5,"setup_total":25,"annual_recurring":120,"year_one_net":95,"payback_months":2.5,"hourly_value":50},"best_for":"ChatGPT plans include image generation and editing; if you already pay for ChatGPT, Midjourney may be optional.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://docs.midjourney.com/hc/en-us/articles/27870484040333-Comparing-Midjourney-Plans","https://chatgpt.com/pricing/"],"evidence":"modeled","confidence":"medium","option_id":"midjourney__bundled__chatgpt","id":"replace-midjourney--bundled--chatgpt","recipe_id":"replace-midjourney"}],"best_path_id":"replace-midjourney--bundled--chatgpt","best_year_one_net":95,"path_types":["bundled"],"incumbent_names":["Midjourney"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: AI image generation\n\nReplaces the part of **Midjourney** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Text-to-image\n- Image variations and upscaling\n- Style and character references\n\n## Out of scope (do not build)\n- Image editor\n- Video generation\n- Relax mode (unlimited slow)\n- Stealth mode\n- Personalization\n\n## Check before building\n- You only rely on: Text-to-image, Image variations and upscaling, Style and character references\n- Export your data from Midjourney before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Cost targets\n- Incumbent baseline: $10/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Text-to-image works end to end with seeded data\n- Image variations and upscaling works end to end with seeded data\n- Style and character references works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-midjourney (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-dropbox","title":"File storage sync","category":"Cloud storage","incumbents":["dropbox"],"features_used":["File sync across devices","Cloud storage","File sharing links"],"excluded":["Version history","E-signatures","Shared folders","Backup"],"eligibility":["You only rely on: File sync across devices, Cloud storage, File sharing links","Export your data from Dropbox before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"bundled","name":"Google AI Pro (Gemini)","product_id":"google_ai_pro","url":"https://gemini.google","repo_url":null,"license":"proprietary","covers":["Cloud storage","File sharing links","File sync across devices"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Dropbox Plus","scope":"1 seat. Google AI Pro includes 5 TB of storage; if you pay for it, Dropbox Plus may be redundant.","seats":1,"savings":{"baseline_monthly":9.99,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.5,"setup_total":25,"annual_recurring":120,"year_one_net":95,"payback_months":2.5,"hourly_value":50},"best_for":"Google AI Pro includes 5 TB of storage; if you pay for it, Dropbox Plus may be redundant.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://www.dropbox.com/plans","https://one.google.com/about/google-ai-plans/"],"evidence":"modeled","confidence":"medium","option_id":"dropbox__bundled__google_ai_pro","id":"replace-dropbox--bundled--google-ai-pro-gemini","recipe_id":"replace-dropbox"},{"type":"bundled","name":"Google Workspace","product_id":"google_workspace","url":"https://workspace.google.com","repo_url":null,"license":"proprietary","covers":["Cloud storage","File sharing links","Shared folders","Version history"],"missing":["File sync across devices"],"feature_coverage":0.67,"incumbent_plan":"Dropbox Plus","scope":"1 seat. Workspace includes pooled Drive storage (30 GB-5 TB/user).","seats":1,"savings":{"baseline_monthly":9.99,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.5,"setup_total":25,"annual_recurring":120,"year_one_net":95,"payback_months":2.5,"hourly_value":50},"best_for":"Workspace includes pooled Drive storage (30 GB-5 TB/user).","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://www.dropbox.com/plans","https://workspace.google.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"dropbox__bundled__google_workspace","id":"replace-dropbox--bundled--google-workspace","recipe_id":"replace-dropbox"},{"type":"bundled","name":"Microsoft 365 Business","product_id":"microsoft_365","url":"https://www.microsoft.com/microsoft-365/business","repo_url":null,"license":"proprietary","covers":["Cloud storage","File sharing links","File sync across devices"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Dropbox Plus","scope":"1 seat. Microsoft 365 Business Basic includes 1 TB OneDrive per user.","seats":1,"savings":{"baseline_monthly":9.99,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.5,"setup_total":25,"annual_recurring":120,"year_one_net":95,"payback_months":2.5,"hourly_value":50},"best_for":"Microsoft 365 Business Basic includes 1 TB OneDrive per user.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://www.dropbox.com/plans","https://www.microsoft.com/en-us/microsoft-365/business/compare-all-microsoft-365-business-products"],"evidence":"modeled","confidence":"medium","option_id":"dropbox__bundled__microsoft_365","id":"replace-dropbox--bundled--microsoft-365-business","recipe_id":"replace-dropbox"},{"type":"switch","name":"iCloud+","product_id":"icloud_plus","url":"https://www.apple.com/icloud/","repo_url":null,"license":"proprietary","covers":["Cloud storage","File sync across devices","Backup"],"missing":["File sharing links"],"feature_coverage":0.67,"incumbent_plan":"Dropbox Plus","scope":"1 seat. iCloud+ 2 TB is $9.99/mo in the US; best for Apple-only users.","seats":1,"savings":{"baseline_monthly":9.99,"new_cash_monthly":0.99,"maintenance_hours_monthly":0,"new_monthly_with_time":0.99,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":108,"year_one_net":58,"payback_months":5.6,"hourly_value":50},"best_for":"iCloud+ 2 TB is $9.99/mo in the US; best for Apple-only users.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://www.dropbox.com/plans","https://support.apple.com/en-us/108047"],"evidence":"modeled","confidence":"medium","option_id":"dropbox__competitor__icloud_plus","id":"replace-dropbox--switch--icloud","recipe_id":"replace-dropbox"}],"best_path_id":"replace-dropbox--bundled--google-ai-pro-gemini","best_year_one_net":95,"path_types":["switch","bundled"],"incumbent_names":["Dropbox"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: File storage sync\n\nReplaces the part of **Dropbox** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- File sync across devices\n- Cloud storage\n- File sharing links\n\n## Out of scope (do not build)\n- Version history\n- E-signatures\n- Shared folders\n- Backup\n\n## Check before building\n- You only rely on: File sync across devices, Cloud storage, File sharing links\n- Export your data from Dropbox before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Cost targets\n- Incumbent baseline: $10/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- File sync across devices works end to end with seeded data\n- Cloud storage works end to end with seeded data\n- File sharing links works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-dropbox (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-slack","title":"Team chat","category":"Team chat","incumbents":["slack"],"features_used":["Channels and DMs","Huddles (calls)","Message history and search"],"excluded":["App integrations","Slack Connect (external)","Workflows","Slack AI"],"eligibility":["You only rely on: Channels and DMs, Huddles (calls), Message history and search","Export your data from Slack before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"downgrade","name":"Slack (free tier)","product_id":"slack","url":"https://slack.com","repo_url":null,"license":"proprietary","covers":["Channels and DMs","Huddles (calls)","App integrations"],"missing":["Message history and search"],"feature_coverage":0.67,"incumbent_plan":"Slack Pro","scope":"1 seat. If your use fits the free tier (Data deleted after 1 year; limited integrations).","seats":1,"savings":{"baseline_monthly":8.75,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.25,"setup_total":12,"annual_recurring":105,"year_one_net":93,"payback_months":1.4,"hourly_value":50},"best_for":"Free keeps data up to 1 year; fine for small teams that don't need long history.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":1,"sources":["https://slack.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"slack__competitor__slack_free","id":"replace-slack--downgrade--slack-free-tier","recipe_id":"replace-slack"},{"type":"bundled","name":"Google Workspace","product_id":"google_workspace","url":"https://workspace.google.com","repo_url":null,"license":"proprietary","covers":["Channels and DMs","Huddles (calls)","Message history and search"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Slack Pro","scope":"1 seat. Google Chat and Meet are included in Workspace; check before paying for both.","seats":1,"savings":{"baseline_monthly":8.75,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.5,"setup_total":25,"annual_recurring":105,"year_one_net":80,"payback_months":2.9,"hourly_value":50},"best_for":"Google Chat and Meet are included in Workspace; check before paying for both.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":1,"sources":["https://slack.com/pricing","https://workspace.google.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"slack__bundled__google_workspace","id":"replace-slack--bundled--google-workspace","recipe_id":"replace-slack"},{"type":"bundled","name":"Microsoft 365 Business","product_id":"microsoft_365","url":"https://www.microsoft.com/microsoft-365/business","repo_url":null,"license":"proprietary","covers":["Channels and DMs","Huddles (calls)","Message history and search"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Slack Pro","scope":"1 seat. Teams is included in Microsoft 365 Business plans.","seats":1,"savings":{"baseline_monthly":8.75,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.5,"setup_total":25,"annual_recurring":105,"year_one_net":80,"payback_months":2.9,"hourly_value":50},"best_for":"Teams is included in Microsoft 365 Business plans.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":1,"sources":["https://slack.com/pricing","https://www.microsoft.com/en-us/microsoft-365/business/compare-all-microsoft-365-business-products"],"evidence":"modeled","confidence":"medium","option_id":"slack__bundled__microsoft_365","id":"replace-slack--bundled--microsoft-365-business","recipe_id":"replace-slack"},{"type":"open_source","name":"Mattermost","product_id":"mattermost","url":"https://mattermost.com","repo_url":null,"license":"open_source","covers":["Channels and DMs","Huddles (calls)","Message history and search","App integrations","Workflows"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Slack Pro","scope":"1 seat. Free self-hosted team chat with full history.","seats":1,"savings":{"baseline_monthly":8.75,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-1155,"year_one_net":-1355,"payback_months":null,"hourly_value":50},"best_for":"Free self-hosted team chat with full history.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":4,"sources":["https://slack.com/pricing","https://mattermost.com/pricing/"],"evidence":"modeled","confidence":"low","option_id":"slack__open_source__mattermost","id":"replace-slack--open_source--mattermost","recipe_id":"replace-slack"}],"best_path_id":"replace-slack--downgrade--slack-free-tier","best_year_one_net":93,"path_types":["downgrade","open_source","bundled"],"incumbent_names":["Slack"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Team chat\n\nReplaces the part of **Slack** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Channels and DMs\n- Huddles (calls)\n- Message history and search\n\n## Out of scope (do not build)\n- App integrations\n- Slack Connect (external)\n- Workflows\n- Slack AI\n\n## Check before building\n- You only rely on: Channels and DMs, Huddles (calls), Message history and search\n- Export your data from Slack before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- Mattermost: https://mattermost.com\n\n## Cost targets\n- Incumbent baseline: $9/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Channels and DMs works end to end with seeded data\n- Huddles (calls) works end to end with seeded data\n- Message history and search works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-slack (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-netlify","title":"Frontend hosting","category":"Hosting","incumbents":["netlify"],"features_used":["Git push deploys","Deploy previews","Serverless functions","Custom domains and SSL"],"excluded":["Form handling","Edge CDN","Split testing"],"eligibility":["You only rely on: Git push deploys, Deploy previews, Serverless functions, Custom domains and SSL","Export your data from Netlify before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"switch","name":"Cloudflare (free tier)","product_id":"cloudflare","url":"https://www.cloudflare.com","repo_url":null,"license":"proprietary","covers":["Git push deploys","Deploy previews","Serverless functions","Custom domains and SSL","Edge CDN"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Netlify Personal","scope":"1 seat. If your use fits the free tier (Free DNS, CDN, SSL, DDoS; Workers 100k requests/day).","seats":1,"savings":{"baseline_monthly":9,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":108,"year_one_net":58,"payback_months":5.6,"hourly_value":50},"best_for":"Cloudflare Pages/Workers free tier; Workers Paid $5/mo.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://www.netlify.com/pricing/","https://www.cloudflare.com/plans/"],"evidence":"modeled","confidence":"medium","option_id":"netlify__competitor__cloudflare_free","id":"replace-netlify--switch--cloudflare-free-tier","recipe_id":"replace-netlify"},{"type":"switch","name":"GitHub Pages (free tier)","product_id":"github_pages","url":"https://pages.github.com","repo_url":null,"license":"proprietary","covers":["Git push deploys","Custom domains and SSL"],"missing":["Deploy previews","Serverless functions"],"feature_coverage":0.5,"incumbent_plan":"Netlify Personal","scope":"1 seat. If your use fits the free tier (Free for public repos; usage limits apply).","seats":1,"savings":{"baseline_monthly":9,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":108,"year_one_net":58,"payback_months":5.6,"hourly_value":50},"best_for":"Free static hosting; no functions or forms.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://www.netlify.com/pricing/","https://docs.github.com/en/pages/getting-started-with-github-pages/github-pages-limits"],"evidence":"modeled","confidence":"medium","option_id":"netlify__competitor__github_pages_free","id":"replace-netlify--switch--github-pages-free-tier","recipe_id":"replace-netlify"},{"type":"open_source","name":"Coolify","product_id":"coolify","url":"https://coolify.io","repo_url":null,"license":"open_source","covers":["Git push deploys","Deploy previews","Custom domains and SSL"],"missing":["Serverless functions"],"feature_coverage":0.75,"incumbent_plan":"Netlify Personal","scope":"1 seat. Self-host on your own VPS; free software.","seats":1,"savings":{"baseline_monthly":9,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-1152,"year_one_net":-1352,"payback_months":null,"hourly_value":50},"best_for":"Self-host on your own VPS; free software.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":4,"sources":["https://www.netlify.com/pricing/","https://coolify.io/pricing/"],"evidence":"modeled","confidence":"low","option_id":"netlify__open_source__coolify","id":"replace-netlify--open_source--coolify","recipe_id":"replace-netlify"}],"best_path_id":"replace-netlify--switch--cloudflare-free-tier","best_year_one_net":58,"path_types":["switch","open_source"],"incumbent_names":["Netlify"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Frontend hosting\n\nReplaces the part of **Netlify** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Git push deploys\n- Deploy previews\n- Serverless functions\n- Custom domains and SSL\n\n## Out of scope (do not build)\n- Form handling\n- Edge CDN\n- Split testing\n\n## Check before building\n- You only rely on: Git push deploys, Deploy previews, Serverless functions, Custom domains and SSL\n- Export your data from Netlify before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- Coolify: https://coolify.io\n\n## Cost targets\n- Incumbent baseline: $9/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Git push deploys works end to end with seeded data\n- Deploy previews works end to end with seeded data\n- Serverless functions works end to end with seeded data\n- Custom domains and SSL works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-netlify (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-cloudflare","title":"CDN DNS security","category":"Hosting","incumbents":["cloudflare"],"features_used":["DNS","CDN and caching","DDoS protection and WAF"],"excluded":["SSL certificates","Workers (serverless)","Pages (static hosting)","R2 object storage","Zero Trust access","Email routing"],"eligibility":["You only rely on: DNS, CDN and caching, DDoS protection and WAF","Export your data from Cloudflare before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"downgrade","name":"Cloudflare (free tier)","product_id":"cloudflare","url":"https://www.cloudflare.com","repo_url":null,"license":"proprietary","covers":["DNS","CDN and caching","DDoS protection and WAF","SSL certificates","Workers (serverless)","Pages (static hosting)"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Cloudflare Workers Paid","scope":"1 seat. If your use fits the free tier (Free DNS, CDN, SSL, DDoS; Workers 100k requests/day).","seats":1,"savings":{"baseline_monthly":5,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.25,"setup_total":12,"annual_recurring":60,"year_one_net":48,"payback_months":2.4,"hourly_value":50},"best_for":"Free plan includes DNS, CDN, SSL and unmetered DDoS; Pro ($20-25/domain) mainly adds WAF rules and image tools.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":1,"sources":["https://www.cloudflare.com/plans/"],"evidence":"modeled","confidence":"medium","option_id":"cloudflare__competitor__cloudflare_free","id":"replace-cloudflare--downgrade--cloudflare-free-tier","recipe_id":"replace-cloudflare"}],"best_path_id":"replace-cloudflare--downgrade--cloudflare-free-tier","best_year_one_net":48,"path_types":["downgrade"],"incumbent_names":["Cloudflare"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: CDN DNS security\n\nReplaces the part of **Cloudflare** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- DNS\n- CDN and caching\n- DDoS protection and WAF\n\n## Out of scope (do not build)\n- SSL certificates\n- Workers (serverless)\n- Pages (static hosting)\n- R2 object storage\n- Zero Trust access\n- Email routing\n\n## Check before building\n- You only rely on: DNS, CDN and caching, DDoS protection and WAF\n- Export your data from Cloudflare before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Cost targets\n- Incumbent baseline: $5/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- DNS works end to end with seeded data\n- CDN and caching works end to end with seeded data\n- DDoS protection and WAF works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-cloudflare (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"fixed-automations","title":"A handful of stable automations","category":"Automation","incumbents":["zapier","make"],"features_used":["Webhook triggers","Scheduled jobs","Mapping","Retries","Failure alerts"],"excluded":["Thousands of connectors","Arbitrary visual builder","Enterprise controls","Zero-maintenance API updates"],"eligibility":["Task/credit units mapped per workflow","Connector and API permissions checked","High enough bill to justify work","Commercial license checked"],"entities":["Workflow","Run","Delivery","CredentialReference"],"build_scope":"Translate named workflows into small jobs with idempotency keys, a queue, retry logs and human-visible failures.","priority":"A","build_request":"Known three-to-ten workflow migration with recorded inputs, outputs and failure-path tests.","source":"catalog_seed","paths":[{"type":"switch","name":"Make","product_id":"make","url":"https://www.make.com","repo_url":null,"license":"proprietary","covers":["Multi-step automations (Zaps)","App integrations","Filters and paths","Webhooks","AI agents"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Zapier Professional","scope":"1 seat. Make Core $12/mo for 10,000 credits vs Zapier Professional from $19.99.","seats":1,"savings":{"baseline_monthly":19.99,"new_cash_monthly":12,"maintenance_hours_monthly":0,"new_monthly_with_time":12,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":96,"year_one_net":46,"payback_months":6.3,"hourly_value":50},"best_for":"Make Core $12/mo for 10,000 credits vs Zapier Professional from $19.99.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":1,"sources":["https://zapier.com/pricing","https://www.make.com/en/pricing"],"evidence":"modeled","confidence":"medium","option_id":"zapier__competitor__make","id":"fixed-automations--switch--make","recipe_id":"fixed-automations"},{"type":"build","name":"Replace with AI: three custom jobs","product_id":null,"url":null,"license_note":null,"covers":["Webhook triggers","Scheduled jobs","Mapping","Retries","Failure alerts"],"scope":"Three low-volume, stable jobs fitting the starting tier","excluded":"No connector catalog or visual editor; low entry-tier bill rarely justifies custom operations.","incumbent_plan":"Zapier Professional","seats":1,"savings":{"baseline_monthly":19.99,"new_cash_monthly":10,"maintenance_hours_monthly":0.25,"new_monthly_with_time":22.5,"setup_cash":50,"setup_hours":4,"setup_total":250,"annual_recurring":-30,"year_one_net":-280,"payback_months":null,"hourly_value":50},"sources":["https://zapier.com/pricing"],"note":"","evidence":"modeled","confidence":"medium","pros":[],"cons":[],"id":"fixed-automations--build--replace-with-ai-three-custom-jobs","recipe_id":"fixed-automations"},{"type":"open_source","name":"n8n","product_id":"n8n","url":"https://n8n.io","repo_url":null,"license":"source_available","covers":["Multi-step automations (Zaps)","App integrations","Filters and paths","AI agents","Webhooks"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Zapier Professional","scope":"1 seat. Self-hosted Community edition is free with unlimited executions (you run it).","seats":1,"savings":{"baseline_monthly":19.99,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-1020,"year_one_net":-1220,"payback_months":null,"hourly_value":50},"best_for":"Self-hosted Community edition is free with unlimited executions (you run it).","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":4,"sources":["https://zapier.com/pricing","https://n8n.io/pricing/"],"evidence":"modeled","confidence":"low","option_id":"zapier__open_source__n8n","id":"fixed-automations--open_source--n8n","recipe_id":"fixed-automations"},{"type":"open_source","name":"Activepieces","product_id":"activepieces","url":"https://www.activepieces.com","repo_url":null,"license":"open_source","covers":["Multi-step automations (Zaps)","App integrations","AI agents","Webhooks"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Zapier Professional","scope":"1 seat. MIT-core open source; free tier or Plus $20/mo flat.","seats":1,"savings":{"baseline_monthly":19.99,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-1020,"year_one_net":-1220,"payback_months":null,"hourly_value":50},"best_for":"MIT-core open source; free tier or Plus $20/mo flat.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":4,"sources":["https://zapier.com/pricing","https://www.activepieces.com/pricing"],"evidence":"modeled","confidence":"low","option_id":"zapier__open_source__activepieces","id":"fixed-automations--open_source--activepieces","recipe_id":"fixed-automations"},{"type":"open_source","name":"n8n","product_id":"n8n","url":"https://n8n.io","repo_url":null,"license":"source_available","covers":["Visual scenario builder","App integrations","Routers and filters","Webhooks","AI agents"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Make Core","scope":"1 seat. Self-host free.","seats":1,"savings":{"baseline_monthly":12,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-1116,"year_one_net":-1316,"payback_months":null,"hourly_value":50},"best_for":"Self-host free.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":4,"sources":["https://www.make.com/en/pricing","https://n8n.io/pricing/"],"evidence":"modeled","confidence":"low","option_id":"make__open_source__n8n","id":"fixed-automations--open_source--n8n-2","recipe_id":"fixed-automations"},{"type":"open_source","name":"Activepieces","product_id":"activepieces","url":"https://www.activepieces.com","repo_url":null,"license":"open_source","covers":["Visual scenario builder","App integrations","Webhooks","AI agents"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Make Core","scope":"1 seat. Open-source alternative; self-host or hosted free tier.","seats":1,"savings":{"baseline_monthly":12,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-1116,"year_one_net":-1316,"payback_months":null,"hourly_value":50},"best_for":"Open-source alternative; self-host or hosted free tier.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":4,"sources":["https://www.make.com/en/pricing","https://www.activepieces.com/pricing"],"evidence":"modeled","confidence":"low","option_id":"make__open_source__activepieces","id":"fixed-automations--open_source--activepieces-2","recipe_id":"fixed-automations"},{"type":"open_source","name":"Activepieces","product_id":"activepieces","url":"https://www.activepieces.com","license_note":"MIT core with separately licensed enterprise features; validate the exact edition.","covers":["Webhook triggers","Scheduled jobs","Mapping","Retries","Failure alerts"],"savings":null,"sources":["https://www.activepieces.com"],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"fixed-automations--open_source--activepieces-2-2","recipe_id":"fixed-automations"},{"type":"open_source","name":"n8n","product_id":"n8n","url":"https://n8n.io","license_note":"Sustainable Use License / source-available, not an unrestricted open-source SaaS-resale license. Review permitted use before hosting for customers.","covers":["Webhook triggers","Scheduled jobs","Mapping","Retries","Failure alerts"],"savings":null,"sources":["https://n8n.io"],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"fixed-automations--open_source--n8n-2-2","recipe_id":"fixed-automations"}],"best_path_id":"fixed-automations--switch--make","best_year_one_net":46,"path_types":["switch","open_source","build"],"incumbent_names":["Zapier","Make"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: A handful of stable automations\n\nReplaces the part of **Zapier, Make** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Webhook triggers\n- Scheduled jobs\n- Mapping\n- Retries\n- Failure alerts\n\n## Out of scope (do not build)\n- Thousands of connectors\n- Arbitrary visual builder\n- Enterprise controls\n- Zero-maintenance API updates\n\n## Data model\n- Workflow, Run, Delivery, CredentialReference\n\n## Approach\nTranslate named workflows into small jobs with idempotency keys, a queue, retry logs and human-visible failures.\n\n## Check before building\n- Task/credit units mapped per workflow\n- Connector and API permissions checked\n- High enough bill to justify work\n- Commercial license checked\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- n8n: https://n8n.io\n- Activepieces: https://www.activepieces.com\n- n8n: https://n8n.io\n- Activepieces: https://www.activepieces.com\n- Activepieces: https://www.activepieces.com\n- n8n: https://n8n.io\n\n## Cost targets\n- Incumbent baseline: $20/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Webhook triggers works end to end with seeded data\n- Scheduled jobs works end to end with seeded data\n- Mapping works end to end with seeded data\n- Retries works end to end with seeded data\n- Failure alerts works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/fixed-automations (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-google-ai-pro","title":"General AI assistant","category":"AI chat","incumbents":["google_ai_pro"],"features_used":["Chat with AI","Image generation","Cloud storage"],"excluded":["Deep research","Video generation (Flow/Veo)","Gemini in Gmail and Docs","NotebookLM higher limits","Coding agent (Antigravity/Jules)","Family sharing"],"eligibility":["You only rely on: Chat with AI, Image generation, Cloud storage","Export your data from Google AI Pro (Gemini) before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"bundled","name":"Google Workspace","product_id":"google_workspace","url":"https://workspace.google.com","repo_url":null,"license":"proprietary","covers":["Chat with AI","Gemini in Gmail and Docs","Cloud storage"],"missing":["Image generation"],"feature_coverage":0.67,"incumbent_plan":"Google AI Pro (Gemini) Google AI Plus","scope":"1 seat. Workspace business plans include Gemini in Gmail/Docs and pooled storage; a separate personal AI Pro may be redundant.","seats":1,"savings":{"baseline_monthly":4.99,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":0.5,"setup_total":25,"annual_recurring":60,"year_one_net":35,"payback_months":5.0,"hourly_value":50},"best_for":"Workspace business plans include Gemini in Gmail/Docs and pooled storage; a separate personal AI Pro may be redundant.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":1,"sources":["https://one.google.com/about/google-ai-plans/","https://workspace.google.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"google_ai_pro__bundled__google_workspace","id":"replace-google-ai-pro--bundled--google-workspace","recipe_id":"replace-google-ai-pro"},{"type":"switch","name":"ChatGPT (free tier)","product_id":"chatgpt","url":"https://chatgpt.com","repo_url":null,"license":"proprietary","covers":["Chat with AI","Image generation","Deep research"],"missing":["Cloud storage"],"feature_coverage":0.67,"incumbent_plan":"Google AI Pro (Gemini) Google AI Plus","scope":"1 seat. If your use fits the free tier (Unlimited text chats with guardrails; limited uploads, image generation, voice, deep research).","seats":1,"savings":{"baseline_monthly":4.99,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":60,"year_one_net":10,"payback_months":10.0,"hourly_value":50},"best_for":"ChatGPT Free covers casual chat with limited image generation and deep research; no storage bundle.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":1,"sources":["https://one.google.com/about/google-ai-plans/","https://chatgpt.com/pricing/"],"evidence":"modeled","confidence":"medium","option_id":"google_ai_pro__competitor__chatgpt_free","id":"replace-google-ai-pro--switch--chatgpt-free-tier","recipe_id":"replace-google-ai-pro"}],"best_path_id":"replace-google-ai-pro--bundled--google-workspace","best_year_one_net":35,"path_types":["switch","bundled"],"incumbent_names":["Google AI Pro (Gemini)"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: General AI assistant\n\nReplaces the part of **Google AI Pro (Gemini)** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Chat with AI\n- Image generation\n- Cloud storage\n\n## Out of scope (do not build)\n- Deep research\n- Video generation (Flow/Veo)\n- Gemini in Gmail and Docs\n- NotebookLM higher limits\n- Coding agent (Antigravity/Jules)\n- Family sharing\n\n## Check before building\n- You only rely on: Chat with AI, Image generation, Cloud storage\n- Export your data from Google AI Pro (Gemini) before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Cost targets\n- Incumbent baseline: $5/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Chat with AI works end to end with seeded data\n- Image generation works end to end with seeded data\n- Cloud storage works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-google-ai-pro (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-hypefury","title":"Social media scheduler","category":"Social scheduling","incumbents":["hypefury"],"features_used":["Schedule posts","Thread composer"],"excluded":["Evergreen recycling","Auto-plugs","Cross-posting","Engagement builder"],"eligibility":["You only rely on: Schedule posts, Thread composer","Export your data from Hypefury before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"switch","name":"Buffer (free tier)","product_id":"buffer","url":"https://buffer.com","repo_url":null,"license":"proprietary","covers":["Schedule posts","Cross-posting"],"missing":["Thread composer"],"feature_coverage":0.5,"incumbent_plan":"Hypefury Flexible","scope":"1 seat. If your use fits the free tier (Up to 3 channels).","seats":1,"savings":{"baseline_monthly":6,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":72,"year_one_net":22,"payback_months":8.3,"hourly_value":50},"best_for":"Buffer Free for up to 3 channels.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":1,"sources":["https://hypefury.com/pricing/","https://buffer.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"hypefury__competitor__buffer_free","id":"replace-hypefury--switch--buffer-free-tier","recipe_id":"replace-hypefury"},{"type":"open_source","name":"Postiz","product_id":"postiz","url":"https://postiz.com","repo_url":null,"license":"open_source","covers":["Schedule posts","Thread composer","Cross-posting"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Hypefury Flexible","scope":"1 seat. Self-host free.","seats":1,"savings":{"baseline_monthly":6,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-1188,"year_one_net":-1388,"payback_months":null,"hourly_value":50},"best_for":"Self-host free.","pros":[],"cons":[],"porting_ease":4,"porting_notes":null,"maintenance":4,"sources":["https://hypefury.com/pricing/","https://postiz.com/pricing"],"evidence":"modeled","confidence":"low","option_id":"hypefury__open_source__postiz","id":"replace-hypefury--open_source--postiz","recipe_id":"replace-hypefury"}],"best_path_id":"replace-hypefury--switch--buffer-free-tier","best_year_one_net":22,"path_types":["switch","open_source"],"incumbent_names":["Hypefury"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Social media scheduler\n\nReplaces the part of **Hypefury** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Schedule posts\n- Thread composer\n\n## Out of scope (do not build)\n- Evergreen recycling\n- Auto-plugs\n- Cross-posting\n- Engagement builder\n\n## Check before building\n- You only rely on: Schedule posts, Thread composer\n- Export your data from Hypefury before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- Postiz: https://postiz.com\n\n## Cost targets\n- Incumbent baseline: $6/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Schedule posts works end to end with seeded data\n- Thread composer works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-hypefury (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-railway","title":"App hosting PaaS","category":"Hosting","incumbents":["railway"],"features_used":["Deploy from Git or Docker","Managed databases","Custom domains"],"excluded":["Cron jobs","Private networking","Object storage","Environments and PR previews"],"eligibility":["You only rely on: Deploy from Git or Docker, Managed databases, Custom domains","Export your data from Railway before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"switch","name":"Render (free tier)","product_id":"render","url":"https://render.com","repo_url":null,"license":"proprietary","covers":["Deploy from Git or Docker","Managed databases","Custom domains"],"missing":[],"feature_coverage":1.0,"incumbent_plan":"Railway Hobby","scope":"1 seat. If your use fits the free tier (Free instances (512 MB, sleeps); limitations apply).","seats":1,"savings":{"baseline_monthly":5,"new_cash_monthly":0,"maintenance_hours_monthly":0,"new_monthly_with_time":0,"setup_cash":0,"setup_hours":1,"setup_total":50,"annual_recurring":60,"year_one_net":10,"payback_months":10.0,"hourly_value":50},"best_for":"Render's free instances (sleep when idle) cover hobby apps.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":1,"sources":["https://railway.com/pricing","https://render.com/pricing"],"evidence":"modeled","confidence":"medium","option_id":"railway__competitor__render_free","id":"replace-railway--switch--render-free-tier","recipe_id":"replace-railway"}],"best_path_id":"replace-railway--switch--render-free-tier","best_year_one_net":10,"path_types":["switch"],"incumbent_names":["Railway"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: App hosting PaaS\n\nReplaces the part of **Railway** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Deploy from Git or Docker\n- Managed databases\n- Custom domains\n\n## Out of scope (do not build)\n- Cron jobs\n- Private networking\n- Object storage\n- Environments and PR previews\n\n## Check before building\n- You only rely on: Deploy from Git or Docker, Managed databases, Custom domains\n- Export your data from Railway before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Cost targets\n- Incumbent baseline: $5/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Deploy from Git or Docker works end to end with seeded data\n- Managed databases works end to end with seeded data\n- Custom domains works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-railway (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"testimonial-wall","title":"Owned testimonial collection and widget","category":"Testimonials","incumbents":["senja"],"features_used":["Text collection","Consent","Moderation","Embeddable wall"],"excluded":["Video processing suite","Automatic social scraping","Large template library","Testimonial discovery"],"eligibility":["Consent and withdrawal supported","No invented reviews","Existing infrastructure available","Business needs text scope only"],"entities":["Testimonial","Consent","Widget","Withdrawal"],"build_scope":"Build text-only collection and a responsive widget in an existing website; use a provider for video when needed.","priority":"A","build_request":"Portable text testimonial widget with moderation and recorded usage consent.","source":"catalog_seed","paths":[{"type":"build","name":"Replace with AI: owned text wall","product_id":null,"url":null,"license_note":null,"covers":["Text collection","Consent","Moderation","Embeddable wall"],"scope":"One website; text testimonials, consent and moderation","excluded":"No video, social imports or full widget library. Hosting uses existing stack capacity.","incumbent_plan":"Senja Starter","seats":1,"savings":{"baseline_monthly":29,"new_cash_monthly":5,"maintenance_hours_monthly":0.25,"new_monthly_with_time":17.5,"setup_cash":50,"setup_hours":4,"setup_total":250,"annual_recurring":138,"year_one_net":-112,"payback_months":21.7,"hourly_value":50},"sources":["https://senja.io/pricing"],"note":"","evidence":"modeled","confidence":"medium","pros":[],"cons":[],"id":"testimonial-wall--build--replace-with-ai-owned-text-wall","recipe_id":"testimonial-wall"}],"best_path_id":"testimonial-wall--build--replace-with-ai-owned-text-wall","best_year_one_net":-112,"path_types":["build"],"incumbent_names":["Senja"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Owned testimonial collection and widget\n\nReplaces the part of **Senja** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Text collection\n- Consent\n- Moderation\n- Embeddable wall\n\n## Out of scope (do not build)\n- Video processing suite\n- Automatic social scraping\n- Large template library\n- Testimonial discovery\n\n## Data model\n- Testimonial, Consent, Widget, Withdrawal\n\n## Approach\nBuild text-only collection and a responsive widget in an existing website; use a provider for video when needed.\n\n## Check before building\n- Consent and withdrawal supported\n- No invented reviews\n- Existing infrastructure available\n- Business needs text scope only\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Cost targets\n- Incumbent baseline: $29/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Text collection works end to end with seeded data\n- Consent works end to end with seeded data\n- Moderation works end to end with seeded data\n- Embeddable wall works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/testimonial-wall (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"booking-page","title":"Basic appointment booking","category":"Scheduling","incumbents":["calendly"],"features_used":["Booking page","Availability","Timezone handling","Calendar events","Reminders"],"excluded":["Complex round-robin","Multi-resource scheduling","Enterprise routing","Guaranteed external calendar uptime"],"eligibility":["First compare free Calendly and hosted alternatives","OAuth and daylight-saving tests pass","Calendar conflicts handled"],"entities":["Availability","Booking","CalendarConnection"],"build_scope":"Customize a maintained scheduling foundation; do not write calendar synchronization from scratch for a low-cost solo account.","priority":"C","build_request":"Migration or specialized booking rules, not another generic scheduling app.","source":"catalog_seed","paths":[{"type":"build","name":"Replace with AI: custom scheduler","product_id":null,"url":null,"license_note":null,"covers":["Booking page","Availability","Timezone handling","Calendar events","Reminders"],"scope":"One user; availability, calendar event creation and reminders","excluded":"No team scheduling; example deliberately retains maintenance rather than treating code as free.","incumbent_plan":"Calendly Standard","seats":1,"savings":{"baseline_monthly":10,"new_cash_monthly":15,"maintenance_hours_monthly":0.5,"new_monthly_with_time":40.0,"setup_cash":100,"setup_hours":6,"setup_total":400,"annual_recurring":-360,"year_one_net":-760,"payback_months":null,"hourly_value":50},"sources":["https://calendly.com/pricing"],"note":"","evidence":"modeled","confidence":"medium","pros":[],"cons":[],"id":"booking-page--build--replace-with-ai-custom-scheduler","recipe_id":"booking-page"},{"type":"switch","name":"Cal.com","product_id":"cal_com","url":"https://cal.com","license_note":null,"covers":["Booking page","Availability","Timezone handling","Calendar events","Reminders"],"savings":null,"sources":["https://cal.com"],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"booking-page--switch--cal-com","recipe_id":"booking-page"},{"type":"open_source","name":"Cal.diy","product_id":"cal_diy","url":"https://github.com/calcom/cal.diy","license_note":"Current calcom/cal.com repository redirects here. Verify current license, maintenance and hosted-vs-community feature differences; no license certification in this seed.","covers":["Booking page","Availability","Timezone handling","Calendar events","Reminders"],"savings":null,"sources":["https://github.com/calcom/cal.diy"],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"booking-page--open_source--cal-diy","recipe_id":"booking-page"}],"best_path_id":"booking-page--build--replace-with-ai-custom-scheduler","best_year_one_net":-760,"path_types":["switch","open_source","build"],"incumbent_names":["Calendly"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Basic appointment booking\n\nReplaces the part of **Calendly** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Booking page\n- Availability\n- Timezone handling\n- Calendar events\n- Reminders\n\n## Out of scope (do not build)\n- Complex round-robin\n- Multi-resource scheduling\n- Enterprise routing\n- Guaranteed external calendar uptime\n\n## Data model\n- Availability, Booking, CalendarConnection\n\n## Approach\nCustomize a maintained scheduling foundation; do not write calendar synchronization from scratch for a low-cost solo account.\n\n## Check before building\n- First compare free Calendly and hosted alternatives\n- OAuth and daylight-saving tests pass\n- Calendar conflicts handled\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- Cal.diy: https://github.com/calcom/cal.diy\n\n## Cost targets\n- Incumbent baseline: $10/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Booking page works end to end with seeded data\n- Availability works end to end with seeded data\n- Timezone handling works end to end with seeded data\n- Calendar events works end to end with seeded data\n- Reminders works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/booking-page (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-descript","title":"Video podcast editing","category":"Video recording","incumbents":["descript"],"features_used":["Text-based video editing","Transcription"],"excluded":["Screen recording","Remote recording","AI voice (Overdub)","Studio Sound cleanup","Captions"],"eligibility":["You only rely on: Text-based video editing, Transcription","Export your data from Descript before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"open_source","name":"Cap","product_id":"cap","url":"https://cap.so","repo_url":null,"license":"open_source","covers":["Screen recording"],"missing":["Text-based video editing","Transcription"],"feature_coverage":0.0,"incumbent_plan":"Descript Hobbyist","scope":"1 seat. Open-source screen recorder for quick demos.","seats":1,"savings":{"baseline_monthly":24,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-972,"year_one_net":-1172,"payback_months":null,"hourly_value":50},"best_for":"Open-source screen recorder for quick demos.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":4,"sources":["https://www.descript.com/pricing","https://cap.so/pricing"],"evidence":"modeled","confidence":"low","option_id":"descript__open_source__cap","id":"replace-descript--open_source--cap","recipe_id":"replace-descript"},{"type":"open_source","name":"whisper.cpp","product_id":"whisper_cpp","url":"https://github.com/ggml-org/whisper.cpp","repo_url":null,"license":"open_source","covers":["Transcription","Captions"],"missing":["Text-based video editing"],"feature_coverage":0.5,"incumbent_plan":"Descript Hobbyist","scope":"1 seat. Free local transcription and subtitles.","seats":1,"savings":{"baseline_monthly":24,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-972,"year_one_net":-1172,"payback_months":null,"hourly_value":50},"best_for":"Free local transcription and subtitles.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":4,"sources":["https://www.descript.com/pricing","https://github.com/ggml-org/whisper.cpp"],"evidence":"modeled","confidence":"low","option_id":"descript__open_source__whisper_cpp","id":"replace-descript--open_source--whisper-cpp","recipe_id":"replace-descript"}],"best_path_id":"replace-descript--open_source--cap","best_year_one_net":-1172,"path_types":["open_source"],"incumbent_names":["Descript"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Video podcast editing\n\nReplaces the part of **Descript** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Text-based video editing\n- Transcription\n\n## Out of scope (do not build)\n- Screen recording\n- Remote recording\n- AI voice (Overdub)\n- Studio Sound cleanup\n- Captions\n\n## Check before building\n- You only rely on: Text-based video editing, Transcription\n- Export your data from Descript before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- Cap: https://cap.so\n- whisper.cpp: https://github.com/ggml-org/whisper.cpp\n\n## Cost targets\n- Incumbent baseline: $24/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Text-based video editing works end to end with seeded data\n- Transcription works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-descript (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"replace-elevenlabs","title":"AI voice TTS","category":"AI APIs","incumbents":["elevenlabs"],"features_used":["Text-to-speech","Voice cloning","API access"],"excluded":["Speech-to-text","Dubbing","Studio (long-form audio)","Voice agents","Sound effects and music"],"eligibility":["You only rely on: Text-to-speech, Voice cloning, API access","Export your data from ElevenLabs before canceling"],"entities":[],"build_scope":null,"priority":null,"build_request":null,"source":"stackcut_index","paths":[{"type":"open_source","name":"whisper.cpp","product_id":"whisper_cpp","url":"https://github.com/ggml-org/whisper.cpp","repo_url":null,"license":"open_source","covers":["Speech-to-text"],"missing":["Text-to-speech","Voice cloning","API access"],"feature_coverage":0.0,"incumbent_plan":"ElevenLabs Starter","scope":"1 seat. Free local transcription only; does not replace TTS or voice cloning.","seats":1,"savings":{"baseline_monthly":6,"new_cash_monthly":5,"maintenance_hours_monthly":2,"new_monthly_with_time":105,"setup_cash":0,"setup_hours":4,"setup_total":200,"annual_recurring":-1188,"year_one_net":-1388,"payback_months":null,"hourly_value":50},"best_for":"Free local transcription only; does not replace TTS or voice cloning.","pros":[],"cons":[],"porting_ease":3,"porting_notes":null,"maintenance":4,"sources":["https://elevenlabs.io/pricing","https://github.com/ggml-org/whisper.cpp"],"evidence":"modeled","confidence":"low","option_id":"elevenlabs__open_source__whisper_cpp","id":"replace-elevenlabs--open_source--whisper-cpp","recipe_id":"replace-elevenlabs"}],"best_path_id":"replace-elevenlabs--open_source--whisper-cpp","best_year_one_net":-1388,"path_types":["open_source"],"incumbent_names":["ElevenLabs"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: AI voice TTS\n\nReplaces the part of **ElevenLabs** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Text-to-speech\n- Voice cloning\n- API access\n\n## Out of scope (do not build)\n- Speech-to-text\n- Dubbing\n- Studio (long-form audio)\n- Voice agents\n- Sound effects and music\n\n## Check before building\n- You only rely on: Text-to-speech, Voice cloning, API access\n- Export your data from ElevenLabs before canceling\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- whisper.cpp: https://github.com/ggml-org/whisper.cpp\n\n## Cost targets\n- Incumbent baseline: $6/month. Keep hosting + APIs + upkeep well under that.\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Text-to-speech works end to end with seeded data\n- Voice cloning works end to end with seeded data\n- API access works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/replace-elevenlabs (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"structured-extraction","title":"A few document layouts to structured data","category":"Document extraction","incumbents":["docparser"],"features_used":["Upload","Field extraction","Schema validation","Review queue","CSV/JSON export"],"excluded":["Guaranteed arbitrary OCR","Human review elimination","Regulated-document assurances","Unlimited layout support"],"eligibility":["Known document classes","Quality benchmark passes","Per-page/API cost included","Human correction time measured"],"entities":["Document","Extraction","FieldEvidence","Review"],"build_scope":"Use native text parsing first and a paid extraction/model API when necessary; preserve evidence and route uncertainty to review.","priority":"B","build_request":"Specific invoice/order parsing pack with a labeled evaluation set and exception workflow.","source":"catalog_seed","paths":[{"type":"build","name":"Replace with AI: a few document layouts to structured data","product_id":null,"covers":["Upload","Field extraction","Schema validation","Review queue","CSV/JSON export"],"scope":"Use native text parsing first and a paid extraction/model API when necessary; preserve evidence and route uncertainty to review.","savings":null,"sources":[],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"structured-extraction--build--replace-with-ai-a-few-document-layouts-to-structured-data","recipe_id":"structured-extraction"}],"best_path_id":null,"best_year_one_net":null,"path_types":["build"],"incumbent_names":["Docparser"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: A few document layouts to structured data\n\nReplaces the part of **Docparser** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Upload\n- Field extraction\n- Schema validation\n- Review queue\n- CSV/JSON export\n\n## Out of scope (do not build)\n- Guaranteed arbitrary OCR\n- Human review elimination\n- Regulated-document assurances\n- Unlimited layout support\n\n## Data model\n- Document, Extraction, FieldEvidence, Review\n\n## Approach\nUse native text parsing first and a paid extraction/model API when necessary; preserve evidence and route uncertainty to review.\n\n## Check before building\n- Known document classes\n- Quality benchmark passes\n- Per-page/API cost included\n- Human correction time measured\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Cost targets\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Upload works end to end with seeded data\n- Field extraction works end to end with seeded data\n- Schema validation works end to end with seeded data\n- Review queue works end to end with seeded data\n- CSV/JSON export works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/structured-extraction (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"kpi-reports","title":"A few recurring KPI reports","category":"Reporting","incumbents":["databox"],"features_used":["Authorized data imports","Metric definitions","Charts","Scheduled digest"],"excluded":["Hundreds of connectors","General semantic layer","Arbitrary report builder","Attribution parity"],"eligibility":["Source API access already exists","Metric definitions approved","Timezones and deduplication tested","Connector upkeep included"],"entities":["Source","Metric","Observation","Report"],"build_scope":"Build connector-specific ingestion and a handful of agreed metrics on a maintained reporting foundation.","priority":"A","build_request":"Three-source weekly founder report with explicit metric definitions and reconciliation.","source":"catalog_seed","paths":[{"type":"switch","name":"Metabase","product_id":"metabase","url":"https://www.metabase.com/start/oss","license_note":"Open-source edition plus paid tiers; check embedding, permissions and SSO requirements.","covers":["Authorized data imports","Metric definitions","Charts","Scheduled digest"],"savings":null,"sources":["https://www.metabase.com/start/oss"],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"kpi-reports--switch--metabase","recipe_id":"kpi-reports"},{"type":"open_source","name":"Metabase","product_id":"metabase","url":"https://www.metabase.com/start/oss","license_note":"Open-source edition plus paid tiers; check embedding, permissions and SSO requirements.","covers":["Authorized data imports","Metric definitions","Charts","Scheduled digest"],"savings":null,"sources":["https://www.metabase.com/start/oss"],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"kpi-reports--open_source--metabase","recipe_id":"kpi-reports"},{"type":"build","name":"Replace with AI: a few recurring kpi reports","product_id":null,"covers":["Authorized data imports","Metric definitions","Charts","Scheduled digest"],"scope":"Build connector-specific ingestion and a handful of agreed metrics on a maintained reporting foundation.","savings":null,"sources":[],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"kpi-reports--build--replace-with-ai-a-few-recurring-kpi-reports","recipe_id":"kpi-reports"}],"best_path_id":null,"best_year_one_net":null,"path_types":["switch","open_source","build"],"incumbent_names":["Databox"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: A few recurring KPI reports\n\nReplaces the part of **Databox** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Authorized data imports\n- Metric definitions\n- Charts\n- Scheduled digest\n\n## Out of scope (do not build)\n- Hundreds of connectors\n- General semantic layer\n- Arbitrary report builder\n- Attribution parity\n\n## Data model\n- Source, Metric, Observation, Report\n\n## Approach\nBuild connector-specific ingestion and a handful of agreed metrics on a maintained reporting foundation.\n\n## Check before building\n- Source API access already exists\n- Metric definitions approved\n- Timezones and deduplication tested\n- Connector upkeep included\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- Metabase: https://www.metabase.com/start/oss\n\n## Cost targets\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Authorized data imports works end to end with seeded data\n- Metric definitions works end to end with seeded data\n- Charts works end to end with seeded data\n- Scheduled digest works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/kpi-reports (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"work-tracker","title":"A single team work-tracking process","category":"Work management","incumbents":["asana","monday_com","clickup","smartsheet"],"features_used":["Tasks","Owners","Statuses","Due dates","A few reports"],"excluded":["Full portfolio planning","Universal dependency engine","All integrations","Full collaboration parity"],"eligibility":["Team agrees to narrower workflow","Dependencies preserved","Training cost counted","Free/downgraded tier checked"],"entities":["Task","Project","Owner","StatusChange"],"build_scope":"Build one workflow or configure a simpler tool, not an entire project-management platform.","priority":"B","build_request":"Niche production checklist or client approvals, not a generic Asana clone.","source":"catalog_seed","paths":[{"type":"open_source","name":"Baserow","product_id":"baserow","url":"https://baserow.io","license_note":"MIT for non-premium/non-enterprise core per official repository; paid editions have separate terms. https://github.com/baserow/baserow","covers":["Tasks","Owners","Statuses","Due dates","A few reports"],"savings":null,"sources":["https://baserow.io"],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"work-tracker--open_source--baserow","recipe_id":"work-tracker"},{"type":"build","name":"Replace with AI: a single team work-tracking process","product_id":null,"covers":["Tasks","Owners","Statuses","Due dates","A few reports"],"scope":"Build one workflow or configure a simpler tool, not an entire project-management platform.","savings":null,"sources":[],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"work-tracker--build--replace-with-ai-a-single-team-work-tracking-process","recipe_id":"work-tracker"}],"best_path_id":null,"best_year_one_net":null,"path_types":["open_source","build"],"incumbent_names":["Asana","monday.com","ClickUp","Smartsheet"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: A single team work-tracking process\n\nReplaces the part of **Asana, monday.com, ClickUp, Smartsheet** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Tasks\n- Owners\n- Statuses\n- Due dates\n- A few reports\n\n## Out of scope (do not build)\n- Full portfolio planning\n- Universal dependency engine\n- All integrations\n- Full collaboration parity\n\n## Data model\n- Task, Project, Owner, StatusChange\n\n## Approach\nBuild one workflow or configure a simpler tool, not an entire project-management platform.\n\n## Check before building\n- Team agrees to narrower workflow\n- Dependencies preserved\n- Training cost counted\n- Free/downgraded tier checked\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- Baserow: https://baserow.io\n\n## Cost targets\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Tasks works end to end with seeded data\n- Owners works end to end with seeded data\n- Statuses works end to end with seeded data\n- Due dates works end to end with seeded data\n- A few reports works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/work-tracker (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"basic-web-analytics","title":"Basic website and conversion analytics","category":"Analytics","incumbents":["mixpanel","amplitude","plausible"],"features_used":["Pageviews","Referrers","Named events","Simple conversion report"],"excluded":["Full retention/cohort engine","Experiment platform","Identity resolution parity","Session replay"],"eligibility":["Actual event volume known","Free tiers compared","Required funnels supported","Privacy/retention requirements reviewed"],"entities":["Event","Session","Goal"],"build_scope":"Deploy a maintained tracker or build a few reports on an existing event pipeline; do not rebuild general event infrastructure.","priority":"B","build_request":"Existing analytics migration and narrowly scoped KPI report pack.","source":"catalog_seed","paths":[{"type":"open_source","name":"Umami","product_id":"umami","url":"https://umami.is","license_note":"Inspect current repository license and hosted-plan features.","covers":["Pageviews","Referrers","Named events","Simple conversion report"],"savings":null,"sources":["https://umami.is"],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"basic-web-analytics--open_source--umami","recipe_id":"basic-web-analytics"},{"type":"build","name":"Replace with AI: basic website and conversion analytics","product_id":null,"covers":["Pageviews","Referrers","Named events","Simple conversion report"],"scope":"Deploy a maintained tracker or build a few reports on an existing event pipeline; do not rebuild general event infrastructure.","savings":null,"sources":[],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"basic-web-analytics--build--replace-with-ai-basic-website-and-conversion-analytics","recipe_id":"basic-web-analytics"}],"best_path_id":null,"best_year_one_net":null,"path_types":["open_source","build"],"incumbent_names":["Mixpanel","Amplitude","Plausible Analytics"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Basic website and conversion analytics\n\nReplaces the part of **Mixpanel, Amplitude, Plausible Analytics** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Pageviews\n- Referrers\n- Named events\n- Simple conversion report\n\n## Out of scope (do not build)\n- Full retention/cohort engine\n- Experiment platform\n- Identity resolution parity\n- Session replay\n\n## Data model\n- Event, Session, Goal\n\n## Approach\nDeploy a maintained tracker or build a few reports on an existing event pipeline; do not rebuild general event infrastructure.\n\n## Check before building\n- Actual event volume known\n- Free tiers compared\n- Required funnels supported\n- Privacy/retention requirements reviewed\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- Umami: https://umami.is\n\n## Cost targets\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Pageviews works end to end with seeded data\n- Referrers works end to end with seeded data\n- Named events works end to end with seeded data\n- Simple conversion report works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/basic-web-analytics (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"admin-panel","title":"Purpose-built admin panel or client portal","category":"Internal tools","incumbents":["retool","softr"],"features_used":["Authenticated CRUD","Table views","Search","Actions","Audit log"],"excluded":["Generic app builder","Enterprise SSO parity","Arbitrary resource connectors","Mobile offline platform"],"eligibility":["No browser-accessible privileged credentials","Every server action authorizes tenant","Backend API costs retained"],"entities":["User","Role","BusinessRecord","ActionLog"],"build_scope":"Build the used screens directly against approved APIs and a database, with least-privilege service accounts.","priority":"A","build_request":"Order/booking administration or client portal with deployment in the buyer’s existing stack.","source":"catalog_seed","paths":[{"type":"switch","name":"Baserow","product_id":"baserow","url":"https://baserow.io","license_note":"MIT for non-premium/non-enterprise core per official repository; paid editions have separate terms. https://github.com/baserow/baserow","covers":["Authenticated CRUD","Table views","Search","Actions","Audit log"],"savings":null,"sources":["https://baserow.io"],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"admin-panel--switch--baserow","recipe_id":"admin-panel"},{"type":"open_source","name":"Appsmith","product_id":"appsmith","url":"https://github.com/appsmithorg/appsmith","license_note":"Open-core; inspect current Apache-licensed core and paid enterprise features.","covers":["Authenticated CRUD","Table views","Search","Actions","Audit log"],"savings":null,"sources":["https://github.com/appsmithorg/appsmith"],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"admin-panel--open_source--appsmith","recipe_id":"admin-panel"},{"type":"build","name":"Replace with AI: purpose-built admin panel or client portal","product_id":null,"covers":["Authenticated CRUD","Table views","Search","Actions","Audit log"],"scope":"Build the used screens directly against approved APIs and a database, with least-privilege service accounts.","savings":null,"sources":[],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"admin-panel--build--replace-with-ai-purpose-built-admin-panel-or-client-portal","recipe_id":"admin-panel"}],"best_path_id":null,"best_year_one_net":null,"path_types":["switch","open_source","build"],"incumbent_names":["Retool","Softr"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Purpose-built admin panel or client portal\n\nReplaces the part of **Retool, Softr** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Authenticated CRUD\n- Table views\n- Search\n- Actions\n- Audit log\n\n## Out of scope (do not build)\n- Generic app builder\n- Enterprise SSO parity\n- Arbitrary resource connectors\n- Mobile offline platform\n\n## Data model\n- User, Role, BusinessRecord, ActionLog\n\n## Approach\nBuild the used screens directly against approved APIs and a database, with least-privilege service accounts.\n\n## Check before building\n- No browser-accessible privileged credentials\n- Every server action authorizes tenant\n- Backend API costs retained\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- Appsmith: https://github.com/appsmithorg/appsmith\n\n## Cost targets\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Authenticated CRUD works end to end with seeded data\n- Table views works end to end with seeded data\n- Search works end to end with seeded data\n- Actions works end to end with seeded data\n- Audit log works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/admin-panel (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"newsletter-control","title":"Simple newsletter management","category":"Email marketing","incumbents":[],"features_used":["Lists","Templates","Campaign send","Unsubscribe"],"excluded":["Full lifecycle marketing suite","CRM intelligence","Deliverability team","Advanced customer journeys"],"eligibility":["Licensed recipient lists","Consent and unsubscribe preserved","Provider volume cost included","No required automation lost"],"entities":["Subscriber","Consent","Campaign","Suppression"],"build_scope":"Deploy maintained newsletter tooling on managed delivery infrastructure; retain suppression and consent state.","priority":"C","build_request":"Migration and template pack only after Mailchimp/Kit pricing research is completed.","source":"catalog_seed","paths":[{"type":"open_source","name":"listmonk","product_id":"listmonk","url":"https://listmonk.app","license_note":"AGPL project; mail delivery service and operational ownership remain separate.","covers":["Lists","Templates","Campaign send","Unsubscribe"],"savings":null,"sources":["https://listmonk.app"],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"newsletter-control--open_source--listmonk","recipe_id":"newsletter-control"},{"type":"build","name":"Replace with AI: simple newsletter management","product_id":null,"covers":["Lists","Templates","Campaign send","Unsubscribe"],"scope":"Deploy maintained newsletter tooling on managed delivery infrastructure; retain suppression and consent state.","savings":null,"sources":[],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"newsletter-control--build--replace-with-ai-simple-newsletter-management","recipe_id":"newsletter-control"}],"best_path_id":null,"best_year_one_net":null,"path_types":["open_source","build"],"incumbent_names":[],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Simple newsletter management\n\nReplaces the part of **** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Lists\n- Templates\n- Campaign send\n- Unsubscribe\n\n## Out of scope (do not build)\n- Full lifecycle marketing suite\n- CRM intelligence\n- Deliverability team\n- Advanced customer journeys\n\n## Data model\n- Subscriber, Consent, Campaign, Suppression\n\n## Approach\nDeploy maintained newsletter tooling on managed delivery infrastructure; retain suppression and consent state.\n\n## Check before building\n- Licensed recipient lists\n- Consent and unsubscribe preserved\n- Provider volume cost included\n- No required automation lost\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Start from (optional)\n- listmonk: https://listmonk.app\n\n## Cost targets\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Lists works end to end with seeded data\n- Templates works end to end with seeded data\n- Campaign send works end to end with seeded data\n- Unsubscribe works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/newsletter-control (recipe v1). Modeled savings, not a guarantee.\n"}},{"id":"published-knowledge","title":"Static public docs or a small internal handbook","category":"Knowledge","incumbents":["notion"],"features_used":["Pages","Navigation","Search","Version history"],"excluded":["Real-time collaborative workspace","Notion databases","Full comments/history migration","Notion AI"],"eligibility":["Static docs are the actual use case","Access boundary preserved","Asset and internal link migration tested","Migration cost lower than savings"],"entities":["Page","Asset","Navigation"],"build_scope":"Generate a documentation site from exported content; use the existing identity system for internal content.","priority":"C","build_request":"Public-docs publishing from a small owned content repository.","source":"catalog_seed","paths":[{"type":"build","name":"Replace with AI: static public docs or a small internal handbook","product_id":null,"covers":["Pages","Navigation","Search","Version history"],"scope":"Generate a documentation site from exported content; use the existing identity system for internal content.","savings":null,"sources":[],"evidence":"modeled","confidence":"low","pros":[],"cons":[],"id":"published-knowledge--build--replace-with-ai-static-public-docs-or-a-small-internal-handbook","recipe_id":"published-knowledge"}],"best_path_id":null,"best_year_one_net":null,"path_types":["build"],"incumbent_names":["Notion"],"version":1,"updated_at":"2026-09-24","packet":{"SPEC.md":"# SPEC: Static public docs or a small internal handbook\n\nReplaces the part of **Notion** this team actually uses. Build the smallest owned app that does exactly this, and nothing else.\n\n## Must have\n- Pages\n- Navigation\n- Search\n- Version history\n\n## Out of scope (do not build)\n- Real-time collaborative workspace\n- Notion databases\n- Full comments/history migration\n- Notion AI\n\n## Data model\n- Page, Asset, Navigation\n\n## Approach\nGenerate a documentation site from exported content; use the existing identity system for internal content.\n\n## Check before building\n- Static docs are the actual use case\n- Access boundary preserved\n- Asset and internal link migration tested\n- Migration cost lower than savings\n- A cheaper vendor or open-source path in this recipe does not already meet the need\n\n## Cost targets\n- Maintenance under 1 hour a month\n- No new per-seat subscription\n\n## Acceptance tests\n- Pages works end to end with seeded data\n- Navigation works end to end with seeded data\n- Search works end to end with seeded data\n- Version history works end to end with seeded data\n- Import: existing data from the incumbent's CSV/API export loads without loss (re-running the import creates no duplicates)\n- Export: every record can be exported as CSV/JSON\n- Access: a user can never read or change another account's records (test it)\n- Webhooks/jobs (if any) are idempotent and failures are visible\n- Backup and restore tested once\n\n## Deliver\n- Source repo you own, README with install and deploy steps\n- Migration script and a one-page rollback plan\n- Test suite covering the acceptance tests\n- Cost manifest: every paid dependency with its monthly price\n","AGENTS.md":"# AGENTS.md (Stackcut recipe packet)\n\nYou are building a small replacement for part of a SaaS product. Read SPEC.md first; it is the contract.\n\n1. Restate the Must have list and the Out of scope list before writing code. Do not build anything out of scope.\n2. Write the acceptance tests from SPEC.md first, then the smallest implementation that passes them.\n3. Prefer boring, deterministic code: forms, a database, business rules, scheduled jobs. No runtime AI unless a Must have needs it.\n4. Keep every paid dependency in COSTS.md with its monthly price; stop and ask if the total approaches the incumbent's price.\n5. Ship the import script and the export path before polishing UI.\n6. Finish with: repo, README (install, deploy, rollback), passing tests, COSTS.md.\n\nSource: https://stackcut.io/recipes/published-knowledge (recipe v1). Modeled savings, not a guarantee.\n"}}]}