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

DATABASE AUTH REALTIME FUNCTIONS STORAGE CRON AI SDK TYPESCRIPT GO KOTLIN DATABASE AUTH REALTIME FUNCTIONS STORAGE CRON AI SDK TYPESCRIPT GO KOTLIN

You're shipping infrastructure
instead of your product.

01

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.

02

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.

03

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
View SDKs on GitHub →

Cloud

Soon

Managed hosting, usage-based pricing.

  • Automatic scaling
  • Global edge network
  • Managed Postgres + backups
  • Dashboard included
Join Waitlist

Cloud Early Access

Get early access.

Be first to know when PreCheck Cloud launches. No spam.