Voltar ao início

Banco de Dados

Serviços de banco de dados gratuitos para seus projetos. Todos têm tier gratuito generoso para começar.

Supabase

PostgreSQL

Alternativa open source ao Firebase. PostgreSQL completo com Auth, Storage, Realtime e Edge Functions inclusos.

Tier Gratuito:

500MB database, 1GB storage, 50k MAU auth

Features:

PostgreSQL completoAutenticação integradaStorage para arquivosRealtime subscriptionsEdge FunctionsDashboard visual

Melhor para:

Projetos que precisam de tudo: auth, database, storage. Ideal para MVPs e startups.

Instalação:

npm install @supabase/supabase-js

Neon

PostgreSQL Serverless

PostgreSQL serverless com branching de banco de dados. Auto-suspend para economizar recursos.

Tier Gratuito:

3GB storage, 1 projeto, branching incluso

Features:

PostgreSQL serverlessBranching (como Git)Auto-suspend (economia)Scale to zeroConexões poolingIntegração Vercel

Melhor para:

Projetos Next.js/Vercel. Perfeito para quem quer Postgres moderno sem gerenciar servidor.

Instalação:

npm install @neondatabase/serverless

MongoDB Atlas

NoSQL (Document)

MongoDB na nuvem. Banco de dados de documentos flexível, ideal para dados não estruturados.

Tier Gratuito:

512MB storage, cluster M0 gratuito

Features:

Schema flexívelQueries poderosasAggregation pipelineFull-text searchAtlas ChartsRealm sync (mobile)

Melhor para:

Dados com estrutura variável, prototipagem rápida, apps que mudam frequentemente.

Instalação:

npm install mongodb

PlanetScale

MySQL Serverless

MySQL serverless com branching e deploy sem downtime. Escala automaticamente.

Tier Gratuito:

5GB storage, 1 bilhão row reads/mês

Features:

MySQL compatívelBranching de schemaDeploy sem downtimeEscala automáticaInsights de queriesConexões ilimitadas

Melhor para:

Apps que precisam de MySQL escalável. Ótimo para schemas que evoluem com frequência.

Instalação:

npm install @planetscale/database

Turso

SQLite Edge

SQLite distribuído na edge. Latência ultra baixa, replicado globalmente.

Tier Gratuito:

9GB storage, 500 databases, 1 bilhão rows lidas

Features:

SQLite na edgeLatência ultra baixaReplicação globalEmbedded replicasCLI poderosaCompatível SQLite

Melhor para:

Apps que precisam de latência mínima. Perfeito para edge computing e apps globais.

Instalação:

npm install @libsql/client

Firebase Firestore

NoSQL (Document)

Banco de dados NoSQL do Google. Sincronização em tempo real, ideal para apps colaborativos.

Tier Gratuito:

1GB storage, 50k leituras/dia, 20k escritas/dia

Features:

Realtime syncOffline supportSecurity rulesIntegração FirebaseQueries compostasMulti-region

Melhor para:

Apps realtime, chat, colaboração. Integra bem com Firebase Auth e Hosting.

Instalação:

npm install firebase

ORMs Recomendados

ORMs (Object-Relational Mappers) facilitam a interação com o banco de dados usando código TypeScript/JavaScript.

Prisma

ORM moderno com type-safety. Gera tipos TypeScript automaticamente do seu schema.

Suporta:

PostgreSQLMySQLSQLiteMongoDBSQL Server

Prós

  • Type-safe
  • Migrations automáticas
  • Studio visual
  • Excelente DX

Contras

  • Bundle maior
  • Menos flexível para queries complexas

Instalação:

npm install prisma @prisma/client

Drizzle

ORM leve e performático. SQL-like syntax com type-safety completo.

Suporta:

PostgreSQLMySQLSQLiteTursoNeonPlanetScale

Prós

  • Ultra leve
  • Syntax SQL-like
  • Zero overhead
  • Flexível

Contras

  • Comunidade menor
  • Menos plugins

Instalação:

npm install drizzle-orm

SQL vs NoSQL: Quando usar cada um?

SQL (Relacional)

PostgreSQL, MySQL, SQLite

Use quando:

  • Dados estruturados e previsíveis
  • Relacionamentos complexos entre tabelas
  • Transações ACID importantes
  • Relatórios e queries analíticas

Evite quando:

  • Schema muda constantemente
  • Dados muito variados/flexíveis
  • Escala horizontal massiva

NoSQL (Documento)

MongoDB, Firebase, DynamoDB

Use quando:

  • Schema flexível ou em evolução
  • Dados não estruturados
  • Escala horizontal necessária
  • Prototipagem rápida

Evite quando:

  • Muitos relacionamentos entre dados
  • Transações complexas
  • Queries analíticas pesadas

Exemplo Rápido: Prisma + Neon

1. Instale as dependências:

npm install prisma @prisma/client && npx prisma init

2. Configure o .env:

DATABASE_URL="postgresql://user:pass@host/db?sslmode=require"

3. Defina seu schema (prisma/schema.prisma):

model User {
  id    Int     @id @default(autoincrement())
  email String  @unique
  name  String?
}

4. Execute as migrations:

npx prisma migrate dev --name init

Dica Pro

Para projetos iniciantes, recomendo Supabase pela simplicidade - você ganha database, auth e storage em um só lugar. Se já sabe que precisa só de database, Neon é excelente para PostgreSQL e integra perfeitamente com Vercel.