Shipping to Product Hunt soon. Free to try today.

Sandbox Postgres
for vibe coders
and AI agents.

A real Postgres database and S3-compatible storage, ready in seconds, priced for side projects. Built for the moment your agent asks for a DATABASE_URL, a bucket, and access keys.

~/my-side-project

Let your agent
provision the database.

Connect Codex, Claude Code, Cursor, Gemini, Lovable, Bolt, Windsurf, IDEs, or web clients to Nyas MCP so agents can provision databases, run SQL, and manage storage.

1

Install the CLI

Run curl -LsSf https://app.nyas.io/install.sh | sh in your terminal.

2

Log in

Run nyas login so the local MCP process can use your Nyas account.

3

Add the MCP server

Use OAuth when your hosted MCP client opens a Nyas sign-in flow. Use a bearer token only when the client cannot complete OAuth but can send custom HTTP headers.

4

Ask for infrastructure

Your agent can create projects, inspect schemas, run SQL, get credentials, and manage storage buckets.

{
  "mcpServers": {
    "nyas": {
      "command": "nyas",
      "args": ["mcp"]
    }
  }
}
[mcp_servers.nyas]
command = "nyas"
args = ["mcp"]
Name: Nyas
Remote MCP server URL: https://api.nyas.io/mcp

OAuth path:
- Choose this when the client supports remote MCP OAuth.
- Use Nyas as the server name and https://api.nyas.io/mcp as the server URL.
- Leave OAuth client ID and secret blank unless your client explicitly asks for them.
- The client will open a Nyas approval/sign-in flow and store the token itself.

Bearer token path:
- Choose this only when your client cannot do OAuth but can send headers.
- Create or copy your Nyas account API key from the dashboard.
- Set NYAS_API_KEY in the environment where the MCP client runs.
- Send Authorization: Bearer ${NYAS_API_KEY} on requests to https://api.nyas.io/mcp.

{
  "mcpServers": {
    "nyas": {
      "type": "streamable-http",
      "url": "https://api.nyas.io/mcp",
      "headers": {
        "Authorization": "Bearer ${NYAS_API_KEY}"
      }
    }
  }
}
Use the Nyas MCP server to create a project with Postgres and storage for this app.


Connect the Nyas MCP server at https://api.nyas.io/mcp, then create a Postgres project and storage bucket for this app.

Create a Nyas storage bucket for user uploads.

Inspect my Nyas database schema and help me add tables for uploaded file metadata.

Create S3 access keys and show me the environment variables for my app.
curl -LsSf https://app.nyas.io/install.sh | sh
nyas --version
nyas login
nyas mcp --help

It's Postgres and S3.
Your stack already knows how.

No proprietary client. Paste the Postgres connection string into your ORM, then use the bucket, endpoint, and access keys with any S3-compatible SDK.

// Node.js with postgres.js + AWS S3 SDK
import postgres from 'postgres'
import { S3Client, PutObjectCommand } from '@aws-sdk/client-s3'

const sql = postgres(process.env.DATABASE_URL)
const storageKey = 'avatars/user-1.png'
const s3 = new S3Client({
  endpoint: process.env.STORAGE_ENDPOINT,
  region: process.env.STORAGE_REGION,
  credentials: {
    accessKeyId: process.env.ACCESS_KEY,
    secretAccessKey: process.env.SECRET_KEY,
  },
  forcePathStyle: true,
})

await s3.send(new PutObjectCommand({
  Bucket: process.env.STORAGE_BUCKET,
  Key: storageKey,
  Body: avatarBuffer,
}))

await sql`
  INSERT INTO files (owner_id, storage_key)
  VALUES (${userId}, ${storageKey})
`
# Python with psycopg + boto3
import psycopg
import boto3
import os

s3 = boto3.client(
    "s3",
    endpoint_url=os.environ["STORAGE_ENDPOINT"],
    region_name=os.environ["STORAGE_REGION"],
    aws_access_key_id=os.environ["ACCESS_KEY"],
    aws_secret_access_key=os.environ["SECRET_KEY"],
)

s3.upload_file("report.pdf", os.environ["STORAGE_BUCKET"], "reports/report.pdf")

with psycopg.connect(os.environ["DATABASE_URL"]) as conn:
    with conn.cursor() as cur:
        cur.execute("""
            INSERT INTO files (storage_key, content_type)
            VALUES (%s, %s)
        """, ("reports/report.pdf", "application/pdf"))
// Go with pgx and any S3-compatible client
package main

import (
    "context"
    "os"
    "github.com/jackc/pgx/v5"
)

func main() {
    conn, _ := pgx.Connect(context.Background(), os.Getenv("DATABASE_URL"))
    defer conn.Close(context.Background())

    var count int
    conn.QueryRow(context.Background(), "SELECT count(*) FROM users").Scan(&count)

    // Configure your S3 client with STORAGE_ENDPOINT, STORAGE_BUCKET,
    // ACCESS_KEY, and SECRET_KEY from the same Nyas project.
}
# Paste this into your agent's .env and keep building.
# Works with Cursor, Claude Code, Windsurf, Copilot, anything.

DATABASE_URL=postgres://u_9f2x:pw@db.nyas.io:5432/sandbox_42
STORAGE_ENDPOINT=https://project_id.storage.nyas.io/v1/s3
STORAGE_REGION=ap-south-1
STORAGE_BUCKET=user-uploads
ACCESS_KEY=019dc51f673a77b09c204ef4453b6abc
SECRET_KEY=LK6BNCAwVevu6YHTSp6rCNvCp0yFIiTjgPUbgdYs

# Then just tell your agent:
#   "Use these Nyas env vars. Store uploaded avatars in S3,
#    and keep each object's metadata in Postgres."

Managed Postgres
and storage that feels fast.

Six things that matter, done well. Nothing you didn't ask for.

/ 01

Sandbox projects in seconds

One curl, one connection string, one storage endpoint. No dashboard tour, no project wizard, no waiting. From landing page to first query and first bucket in under a minute.

/ 02

Built on PostgreSQL

Unmodified Postgres 18. Your ORM, your SQL, your extensions. pgvector, pg_trgm, postgis, all the usual suspects. Leave anytime with pg_dump.

/ 03

Helpful for agent workflows

Drop the database and storage vars into Cursor, Claude Code, Windsurf, or any agent's .env. Let it run migrations, seed data, upload files, and break things.

/ 04

Horizontal scaling when you need it

Read replicas, connection pooling, and room for file growth on paid tiers. Scale read traffic and object storage without rewrites when the prototype catches on.

/ 05

Automatic daily backups

Daily backups on Starter (7 days) and Growth (14 days). Point-in-time recovery when you accidentally drop the wrong table at 2am. Your weekend build stays safe.

/ 06

File storage alongside your DB

S3-compatible object storage in the same place as your database. Existing S3 SDKs work with generated buckets and access keys for uploads, assets, model checkpoints, and PDFs for RAG.

What Nyas is,
and what it isn't.

We’re intentionally small. If you’re looking for a full backend or complex branching workflows, there are tools for that. If you just want Postgres and S3-compatible storage ready quickly so you can start building, you’re in the right place.

→ Nyas is for
  • +Spinning up a Postgres sandbox plus S3-compatible storage for a weekend build, a client demo, or a college project.
  • +Giving Cursor, Claude Code, or Windsurf database and file storage resources they can experiment on without risk.
  • +File storage with CDN delivery
  • + A custom, CLI-first approach to database management that’s fast, scriptable, and built for developers.
→ Nyas is NOT
  • A production-grade enterprise DB or storage platform with SOC2, HIPAA, or multi-region HA today.
  • Per-pull-request branching is not available yet.
  • Scale-to-zero or usage-metered billing. Tiers are fixed, predictable, boring.
  • Trying to pretend it's further along than it is. We'll tell you what's missing.

Your agent
shouldn't run experiments
on prod data.

Give your coding agent real Postgres and S3-compatible storage it can drop, reseed, upload to, and break. Throw the sandbox away when the task is done.

1

One command, app resources

Run curl -LsSf app.nyas.io/install.sh | sh. You have a connection string, bucket, endpoint, and access keys in under a minute.

2

Hand it to the agent

Drop the env vars into .env and tell your agent to use them. Works with every framework, ORM, and S3 SDK.

3

Let it rip

Migrations. Seed data. Schema rewrites. Test uploads. Destructive queries. It's a sandbox. Nothing real is on fire.

4

Keep it or trash it

Ship the project and upgrade the resources, or delete them and start fresh tomorrow. Same shapes across tiers.

you → cursor
I need to build a lead tracker with contacts, notes,
tags, and file attachments. Use the Nyas env vars in my .env.
cursor
Connected to db.nyas.io
Created tables: contacts, notes, tags
Added foreign keys + indexes
Created bucket: lead-attachments
Stored file metadata in Postgres
Ready. Want me to generate the CRUD handlers?

Priced for
experiments, not enterprises.

Pay in rupees with UPI, or in USD if that's easier. Annual billing gets you 20% off. No per-query charges. Your bill will not surprise you.

Monthly Annual Save 20%
Tier 01 / Free
Free
0
forever / no card required
Testing, learning, and shipping your first vibe-coded project.
  • Database500 MB
  • File storage1 GB
  • Projects2
  • ComputeShared CPU · 500 MB RAM
  • Egress1 GB / mo
  • Backups
  • SupportDiscord
Start free →
Tier 03 / Growth
Growth
1,999
per month / billed annually
More storage, more memory, priority support as your thing grows up.
  • Database25 GB
  • File storage 50 GB Additional usage: ₹10 per GB
  • Projects25
  • Compute2 vCPU · 4 GB RAM
  • Egress 100 GB / mo Additional usage: ₹10 per GB
  • BackupsDaily · 14-day retention
  • SupportPriority · WhatsApp/Slack
Get Growth →

FAQ.

If it isn't here, email manish@nyas.io. You'll hear back from a human, usually the one who wrote the code.

It's unmodified PostgreSQL-18. No proprietary dialect, no custom client library, no Nyas-specific schema to learn. Your existing ORM (Prisma, Drizzle, SQLAlchemy, GORM, ActiveRecord, anything that speaks Postgres) works without changes.

Standard tools like pg_dump and pg_restore work normally, which means you can leave whenever you want.

Every Nyas database comes with the following extensions pre-installed and ready to use, no extra setup required:

Extension Purpose
fuzzystrmatch Fuzzy string matching: Soundex, Levenshtein, Metaphone
hstore Key-value pairs stored in a single column
ltree Hierarchical tree-like data: labels, paths, ancestry queries
pg_graphql GraphQL support directly inside PostgreSQL
pg_stat_statements Query performance statistics
pg_trgm Trigram-based fuzzy text search and similarity scoring
pgcrypto Cryptographic functions: hashing, encryption, UUID generation
plpgsql PL/pgSQL procedural language for stored procedures and triggers
postgres_fdw Foreign data wrapper for querying remote PostgreSQL databases
tablefunc Cross-tab queries and other table-function utilities
uuid-ossp UUID generation functions
TimescaleDB is available as an optional add-on. Enable it for any project from your project settings in the dashboard.

Yes. Nyas provides a built-in proxy that supports both connection pooling and transaction pooling modes, useful for serverless functions, edge runtimes, and apps that open many short-lived database connections.

Your pooled connection string and proxy settings are available in your project dashboard. Use the direct connection string for long-running processes (background workers, migrations) and the pooled connection string everywhere else.

For full agent control, install the Nyas CLI with curl -LsSf https://app.nyas.io/install.sh | sh, run nyas login, then add an MCP server with command nyas and args ["mcp"]. Restart your MCP client after login.

For simpler workflows, paste the standard Postgres connection string and storage credentials into your agent's environment or .env file. Use DATABASE_URL for SQL and the S3-compatible endpoint, bucket, access key, and secret key with normal S3 SDKs. The MCP path lets agents create projects, run SQL, inspect schemas, get credentials, and manage storage. See the examples repo for full workflows: github.com/nyastech/nyas-examples.

Yes, both directions, using standard Postgres and S3-compatible tooling.

In: pg_restore from a dump, or \copy from CSV, or logical replication from an existing Postgres. Out: pg_dump against your Nyas connection string gives you a portable SQL dump you can restore anywhere else. For storage, use any S3-compatible CLI or SDK to copy objects in or out of your bucket.

There's no proprietary export format and no lock-in layer. If Nyas stops being the right fit for you, you can leave in minutes.

You get a warning email before anything is throttled or paused. We don't auto-charge a card you haven't given us. You decide whether to upgrade to Starter, clean up data, or wait.

Free tier limits today: 500 MB database, 1 GB file storage, 2 projects, 1 GB egress per month.

Yes. Paid plans can be paid in INR through RazorPay, which means UPI, Indian credit cards, net banking, and wallets all work. USD billing is also available if you're outside India or expensing to an international card.

Annual billing gets you 20% off. There are no per-query or per-operation charges, so your bill won't spike from a runaway loop. Overages on storage and egress are billed at a fixed rate per GB (₹10 / $0.09).

Backups: Daily automated backups on Starter (7-day retention) and Growth (14-day retention). Free tier is best effort, appropriate for sandboxes.

Uptime: 99.9% SLA on paid tiers.

Support: Community Discord for free, email for Starter, priority WhatsApp/Slack for Growth.

If something breaks: Email manish@nyas.io or open an issue at github.com/nyastech/nyas-examples/issues. We're a small team, you'll hear back from a human, usually the one who wrote the code.

One curl.
Postgres and storage.
Keep shipping.