Run your startupfrom your phone.

From your first idea to your first customer, build and launch your startup with AI, without spending weeks assembling the boring infrastructure.

  • IncludedShip: one command, from your phone.
  • IncludedUndo: one command, or on its own if a deploy fails.
  • IncludedHear first: Telegram or Discord pings you when something breaks.
  • IncludedAsk: ChatGPT or Claude how sales are going.
  • IncludedAlready built: login, payments, analytics, blog.
  • Included$5 server: No Vercel bill.

Take it for a spin.

The real BoringPush, running in your browser. Watch the tour, or just start clicking. Nothing you do here is saved.

Everything your startup needs. Already built in.

Pick any piece below. It's already wired up and in your repo on day one.

See everything that's included (16 features)

Analytics

You're paying for ads and can't tell which one brought the sale.

Most analytics count visits, not money. This one ties every payment back to where the customer came from, so you know which channel to double down on. A cookie-free mode is one setting away.

  • Every pageview, with entry and exit pages
  • Browser, OS and device read from each visit: Safari, Chrome, iOS, macOS and more
  • Each visit sorted into a channel: search, social, AI assistants, email, paid or referral
  • Revenue tied back to the channel that brought the buyer
  • Kept in its own SQLite file (analytics.sqlite), no third-party service
  • CSV export from the dashboard
  • Funnel builder: pick the steps and see where people drop off
  • UTM campaign breakdown
  • Country, region and city from Cloudflare headers
  • Buyer journeys: the visits before each first purchase
  • Time from first visit to first purchase
  • Events older than 90 days are cleared every day

Authentication

Someone finally tries your app. The login breaks.

The worst moment in a founder's life isn't the idea failing. It's someone finally finding your app โ€” and the sign-in page breaking. Boring ships with Google sign-in, magic links, and a local dev login that works on every database, from your first commit.

  • Google sign-in: one tap and they're in
  • Magic links by email, once you set EMAIL_SERVER
  • JWT sessions (Auth.js v5): no session table to read on every request
  • The dashboard checks the login on the server, in its layout, before anything renders
  • Dev login in one click, on your machine only: [email protected] acts like a paying customer
  • Every new account records a signup event, so "how many signed up today?" has an answer
  • Session provider wrapper for client components
  • requirePaidUser() for pages, requireApiUser() for API routes
  • Safe redirects after sign-in (safeUrl)
  • Database adapters for SQLite, MongoDB and Supabase
  • Stale-session guard: a deleted user is sent back to login

Multi-Provider Billing

Billing is where vibe-coded apps quietly lose money.

A webhook fires twice and a sale is counted twice, or not at all. Here, Stripe, Lemon Squeezy and Dodo are already wired behind one checkout route, repeated webhooks are ignored, and you can switch providers by changing one setting.

  • One checkout endpoint for every provider: /api/billing/create-checkout
  • Stripe, Lemon Squeezy and Dodo Payments adapters
  • Repeated webhooks are ignored: an order is matched on its payment reference, and that reference is unique
  • A customer portal link for each provider: /api/billing/create-portal
  • Test your paywall locally with the [email protected] dev login
  • Webhook signatures are checked for all three providers
  • Dodo signature check (Standard Webhooks, no SDK)
  • Lemon Squeezy signature check (HMAC-SHA256)
  • Stripe signature check (constructEvent)
  • Refunds and cancellations take access away (revokeAccess)
  • Cancel a subscription: /api/billing/cancel-subscription
  • A failed webhook sends you an alert

Incident Telemetry

Your app breaks at 2am. You find out from a customer at 9.

Not anymore. When a payment webhook fails, a sign-in breaks or the site throws an error, you get a short message on Telegram or Discord straight away. No Sentry subscription, no extra packages.

  • Alerts go to Telegram or Discord, whichever you set up
  • Each alert says what broke and carries the error details with it
  • The same alert is sent at most once a minute, so one failure can't flood your phone
  • Wired into the Stripe, Lemon Squeezy and Dodo webhooks, sign-in errors and site crashes
  • Webhooks don't wait for the alert to send
  • No packages: plain fetch
  • Error details attached to the alert as JSON
  • Browser crashes reach you through /api/telemetry
  • Sign-in errors on the /auth page raise an alert
  • In development, alerts print to the console when no channel is set

Zero-Lockin Engine

A $50 a month database bill before your first sale?

Run the whole app on a $5 server with SQLite: no database bill, no network hop, daily backups. When you outgrow one box, set DB_PROVIDER to supabase or mongodb and the app code stays the same. Moving your existing data over is up to you.

  • SQLite in WAL mode, with a busy timeout, a 20 MB page cache and foreign keys on
  • No database hosting bill: run the whole app on a $5 VPS
  • No network hop: queries read a local file
  • Same app code on Supabase Postgres or MongoDB: set DB_PROVIDER
  • Writes that must not collide run in BEGIN IMMEDIATE transactions
  • Scripts included: npm run db:migrate, db:optimize and backup:db
  • db:migrate takes a backup before it changes the schema
  • db:optimize runs PRAGMA optimize and truncates the WAL
  • VACUUM to reclaim disk space (db:optimize and a monthly worker)
  • SQLite errors turned into HTTP 409 and 422 answers
  • Analytics kept in a separate file, analytics.sqlite
  • backup:db keeps the last 24 snapshots
  • Mongoose models for MongoDB
  • Supabase tables in providers/db/supabase/schema.sql

In-Built Deploy

Paying Vercel and CI before anyone pays you?

Deploy to your own $5 server with one command. It builds on your laptop, swaps the new version in, and waits until the site is serving it. The previous build stays on the server, so one command puts it back. No Vercel bill, no GitHub Actions minutes.

  • One command from your laptop: boringpush deploy. No CI service to set up or pay for.
  • Lint runs first, then the build runs on your laptop and only changed files are sent, so the $5 server never builds.
  • One-command rollback: boringpush rollback puts the previous build back, with no rebuild.
  • Health wait: after the swap it waits until the new build is serving before it purges the cache. If it never does, it tells you to roll back.
  • Docker route: boringpush docker ship rolls back on its own when the health check fails.
  • Cloudflare cache purge limited to the pages your change touched.
  • boringpush doctor checks Node, git, env file, database file and disk before you ship.
  • bin/boringpush.mjs (operator CLI: doctor, status, deploy, rollback, docker, db migrate/check/backup)
  • docker/Dockerfile (multi-stage Alpine image)
  • scripts/deploy/ship.sh (lint, local build, delta rsync, swap, health wait)
  • scripts/cloudflare/smart-purge.mjs (purge only the routes that changed)
  • storage/logs/deploy.log (log of every deploy)
  • nginx/boringpush.conf (reverse proxy, long cache for _next/static)

Silent Workers

Server full at 3am because nobody cleaned it up?

No Redis and no cron service to pay for. While you sleep, built-in routines back up your database, clear old logs and free disk space, so you wake up to a server that's still running.

  • Runs from the server's own cron: setup installs the crontab for the app user, not root
  • No pile-ups: if a job is still running, the next run skips instead of starting a second copy
  • Nightly backup at 3am: VACUUM INTO snapshots in db/backups, the last 7 days kept
  • Hourly WAL checkpoint stops the write-ahead file from growing
  • Weekly log rotation, and analytics events older than 90 days cleared daily
  • Runs from cron, outside your web requests
  • Every minute: your own tiny jobs in scripts/workers/minute/
  • Hourly: WAL checkpoint (wal-checkpoint.mjs)
  • Daily: SQLite backup and analytics cleanup
  • Weekly: log rotation that keeps log streams open (log-rotate.mjs)
  • Monthly: VACUUM and PRAGMA optimize (vacuum-databases.mjs)
  • Add a job by dropping a .mjs file into a period folder

Storage

One big upload and your $5 server falls over.

Most apps choke when a few users upload files at once. Here, files go straight from the browser to Cloudflare R2 or Amazon S3. Your server only signs the upload and checks it afterwards, and R2 doesn't charge for downloads.

  • Uploads skip your server: the browser sends the file to a signed URL that expires in 2 minutes
  • Cloudflare R2 or AWS S3: switch with STORAGE_PROVIDER
  • No AWS SDK: SigV4 signing is done with Node's built-in crypto
  • Login required to upload, and each user's files live under their own prefix
  • After the upload the server checks the real size and type, and deletes files that break the limits
  • Drop-in <FileDropzone /> with drag-and-drop and a progress bar
  • uploadFileWithProgress() upload helper
  • FileDropzone component
  • SigV4 presigning (providers/storage/core/sigv4.js)
  • Size and type checked on the server with a HEAD request
  • Time-limited download links
  • File names and keys built on the server; the client's file name is never used

Feedback Boards

Paying Canny every month just to hear what users want?

Public boards with voting, categories, comments and statuses are built in. Your users tell you what to build next, and you don't pay for another tool.

  • Public boards that anyone can open and read
  • Creating a board needs paid access; voting and commenting need a login
  • One vote per signed-in user on each post
  • Statuses the board owner sets: Open, Planned, In progress, Done
  • Sort by Top or New, and filter by category
  • Comments on every post
  • Board settings screen for the owner
  • Owner can remove a post; it is marked deleted and kept in the database
  • bp boards and bp posts commands
  • MCP tools to list posts, vote, comment and set a status

Agents Build It (.agents)

You ask the AI for one change from your phone. Production breaks.

That's what happens in a normal codebase. Here, AGENTS.md and the .agents/ rules and skills give Claude Code, Cursor or Antigravity one path to follow: data first, short routes, lint before it says done. They are instructions the agent reads, plus a few guards in the scripts, like production migrations being human-only.

  • AGENTS.md and 8 rules in .agents/rules tell the agent how to work in this repo
  • 9 skills in .agents/skills: build a feature, deploy, mobile session guard, responsive UI and the boring-filter set
  • Schema first: new data goes into each database you use (SQLite, MongoDB or Supabase) before any screen
  • API routes stay thin: check the input, check the login, make one provider call
  • Migrations only add. db:migrate backs up first, and agents can't run it against production.
  • The agent is told to finish with node --check and a zero-warning lint
  • build-feature: data first, from schema to screen
  • deploy-app: how to ship
  • mobile-session-guard: rules for sessions started from a phone
  • responsive-ui: layouts that fit phones
  • boring-filter (5 skills): UI, copy, contrast and mobile layout checks
  • 01-conventions: file layout and thin-route rules

Marketplace

Gumroad takes a cut of every sale you make.

Sell digital products from your own app. You list a product, buyers check out with Stripe, Dodo or Lemon Squeezy, and the order is recorded when the payment webhook arrives. BoringPush takes no cut; your payment provider's fees still apply.

  • List a product from the dashboard. Stripe and Dodo prices are created for you; for Lemon Squeezy you paste the variant id.
  • Listing is admin-only: the owner's account sells, buyers buy
  • Each product opens a page you choose after payment (default /vault)
  • Store dashboard with your products, your sales and the total earned
  • Refunds and cancellations mark the order and take access away
  • Buyers see what they bought at /dashboard/purchases
  • Orders matched on the payment reference, so no double orders
  • One-time or recurring prices
  • Listings are soft-deleted and kept in the database
  • Check on product image URLs
  • bp products and bp orders commands

API Routes

Two hundred lines of AI spaghetti in every route?

Every endpoint is a short, plain Next.js route: check the input, check who's asking, call one function, return JSON. Easy for you and your AI to read, hard to break.

  • 49 route handlers across 22 areas: auth, billing, boards, store, webhooks, MCP
  • One login check for the browser and the CLI: requireApiUser()
  • Paid pages and features behind one guard: requirePaidUser()
  • Plain input checks against shared field limits (LIMITS), no extra library
  • Webhook signatures checked for Stripe, Lemon Squeezy and Dodo
  • JSON errors with standard HTTP status codes
  • Scoped API tokens for the CLI (read or write)
  • Rate limits on the MCP and repo-claim routes
  • Admin-only checks on admin routes
  • Safe redirect helper (safeUrl)

Terminal Control

Five dashboards open just to check on one customer?

Every feature has a command. See orders, grant a customer access, check revenue โ€” from your laptop, your phone over SSH, or by handing your AI agent a key that can only do what you allow.

  • Log in from the terminal: approve a short code in your browser, nothing to paste
  • Commands for orders, products, users, boards, posts, analytics and billing
  • Give your AI agent a read-only key, so it can look but not change
  • Anything that changes data refuses to run without an explicit --yes
  • Point the same commands at your live site with --remote
  • Revoke any key in one command
  • One small file adds a command for anything you build
  • The same login and paywall rules as the website
  • Keys expire after 90 days
  • Only a fingerprint of each key is stored, never the key
  • --json output for scripts and agents
  • Covered by the end-to-end test

Agents Use It (MCP)

Your customers ask AI for everything. Is your app there?

Every app you build on BoringPush works with Claude, ChatGPT and any other AI assistant that supports MCP, from day one. You and your users run it by chat, read-only until someone allows changes.

  • One tool list (mcp/tools.mjs) serves both the hosted /api/mcp address and the local server
  • Connect from Claude, ChatGPT or any MCP client: add a connector with your app's /api/mcp address
  • Sign-in is OAuth: users approve on your site, nothing to copy or paste
  • Read-only by default; changes need a separate, explicit tick
  • Revenue and analytics tools answer only for the app's admin, and there are no admin write tools
  • Works locally too: Claude Desktop, Claude Code and Cursor
  • Every AI request runs the same route, login and paywall checks
  • Each connection is a key you can revoke in one command
  • Rate-limited per connection, not per address
  • Covered by the end-to-end test
  • No new database tables
  • Add a tool for your own feature with one catalog entry

AI Skills

Your AI ignores your rules and invents its own structure.

The built-in skills and rules teach Claude Code, Cursor and other agents how this codebase works, so they follow CONVENTIONS.md instead of making up new patterns. They are plain Markdown files the agent reads.

  • 9 skills in .agents/skills, each a SKILL.md the agent loads when the task matches
  • build-feature sets the order: scope, schema, provider, route, screen, checks
  • Rules ban new npm packages and keep every entity's fields identical across databases
  • The agent is told to run node --check, lint and a curl test before it says done
  • Database rules: one provider surface, the same function names on every engine
  • Plain Markdown: any agent that reads AGENTS.md can follow it
  • deploy-app: how to ship
  • mobile-session-guard: rules for sessions started from a phone
  • boring-filter: UI, copy, contrast and mobile layout checks
  • contrast-check.py: a contrast checker script

Blog & SEO

A blog shouldn't need a CMS, a database and a login.

No database models or CMS dashboards to log into. Drop .md files into a folder and your blog renders with code syntax highlighting, JSON-LD for Google, an XML sitemap and an RSS feed. A newsletter box saves emails to your own database.

  • Drop .md files into features/blog/content/ and deploy: articles appear on the blog
  • JSON-LD for each article, plus FAQ rich results from a ## FAQ section
  • XML sitemap (made on every build) and an RSS feed at /rss.xml
  • A newsletter box that saves emails to your own database
  • Syntax-highlighted code blocks and a reading-time estimate
  • Open Graph and Twitter tags for every post, using the post's cover image
  • Tag pages for every tag
  • Blog search
  • Related posts under each article
  • npm run blog:check to check your articles
  • schedule-posts.mjs spreads publication dates
  • Terms and privacy pages included

Your best ideas don't wait for your laptop. Neither should you.

The idea hits on the train, in bed, at your kid's game. Founders already ship from their phones with Claude Code. Here's what they say about it.

Post by Kent C. Dodds ๐Ÿจ (@kentcdodds) on X: Some folks have been wondering how I've managed to ship so much stuff straight from my phone. This is how:
Post by @levelsio (@levelsio) on X: This is how I code now about half the time From my phone with Termius coding on my VPS and writing requests into Claude Code like a goon
Post by Wendell Adriel (@wendell_adriel) on X: Shipping from my phone in my bed, what a time to be a builder! ๐Ÿ”ฅ๐Ÿš€
Post by Jacob Malherbe (@Jacobmalherbe21) on X: I couldn't code before AI. Today 269 Workers run my businesses, and I deploy all of them from my phone. Here's the exact setup, step by step. What's stopping you from shipping yours? x.com/i/article/2109โ€ฆ
Post by Jimmy Mass (@jimymass) on X: I ship from my phone. Not a demo. Real deploys, several a day, while I'm at my full-time job. How it works: 1. A VPS runs Claude Code around the clock 2. I reach it from my phone, describe what I want, and leave 3. Aโ€ฆ
Post by Ward (@uxaistudio) on X: been shipping from my phone while sailing this week my first ios app got approved and is now live you can ship from anywhere
Post by jack friks (@jackfriks) on X: pushing code from phone is so amazing and its only possible since last few months cause agents can handle massive context and limited tooling scopes better now examples from today: this morning i had to leave myโ€ฆ
Post by Tobias Wochinger (@wochinge) on X: God - shipping from my phone is addicting. Expect more changelogs for evals in Langfuse in the next days!
Post by sahand sojoodi (@sojoodi) on X: I build with AI and keep asking how building could be easier. Sometimes that's shipping from my phone on the subway! Sometimes it's a Linux setup that a new person can learn in a day. Sometimes it's an agent harnessโ€ฆ
Post by Kent (@kentdebruin) on X: can't believe I ship code from my phone now
Post by Vincent (@VynseDev) on X: I've just realised you can use Claude Code in the Cloud ???? so while waiting for my branded MacBook: - I can keep shipping from my phone directly - I don't need a VPS and mobile terminal or anything (still waitingโ€ฆ
Post by Jacob Malherbe (@Jacobmalherbe21) on X: #Connect Good Monday, everyone! Last week: 147 โ†’ 900 followers. This week: 900 โ†’ 2,000. โ†’ Keep building in public โ†’ Launch a real product โ†’ Connect with every builder I can find I couldn't code before AI. Now I shipโ€ฆ
Post by carlosbeltran.eth (@imthatcarlos) on X: what it looks like in practice: a few claude code sessions on my mac, steered from my phone. grok bot checks in with me and reminds me of what needs my attention so we can keep shipping.
Post by Andi (@andilosing) on X: my mac is now 24/7 reachable and i can use codex and claude from anywhere :) here is my setup: 1. install amphetamine so your mac does not sleep and stays on. 2. install amphetamine power protect so you can close theโ€ฆ
Post by Massi โ€” oss/acc (@0xMassi) on X: .@levelsio I code from my phone now because of your post. Wrapped the whole setup into one command. pocketdev: โ€ข Hetzner box running your AI CLI (Claude Code, Codex, Cursor, Geminiโ€ฆ) on your own subscription โ€ขโ€ฆ
Post by jack friks (@jackfriks) on X: i still canโ€™t get over how much power i have from my phone coding new features, closing customer support tickets, optimizing wedding website - all while watching the baseball game on my couch after dinner :) luckilyโ€ฆ
Post by 1Broom (@The1Broom) on X: @ritesh8x Building with AI and shipping from my phone here. Heavy equipment hauler by day, so most of my code gets written while I wait on a machine to get loaded. Good to meet you.
Post by jess (@jessomzy) on X: @buildwithdk i shipped from my phone on my birthday when i realized i had 20% fable left before my reset

You asked for one small change from the beach. Now nobody can log in.

That's what happens when an agent edits your live app directly. In BoringPush it doesn't: every change takes the same five steps from your laptop to your customers, and each step is a real command.

The safe loop

How BoringPush keeps agent changes from breaking what works

  • Build locally$ bp dev
  • Test it via the CLI$ bp boards list
  • Pass the checks$ npm run lint$ npm test
  • Push$ bp deploy --yes
  • Undo$ bp rollback --yes

What it stops

  • Not includedPhantom packages

    IncludedNo unapproved packagesThe agent rules ban new npm packages, so features use the Node.js and Next.js built-ins you already have.

  • Not includedLive data wiped

    IncludedGuardrails on production dataThe database client blocks DROP, TRUNCATE and DELETE without WHERE. Agents read live data read-only, and production migrations need you.

  • Not includedRoutes that skip the paywall

    IncludedThin routes, one shared checkAPI routes validate input, run one shared login and paywall guard, then make one call. Easy for you to review.

  • Not includedUnchecked code goes live

    IncludedLint before every shipThe deploy runs lint first and stops on errors.

  • Not includedNo way back

    IncludedA deploy that undoes itselfIf the live site fails its health check, the previous build goes back automatically. By hand it's bp rollback --yes.

  • Not includedTwo databases, two codebases

    IncludedOne app code for every databaseBuilt-in features share one set of functions across SQLite, Supabase and MongoDB, and npm run test:matrix checks none is missing.

Rules live in AGENTS.md and .agents/ ยท works with Claude Code, Cursor, Antigravity and OpenCode

Agents use it (MCP)

Your customers can use what you build from ChatGPT, Claude, Cursor & more. From day one.

Your customers already ask AI for everything. If an assistant can't reach your app, it points them somewhere else, and you never see the sale you lost.

  • Speaks MCP, the open standard Claude, ChatGPT and Cursor use to reach apps
  • Customers approve once on your site, then just ask
  • Read-only until they allow changes
  • Each customer sees only their own data
  • Every call runs your normal API routes, login and paywall checks

How your users connect โ†’

How's the app doing?Example
Ask your app anythingโ€ฆ
Example conversation. The numbers are made up.

Batteries included ยท production ready

Locked into a $50 bill before your first sale? Not here.

Start on one $5 server with SQLite. Every service below is already set up.

Framework
Next.js 16React 19Tailwind CSS
Sign-in & email
GoogleResendMagic links
Payments
StripeDodoLemon Squeezy
Database
SQLiteSupabaseMongoDB
Storage & deploy
AWS S3DockerCloudflare R2
Alerts & access
TelegramDiscordTailscale

Same app code on every database

Pick the wrong database and you rewrite everything. Here you flip one switch.

Write your schema once and your queries once. Start on SQLite, move to Supabase or MongoDB when you need to.

$5 server ยท SQLite
# Run app + db + analytics on a $5 server
DB_PROVIDER=sqlite
SQLITE_PATH=/var/data/app.db
BILLING_PROVIDER=dodo

โœ“ Sub-ms local reads ยท 100k+ ops/sec ยท $0/mo DB bill
Supabase cloud
# Point to Supabase with 1 environment variable
DB_PROVIDER=supabase
SUPABASE_URL=https://xyz.supabase.co
BILLING_PROVIDER=stripe

โœ“ Exact same models ยท Same queries ยท 0 lines changed

CLI first ยท built-in deploy

Your own deploy. No $20 a month to host an idea.

One command, bp deploy, builds on your laptop, copies the new version to your $5 server, swaps it in and checks the site is up. If the check fails, the old build goes back on its own.

9:41
5G
ssh:boring-prod
AGENT_READY

Laptop build โ†’ $5 server

Need a job every minute?Drop a file in a folder.

User joins? They get their welcome email instantly. Customer buys? Access is unlocked the second payment clears. Scheduled jobs and timely workers run right inside your app โ€” no Inngest subscription, no Upstash QStash fees, zero cloud queues.

No Inngest or Upstash ยท 0 cloud queue bills

You want something to happen in the background.

A user signs up, a customer buys, an API drops, or a heavy AI summary runs. Your app never freezes โ€” timely workers finish the job in milliseconds:

Pool: 4 threadsMax retries: 3 with backoff
Timely Worker Thread PoolACTIVE

[worker] timely pool active ยท 4 threads ยท local queue ready

[worker] user joined โ†’ dispatchJob('emails/welcome') โ†’ claimed thread #1

[worker] โœ“ emails/welcome delivered in 18ms via Resend

Heartbeat: 30sZero stalled jobs

When someone buys

Their access unlocks and their receipt sends the second payment clears. If the payment gateway has a hiccup, it retries on its own.

When someone signs up

Their welcome email lands immediately. A friendly check-in sends two days later โ€” with zero extra email subscriptions.

When an AI prompt runs

Whether a report or LLM task takes 5 seconds or 45 seconds, the page never spins or times out. It finishes quietly in the background.

Housekeeping on schedule

Your database takes a backup every night and cleans up old logs every Sunday. Set it once and never touch a server command.

BoringPush vs the hard way

A blank folder costs you weeks before anyone can pay you. Here's what you skip on day one.

Login, payments, analytics and feedback boards already working

BoringPushIncluded
ScratchNot included
StockNot included

Agent rules and skills for Claude Code, Cursor and Antigravity

BoringPushIncluded
ScratchNot included
StockNot included

One-command deploy that checks the site and rolls back on failure

BoringPushIncluded
ScratchNot included
StockNot included

Destructive database changes blocked before they ship

BoringPushIncluded
ScratchNot included
StockNot included

Runs on a $5 server with SQLite ($0 database bill)

BoringPushIncluded
ScratchNot included
StockNot included

Same data layer on SQLite, MongoDB and Supabase

BoringPushIncluded
ScratchNot included
StockNot included

Stripe, Lemon Squeezy and Dodo checkout

BoringPushIncluded
ScratchNot included
StockNot included

Analytics that tracks revenue, not just visits, with cookie-free mode

BoringPushIncluded
ScratchNot included
StockNot included

Nightly backups and cleanup with no Redis or cron service

BoringPushIncluded
ScratchNot included
StockNot included

Incident alerts to Telegram or Discord

BoringPushIncluded
ScratchNot included
StockNot included

A terminal command for every feature, with keys your AI agent can use

BoringPushIncluded
ScratchNot included
StockNot included

Works with Claude, ChatGPT and any MCP assistant, read-only by default

BoringPushIncluded
ScratchNot included
StockNot included

Magic links + Google sign-in

BoringPushIncluded
ScratchNot included
StockIncluded

Included on day one

BoringPush13 of 13
Scratch0 of 13
Stock1 of 13

What you pay

BoringPush$199 once
ScratchYour weeks
StockVaries
Stripe logoStripeLemon Squeezy logoLemon SqueezyDodo logoDodo

One payment. Yours forever.

Most tools charge you every month before you've made a dollar. This is one payment: take payments, welcome customers, and own 100% of your software, with no subscription.

$199.00

  • Start on SQLite. Switch to Supabase with one setting, same app code
  • Built-in digital marketplace โ€” list & sell products directly from Dashboard.
  • Take credit cards & Apple Pay worldwide (Stripe, Dodo, Lemon)
  • 0% platform take โ€” all your earnings go straight to your bank
  • 1-command deploy & rollback from your laptop or phone
  • Live visitor analytics built in โ€” goodbye PostHog & DataFast bills and cookie popups
  • 1-tap Google customer login (zero per-user monthly fees)
  • Customer feedback & upvoting board built in โ€” goodbye Canny ($79+/mo) & Featurebase ($49+/mo)
  • Direct photo & file uploads for your buyers ($0 egress via R2)
  • Full source code included ยท $199 once ยท Yours forever
โ€น
โœˆ

Boring Incident Botbot

bot ยท 2 members

๐Ÿ”โ‹ฎ
Today

Listening for errors & webhook failures...

scream() โ†’ your phone$0 / mo

Fair questions, no pitching.

Have another one? Ask directly at [email protected]

Getting started

You should vibe code it, on top of this. AI gets you a demo in an afternoon; then come the parts nobody films. Payments: checkout, webhooks and access are wired for Stripe, Lemon Squeezy and Dodo, and a unique index stops a repeated webhook from recording the same sale twice. Data: agents get a read-only database handle, the database client blocks DROP, TRUNCATE and DELETE without WHERE, and on SQLite every migration takes a backup first. Deploys: lint runs before the build, and if the new build fails its health check the previous one goes back automatically.

Payments

AI builders

Stop burning weeks on plumbing. Start shipping

Every week on login, payments and servers is a week nobody can pay you. That part is done. Pay $199 once. Yours forever.

Get Instant Access