Feature Map

Everything for AI app frontends and backends

Start with Vite + React screens, then add type-safe APIs, auth, realtime data, AI, RAG, storage, and deployment in one Gencow workflow.

  • Vite + React UI
  • Typed backend APIs
  • AI/RAG/Auth ready
01 — Platform

Everything an AI app needs, already on the platform

Not just a backend. AI, background work, media and operations ship as platform features — no extra vendors, keys or servers to wire together.

AI06
  • LLM

    Call OpenAI models by model ID. Provider keys stay in the platform proxy.

  • Image generation

    Generate images from the same ai.* API.

  • STT

    Speech-to-text from private storage, with timestamps and speaker labels.

  • TTS

    Text-to-speech with direct synthesis or async jobs.

  • OCR

    Extract text from images, and convert PDF, HWPX, DOCX and XLSX to Markdown.

  • Rerank

    Rerank search results with Cohere Rerank on Azure.

Backend04
  • Workflow

    Durable multi-step runs with checkpoints, approvals and resume.

  • Queue

    Workflow queue for background runs, managed by the platform.

  • Cron

    Interval, daily, weekly and cron-expression schedules.

  • Realtime

    Queries update the UI automatically when data changes.

Operations04
  • Image auto-scaling

    Automatic WebP conversion and downscaling for stored images.

  • Backup

    Manual and automatic database backups.

  • Analytics

    Privacy-friendly traffic analytics, injected automatically on hosted apps.

  • Web builder

    Describe an app in a prompt and build and deploy it with Gencow.

14AI services share one Gencow credit balance. Plan limits apply — see Pricing.

Live Demo

Customer support AI agent, in three files

gencow/schema.ts
LIVE
1
// gencow/schema.ts
2
export const conversations = pgTable("conversations", {
3
  id: serial("id").primaryKey(),
4
  userId: text("user_id").notNull(),
5
  messages: jsonb("messages").default([]),
6
  context: text("context"),     // Context from RAG
7
  createdAt: timestamp("created_at").defaultNow(),
8
});

Schema → Agent Logic → UI, all TypeScript. Vibe-code it with your coding agent and you're done.

Pain Points

Building AI agents was this painful

Agent logic is simple, but the infrastructure is overwhelmingly complex.

01

Started with LangChain, then...

No infrastructure. Vector DB separate, API server separate, auth separate... Agent logic is 10 lines but infra code is 200.

✕LangChain
# Required infrastructure:
pip install langchain pinecone
# + FastAPI + PostgreSQL + Redis
# + Docker + Nginx + Auth...
✓Gencow
$ gencow add AI RAG
# ✓ Components are added to gencow/

→Gencow has AI · RAG · Auth built-in as components. One line: gencow add AI RAG — done.

02

3 weeks gone building a RAG pipeline

Document chunking, embedding, vector storage, search optimization... Why is it so complex just to ingest one PDF?

✕DIY
# Things you have to build yourself:
loader = PDFLoader(file)
chunks = splitter.split(docs)
embeds = openai.embed(chunks)
pinecone.upsert(embeds)
# + error handling, retries...
✓Gencow
await rag.ingest(ctx, "manual.pdf", text);
// ✓ Chunking + embedding + indexing

→One line auto-chunks, embeds, and indexes your PDF. pgvector built-in.

03

Deploying to production is another hell

Agent that worked locally breaks in production. Auth, CORS, env vars, secrets management, scaling...

✕DIY Deploy
# Deployment checklist:
□ Build Docker image
□ Write K8s manifest
□ Issue SSL certificate
□ Configure env variables
□ Set up CORS...
✓Gencow
$ gencow deploy
# ✓ Bundle, migrate, deploy
# Production: gencow deploy --prod

→One command to production. SSL, auth, scaling all automatic.

04

Signed up at 3 sites just to get one API key

Sign up, add a card, create provider keys, then manage them in your app configuration before writing the feature.

✕Traditional
# Sites to sign up for:
OpenAI → add card → API Key
Anthropic → add card → API Key
Google AI → project → API Key
# + manage 3 keys in .env...
✓Gencow
// One Gencow key, done
import { ai } from "./ai";

await ai.chat({
  model: "llm/economy", // or another OpenAI model
  messages: [...]
});

→One Gencow key for OpenAI models. One signup, one key, one bill.

AI/RAG Components

Every component your agent needs is ready to go

Add AI, RAG, vector search, and streaming to your backend with a single line.

AI Engine

OpenAI models through the Gencow gateway. Built-in streaming where enabled, with platform-managed credentials.

$gencow addAI
import { ai } from "@/gencow/ai";

const reply = await ai.chat({
  model: "llm/economy",
  system: "You are a helpful assistant.",
  messages: chatHistory,
});

// Agent Loop (auto tool calling)
const result = await ai.agent({
  messages, tools, maxSteps: 5,
});

RAG Engine

PDF, Notion, web page auto-crawl & chunking. pgvector-based vector search. No extra infra needed.

$gencow addRAG
import { rag } from "@/gencow/rag";

// Document indexing (auto chunk + embed)
await rag.ingest(ctx, "manual.pdf", docText);

// Semantic search
const results = await rag.search(ctx,
  "What is the refund policy?",
  { filter: { source: "manual.pdf" } }
);

// Q&A — search + answer in one call
const { answer } = await rag.ask(ctx, query);

Search

Function calling-based tool use. AI automatically selects the right tool. ctx-integrated for safe DB mutations.

$gencow addSearch
import { defineTools } from "@/gencow/tools";

const tools = defineTools(ctx, {
  getOrder: {
    description: "Look up order status",
    parameters: z.object({
      orderId: z.string()
    }),
    handler: async (ctx, args) => {
      return ctx.db.select().from(orders)
        .where(eq(orders.id, args.orderId));
    }
  }
});

await ai.chat({ messages, tools });

Agent Memory

Episodic, semantic, and procedural memory in 3 layers. Automatically manages long-term memory and conversation context.

$gencow addMemory
import { memory } from "@/gencow/memory";

// Search scoped long-term memory
const { hits } = await memory.search(ctx, {
  namespace: "assistant-memory",
  scope: { conversation: conversationId },
  query,
});

const reply = await ai.chat({
  system: "Known facts: " + JSON.stringify(hits),
  messages: [{ role: "user", content: query }],
});

Tool Calling

PII masking, topic blocking, output validation. Safely wrap the entire input-to-output pipeline.

$gencow addTools
import { guardrails } from "@/gencow/guardrails";

// PII masking + topic blocking
const safe = await guardrails.validateInput(
  userMsg,
  { maskPII: true, blockTopics: ["politics"] }
);
if (!safe.allowed) return safe.blocked;

// Validate input, call AI, validate output
const { result } = await guardrails.wrap(
  (text) => ai.chat({ messages: [{ role: "user", content: text }] }),
  userMsg,
  { maskPII: true },
  { maxLength: 2000 }
);

Analytics

Privacy-friendly traffic analytics. Pageviews, referrers and countries in your Dashboard — no tracker to add.

Automatic on hosted apps
// Automatic on Gencow-hosted frontends (no code needed)
// Dashboard → Analytics tab: pageviews, referrers, countries

// Custom event (optional)
window.gencow?.analytics?.track?.("signup_completed");

One Key, OpenAI Models

One-Key AI

One signup, one key, one bill. Use OpenAI models instantly.

Before — Traditional

// Separate keys and SDKs per provider

import { OpenAI } from "openai";

import { Anthropic } from "@anthropic-ai/sdk";

 

const openai = new OpenAI({

apiKey: process.env.OPENAI_API_KEY

});

 

// Switch models? Replace SDK and rewrite code

After — Gencow

// No provider keys in app code. Choose an OpenAI model ID

import { ai } from "./ai";

 

const result = await ai.chat({

model: "llm/economy", // → choose another OpenAI model model ID

messages: [{ role: "user", content: message }],

});

// API keys? Billing? Auto-deducted from Gencow credits.

One Signup, One Key

Use OpenAI models through one Gencow API key; Gencow manages provider credentials and usage billing.

One Credit for AI & DB

AI tokens, DB storage, API calls — one credit instead of 4 separate invoices.

No Bill Shock

Spend Cap ON by default. Read-only mode when credits run out. Zero surprise charges. Your data stays safe.

No API Keys in Code

Provider keys live in the platform proxy, not in your app code or .env.

Model Selection Is One String

Choose a supported OpenAI model ID through the same Gencow AI API.

agent.ts

const result = await ai.chat({

model:
,

messages: [{ role: "user", content: message }],

});

// Response:

"Hello! How can I help you?"

That's it. Choose another OpenAI model.

All AI, One Backend

Others offer AI or backend. Gencow offers AI and backend.

FeatureOpenRouterSupabaseConvexGencow
GPT-6 LunaDIYDIY
GPT-6 SolDIYDIY
GPT-6 AstraDIYDIY
Model SelectionModel IDSDK swapSDK swapModel ID
Database
Auth
Realtime
Unified BillingAI onlyInfra onlyInfra onlyAI+Infra
Spend Cap

OpenRouter is AI only, Supabase is backend only. Gencow manages AI and backend with one credit.

Frontend + Backend Architecture AI Understands

Vibe-coding succeeds only when AI grasps the structure. Gencow is built on 6 core principles making it perfectly comprehensible to AI.

Everything is TypeScript

Schemas, Row-Level Security, APIs, and business logic—unified in pure TypeScript. No context fragmentation.

Co-location Architecture

Backend lives in the root of your frontend folder. AI instantly identifies the structure without parsing massive monorepos.

Deterministic & Declarative

No hidden dashboards or fragmented SQL functions. 100% declarative code ensures AI can perfectly replicate architecture.

Explicit Data Graph

Don't force AI to infer relationships. Every database relation is explicitly typed, eliminating logic errors.

Secure by Default

createCrud() requires authentication by default, and ownerRls() applies row-level security so each user only sees their own rows.

Zero-Config Database

gencow dev --local runs an in-memory PGlite Postgres with no Docker. Cloud and production run on full PostgreSQL.

How it works

SaaS in 3 Simple Steps

TypeScript from start to finish. AI assists every step of the way.

01

One command

Add Agent Components

Install required AI/RAG components with a single command. No need to configure vector DB, API server, or auth separately.

Terminal
$ gencow add AI RAG
✓ AI Engine → gencow/ai.ts
✓ RAG Engine → gencow/rag.ts
→ Run gencow dev to get started
02

Or let AI do it

Write Agent Logic

Write business logic in gencow/agent.ts as a typed procedure — or ask your coding agent to write it.

gencow/agent.ts
// gencow/agent.ts
import { z } from "zod";
import { rag } from "./rag";
import { procedure } from "./runtime";
export const chat = procedure.mutation
.name("agent.chat")
.input(z.object({ question: z.string() }))
.handler(async ({ context: ctx, input }) => {
ctx.auth.requireAuth();
// Retrieve, then answer
const { answer, sources } = await rag.ask(ctx, input.question);
return { answer, sources };
});
03

One command

Deploy

gencow deploy ships to your dev app. When you are ready, gencow deploy --prod promotes to production (Pro / Scale).

Terminal
$ gencow deploy
✓ Schema → migrations synced
✓ Bundle created
✓ Deployed to your dev app
→ https://<app-id>.gencow.app
$ gencow deploy --prod # Pro / Scale

Dev → Prod Architecture:
Perfect Isolation, Blazing Fast

Safe and incredibly fast. Identical development experience locally, transitioning to enterprise-grade isolation in production.

Dev DB

PGlite

Docker-free blazing fast local in-memory Postgres

Prod DB

PostgreSQL

The global commercial standard RDBMS

Dev Runtime

Bun

The most powerful next-gen JS runtime in existence

Prod Runtime

cowbox

Each app runs in an isolated process (Landlock + seccomp-bpf + cgroups v2).

PGlite (Local)
Postgres (Prod)
$ gencow deploy

One command to deploy.

No Vendor Lock-in

Built on the World's Best
Open Source Stack

Don't get locked into proprietary clouds. Gencow is built 100% on open-source technologies. Take your data and leave whenever you want.

B
Runtime

Bun

The world's fastest JavaScript runtime

H
Framework

Hono

Edge-first ultra-lightweight web framework

D
ORM

Drizzle

Type-safe SQL query builder

P
Database

PostgreSQL

The world's most advanced open-source RDBMS

Migrate Freely

Standard SQL and standard APIs. Move to another server anytime.

Community Proven

A tech stack trusted and verified daily by millions of developers.

Transparent Code

No black boxes. All code is open and trustworthy.

Secure by Isolation,
Enterprise Grade

Every app runs in its own isolated process (Landlock + seccomp-bpf + cgroups v2) with its own database. Secrets stay in per-app environment variables.

Isolated by default

Kernel-level process isolation and a separate database per app limit the blast radius of shared infrastructure. Row-level security presets like ownerRls() protect each user's rows.

  • 24/7 Monitoring & Alerting
  • Automated Backups & Point-in-time Recovery
  • Horizontal Auto-scaling
  • Enterprise-grade Security Isolation
Realtime Database

When Data Changes,
UI Reacts Instantly

Forget complex socket event management. Just subscribe to a query and database changes magically reflect in your frontend.

No Socket Management

No need to write WebSocket setup, reconnection logic, or event handlers yourself.

Just Use Queries

Call useQuery(api.orders.list) and the UI updates whenever the data changes.

Scales With Your Plan

Concurrent realtime connection limits depend on your plan — see Pricing.

realtime-demo.ts
// Data changes automatically update the UI
const { data: orders } = useQuery(api.orders.list);
// → auto realtime sync
LIVE
→
iduserstatusamount
1aliceactive$29.99
2bobpending$49.99
3charlieactive$99.99
Comparison

The only all-in-one platform for building AI apps

LangChain lets you build agents. But you have to glue together auth, DB, deploy, and vector DB separately.
Gencow does it in one command: gencow add AI RAG

LangServeSupabase + LangChainVercel AI SDKGencow
AI EngineDIY✅ Built-in
RAGDIYDIY✅ Built-in
Vector SearchPinecone separatepgvector manualSeparate needed✅ pgvector
DBSeparate neededPostgreSQLSeparate needed✅ PGlite→PG
AuthSeparate neededSeparate needed✅ Built-in
PaymentsSeparate neededSeparate neededSeparate needed✅ Toss Payments
DeployDIY configCloud✅ One command
Vibe-coding✅ Full
AI API Gateway✅ One-Key AI
Unified BillingInfra only✅ AI+Infra
Spend Cap✅ Default ON
Use Cases

Build agents like these in a single day

E-commerce Customer Support Agent

AI + RAG + Auth + Payments
// Components: AI + RAG + Tools
import { z } from "zod";
import { ai } from "./ai";
import { rag } from "./rag";
import { defineTools } from "./tools";
import { procedure } from "./runtime";

export const ask = procedure.mutation
  .name("support.ask")
  .input(z.object({ question: z.string() }))
  .handler(async ({ context: ctx, input }) => {
    ctx.auth.requireAuth();
    const docs = await rag.retrieve(ctx, input.question, {
      filter: { source: "faq" },
    });
    const tools = defineTools(ctx, { getOrder, cancelOrder });

    return ai.agent({
      model: "llm/economy",
      system: "Answer from the FAQ: " + JSON.stringify(docs),
      messages: [{ role: "user", content: input.question }],
      tools,
      maxSteps: 5,
    });
  });

→24/7 customer support, auto order lookup/cancel/refund

Internal Document Search Agent

AI + RAG + Auth
// Components: AI + RAG
import { z } from "zod";
import { rag } from "./rag";
import { procedure } from "./runtime";

export const search = procedure.mutation
  .name("docs.search")
  .input(z.object({ query: z.string() }))
  .handler(async ({ context: ctx, input }) => {
    ctx.auth.requireAuth();

    // Search + answer in one call, with sources
    const { answer, sources } = await rag.ask(ctx, input.query);
    return { answer, sources };
  });

→Answers grounded in your documents, with sources

SaaS Onboarding Agent

AI + RAG + Auth + Analytics
// Components: AI + RAG + Memory
import { z } from "zod";
import { ai } from "./ai";
import { memory } from "./memory";
import { procedure } from "./runtime";

export const onboard = procedure.mutation
  .name("onboarding.ask")
  .input(z.object({ question: z.string(), conversationId: z.string() }))
  .handler(async ({ context: ctx, input }) => {
    ctx.auth.requireAuth();

    const { hits } = await memory.search(ctx, {
      namespace: "onboarding",
      scope: { conversation: input.conversationId },
      query: input.question,
    });

    return ai.chat({
      system: "Known about this user: " + JSON.stringify(hits),
      messages: [{ role: "user", content: input.question }],
    });
  });

→Personalized onboarding, progress tracking, churn prevention

Beyond Agents

Not just agents. Any business, one shot.

Gencow was designed for AI agents, but its foundation is a TypeScript frontend + backend app platform.
UI · DB · Auth · Payments · Realtime · Deploy — build any web service fast.

E-commerceProducts · Payments · Inventory
EdTechLMS · Courses · Progress
HealthcareBookings · Records · Alerts
HR/SaaSMembers · Reports · Workflows
DashboardReal-time Analytics · Monitoring
CommunityFeeds · Chat · Notifications
Terminal
# AI Agent app
$ gencow add AI RAG

# App with payments (Toss Payments)
$ gencow add TossPayments

# Google sign-in
$ gencow add sso

# Compose the screens and components you need.

Start with the agent platform. Build anything on top of it.

You build the agent's value,
Gencow handles all the infrastructure

Start at gencow.app and use docs.gencow.com as the source of truth for the full build flow.