soniq transforms your Postgres database into a complete TypeScript platform.
Static OpenAPI contracts. End-to-end type safety. Client-side transactions.
Own the code. Deploy anywhere.
Register for closed beta. Be the first to try when we launch.
Your schema. Pure TypeScript. Infinite possibilities.
Design your Postgres schema—the single source of truth. Use soniq's wizard to compose APIs from tables, relationships, and permissions. Versioned TypeScript contracts fail at build time, not production. Full type safety from SQL to React—even complex transactions stay typed end-to-end.
Pure TypeScript all the way. No context switching, no config files, no docker-compose nightmares. Define your API from entities, permissions, and resources. Git diff your changes, review in PRs, deploy in seconds.
Everything lives in your repository. Database access, auth, file storage, permissions, API contracts—all versioned with your app code. No cloud lock-in. Your backend is as portable as an npm package.
app.tsx
page.tsx
import z from "zod";
import { oc } from "@orpc/contract";
import { implement } from "@orpc/server";
// contract
export const C_GenerateGreeting = oc
.input(z.object({ name: z.string() }))
.output(z.object({ greeting: z.string() }))
.route({
method: "POST",
path: "/my-api/generate-greeting",
tags: ["Greeting API"],
summary: "Generate a greeting",
description: "Returns a warm greeting using the provided name.",
});
// handler
export const generateGreeting = implement(C_GenerateGreeting).handler(
async ({ input }) => {
await new Promise((r) => setTimeout(r, 500)); // Simulate short delay
return { greeting: `Hello, ${input.name}! Welcome aboard 🚀` };
},
);
import { useQuery } from "@tanstack/react-query";
import { API } from "./api.ts";
export function WelcomePage() {
const { data, isLoading, error } = useQuery({
queryKey: ["welcomeMessage"],
queryFn: () => API.generate_greeting({ name: "John" }),
});
if (isLoading) return <div>Loading...</div>;
if (error || !data) return <div>Failed to load greeting</div>;
return (
<div>
<h1>{data.greeting}</h1>
</div>
);
}
Deploy to the edge and scale infinitely. Presigned URLs handle file access without server load. Atomic transactions bundle complex operations. Every resource is optimized—no N+1 queries, no wasted round trips.
Email, password, passkeys, TOTP, or social login—support any factor. Combine multiple methods for sensitive operations. All auth state lives in Postgres with Row-Level Security, seamlessly integrated with your data policies. No No third-party service required.
Works with your existing Postgres. Integrates with Next.js, Remix, or any TypeScript framework. No microservices maze, no container orchestration. One simple deployment—anywhere you run Deno or edge functions.
Deterministic builds and diff-able changes. Contracts (OpenAPI & oRPC) are versioned, not improvised.
Relational resources handled atomically, with smart code-gen that avoids N+1 and preserves transactions.
Configurable row‑level permissions. Intuitive UI, review in PRs, audit across versions.
Email, password, passkeys, SMS — pluggable factors that play nicely with RLS.
Made for lightning-fast response times, close to your users.
Built-in file storage with RLS-aware access. Streamlined for large uploads and edge delivery.
First-class Auth + Data Provider + File upload components. Ship admin & back-office UIs in hours.
Built-in MCP server & pure TypeScript only. Your AI coding assistants understand soniq natively and generate perfect code every time.
From edge functions to dedicated servers—deploy soniq wherever your users are. No vendor lock-in, no infrastructure complexity. Just fast, reliable APIs running close to your customers, anywhere in the world.