Your records, searchable
Users, subscriptions, reports, whatever you describe. Search, filter, and saved views work on all of them, and you pick whether emails and names go out in full, masked, or not at all.
The LopeBase Adapter is one small handler you mount at /api/lopebase. LopeBase signs every request to it, and it answers with only what you declare: your records, your dashboard numbers, your admin actions, and whether each service you depend on is up. Your database never leaves your app.
No dependencies. Runs on Cloudflare Workers, Node 18 and up, Vercel, Netlify, Deno, and Convex.
What it adds
Stripe knows payments and PostHog knows visits. Only your app knows its own users, plans, and queues. The adapter puts them next to everything else.
Users, subscriptions, reports, whatever you describe. Search, filter, and saved views work on all of them, and you pick whether emails and names go out in full, masked, or not at all.
Users, signups, active users, MRR, and paying customers, counted in your own database and shown on Overview and in the weekly email.
Grant credits, extend a trial, resolve a report. Each action has typed fields, a confirm step, a role check, and a before and after on both sides.
List the database, queue, workers, or second API your app needs. LopeBase's uptime checks show each one on its own and alert you when one fails.
Your app can report what needs a person, and it shows under Needs attention beside outages and past-due payments, with email or push alerts if you want them.
Service health
Declare what your app cannot work without. Each check uses your app's own credentials for the cheapest authenticated call, like select 1, Stripe balance.retrieve, GitHub GET /app, or your AI provider's GET /models, so it proves your integration works, not just that the vendor is up. Never point a check at a vendor's status page or home address. /api/lopebase/health runs every check in parallel, each with its own time limit. A failing critical service answers 503; mark a service critical: false and its failure shows as degraded instead. cachedCheck keeps a success for 60 seconds and a failure for 10, so polling does not use up your API limits while a recovery still shows up within seconds. Use that address as the product's uptime check. Only names and up or down leave your app.
import { cachedCheck, createAdminAdapter, httpCheck } from "@lopebase/adapter";
export const lopebase = createAdminAdapter({
// ...resources, overview, auth
services: [
{ id: "db", label: "Database", check: async () => { await db.execute("select 1"); } },
cachedCheck({ id: "stripe", label: "Payments", check: async () => { await stripe.balance.retrieve(); } }),
cachedCheck({ id: "ai", label: "AI provider", critical: false, check: async () => { await openai.models.list(); } }),
// httpCheck is for hosts your app owns
httpCheck("api", "https://api.example.com/health", { label: "Our API" }),
],
});
More on how checks run and alert on the Uptime and incidents page.
Pageviews
LopeBase can count your pageviews itself with one tag: pages, sources, and visits, with no cookies and no visitor ids. Next to the signups your adapter reports, the Analytics page shows which pages and sources bring people in. It works with or without the adapter.
<script defer src="https://app.lopebase.com/lb.js" data-site="your-site-key"></script>
Copy your tag from the product's Analytics page, or let your agent add it. See Growth analytics.
Run npx lopebase in the product's folder. It scans the stack, lists what is worth watching, and hands setup to Claude Code, Codex, or the agent you use. The agent asks you before it changes anything.
Set up LopeBase for this repo.
get_onboarding_statusacmenext: adapter
This app uses Postgres, a BullMQ queue, and Resend. I'll add @lopebase/adapter at /api/lopebase with users and subscriptions, and list those three as services so uptime watches each one. How should emails and names reach LopeBase: full, masked, or IDs only?
connect_adapteracme.com/api/lopebasetested
Connected. Uptime now checks acme.com/api/lopebase/health every 15 minutes. Want LopeBase to count pageviews too? It is one tag in your layout, no cookies.
More on the Agents and MCP page.
It lives in your code, so you can read every rule it follows.
Every path sits under /api/lopebase. A conformance suite in the package checks your adapter against it in your own tests.
Something else? Email us.
No. It only talks to the adapter, which decides what to expose. LopeBase never connects to your database.
No. Analytics, search, revenue, errors, and uptime all connect without touching your code. Add the adapter when you want your own users, numbers, actions, or service health next to them.
It uses only Web Crypto and has no dependencies, so it runs on Cloudflare Workers, Node 18 and up, Vercel, Netlify, Deno, and Convex. The guide has Next.js, Hono, and Convex examples.
Only fields you declare leave your app. A field named like a password, token, or API key stops the adapter from starting unless you allow that one field, and you choose whether emails and names go out in full, masked, or not at all.
Yes, so the uptime check can read it without a secret. It shows only each service's name and whether it is up. Error messages stay in your logs.
No. Pageviews come from a separate one-line tag that LopeBase serves. The adapter reports signups from your database, and the two together show which pages bring signups.
The adapter feeds every one of these.
See the searches you almost win and the pages to fix first, from Search Console and Bing.
Rank trackingSite auditOpportunity map See how it works 02 / ContentPlan articles on a calendar. They are drafted in your voice, checked, and published on schedule.
CalendarYour voiceLink checks See how it works 03 / RevenueMRR, past due, and cancellations for every Stripe and Polar account, next to cash in the bank.
MRRPast dueRunway See how it works 04 / GrowthTraffic from every analytics tool side by side, and a review of where people drop off.
TrafficSignupsConversion review See how it works 05 / ReliabilityEvery site checked every 15 minutes, alerts by email or push, and a status note drafted for you.
15 minute checksAlertsIncident review See how it works 06 / AgentsRun one command and your agent adds products and connects sources over MCP.
npx lopebaseMCP serverRead-only See how it worksNot sure where to start? Connect one tool and Overview shows what needs you first.
Start freeFree for one product. No card.