Build your product, not your backend.
Not three services duct-taped together. Not the auth library you'll regret. Not the job queue you deployed for one cron. PreCheck handles the rest.
7 services · 3 SDKs · 0 lock-in
You're shipping infrastructure
instead of your product.
A background job that needed a whole server.
You needed to run a task every night. Firebase had no cron. Every other option required spinning up infrastructure you'd forget to turn off.
Auth that took three days to get right.
JWT signing, refresh tokens, email confirmation, role-based access. Every project reimplements it. Every project gets it slightly wrong.
File storage from five different places.
S3 for one app, GCS for another, local disk in dev. Presigned URLs, multipart uploads, ACL policies — all before you shipped a single feature.
Database
Postgres with instant REST.
Every table is automatically exposed as a RESTful API. Filter, paginate, sort — no boilerplate. Powered by pgvector for AI workloads.
import { PreCheckClient } from '@precheck/client'
const db = new PreCheckClient({ url, anonKey, tenantId })
const users = await db.from('profiles')
.limit(20)
.order('created_at', false)
.select()Auth
Ed25519 JWT in one call.
Sign up, sign in, refresh tokens, user management — all covered. No vendor lock-in. Your keys, your data.
const { access_token, user } = await client.auth.signIn(
'[email protected]',
'password'
)
// Use token for subsequent requests
const me = await client.auth.getUser(access_token)Realtime
Live data, zero polling.
WebSocket subscriptions backed by PostgreSQL logical replication. Every INSERT, UPDATE, DELETE streams to connected clients instantly.
client.realtime
.channel('db:orders:*')
.on('INSERT', (row) => {
console.log('New order:', row)
updateUI(row)
})
.subscribe(token)Functions
Edge functions without the edge tax.
Deploy JavaScript functions that run in an isolated GraalVM sandbox. Invoke them via HTTP or from cron schedules.
// Deploy
await fetch('/functions/v1/send-email', {
method: 'PUT',
body: `export default async (req) => {
const { to, subject } = await req.json()
// send email...
return new Response(JSON.stringify({ sent: true }))
}`
})
// Invoke
const result = await client.functions.invoke('send-email', {
to: '[email protected]',
subject: 'Welcome!',
})AI
Embeddings and LLM on your hardware.
ONNX Runtime for embeddings, llama.cpp for local LLMs. No OpenAI bill, no data leaving your infrastructure.
// Generate embeddings
const [vector] = await client.ai.embed(['hello world'])
// vector is a number[] you can store in pgvector
// Chat completion
const reply = await client.ai.chat([
{ role: 'user', content: 'Summarize this support ticket.' }
])Simple. No surprises.
Open Source SDKs
Free
Client libraries for every language. MIT licensed.
- ✓ TypeScript / JavaScript SDK
- ✓ Python SDK
- ✓ Go SDK
- ✓ MIT licensed — use anywhere
Cloud
Soon
Managed hosting, usage-based pricing.
- ○ Automatic scaling
- ○ Global edge network
- ○ Managed Postgres + backups
- ○ Dashboard included
Cloud Early Access
Get early access.
Be first to know when PreCheck Cloud launches. No spam.