hackhaton-space-stackHackhaton Space Stack
AcademyBuilder
Get Started
All terms
The Basics
  • Stack
  • Frontend & Backend
  • CLI
  • Monorepo
  • Server
  • Localhost
How AI Works
  • Context Window
  • Hallucination
  • Token
  • Prompt Caching
  • Session
  • Compaction
  • Embedding
  • Vector Database
  • RAG
  • Fine-tuning
  • Temperature
  • Inference
  • Reasoning
  • Multimodal
Building With AI
  • Agent
  • MCP
  • System Prompt
  • Skill
  • CLAUDE.md
  • Slash Command
  • Harness
  • Computer Use
  • Agents SDK
  • Voice Agents
  • OAuth
  • Vibe Coding
  • Permission Scope
  • Tool Calling
  • Prompt Injection
  • Eval
  • Guardrails
  • Sandbox
  • Progressive Disclosure
Code & Collaboration
  • Git
  • Commit
  • Branch
  • GitHub
  • Pull Request
  • Open Source
  • Markdown
  • Dependency
  • Merge
  • Fork
APIs & Connections
  • API
  • Auth
  • Database
  • ORM
  • SDK
  • Webhook
  • Endpoint
  • REST
  • HTTP Methods
  • Env File
  • Schema
  • JSON
  • YAML
  • Secret
  • Rate Limit
  • CORS
  • Cookie
  • Encryption
Shipping & Running
  • Deploy
  • Headless
  • Cron
  • DNS
  • CDN
  • Object Storage
  • Serverless
  • Edge
  • Worker
  • Runtime
  • Process
  • Daemon
  • Queue
  • Job
  • State
  • Cache
  • SSH
  • Build
  • Staging
  • Rollback
  • Docker
  • Feature Flag
  • Test
  • CI/CD
  • The Cloud
Debugging & Errors
  • Trace
  • Type Error
  • Stack Trace
  • Log
  • Bug
  • Patch
  • Latency
How Developers Think
  • DRY
  • YAGNI
  • KISS
  • Refactoring
  • Technical Debt
  • Async
← All terms

Type-safe, modern TypeScript scaffolding for full-stack web development

ThreadsGitHub

Info

  • Academy
  • Docs

Legal

  • Terms of Service
  • Privacy Policy

© 2026 Dzulhelmy Nazri

APIs & Connections

$defineorm--plain-english

ORM

TLDRA translator between your code and the database.

SQL is the language of the filing cabinet. TypeScript is the language of your app. They do not get along at parties.

An ORM — Object Relational Mapper — is the translator in the middle. You say "get me all todos for this user" in TypeScript. The ORM says it again in SQL. The database answers. The ORM hands you objects your code already understands.

Without one, you write raw SQL strings and hope a typo isn't a production incident. With one, a missing column is a red squiggle before you run the app.

Drizzle, Prisma, Mongoose

Same job. Different accents.

  • Drizzle — feels like SQL you can type-check. You see the query. You stay close to the cabinet.
  • Prisma — feels like a generated client. You describe the shape, it writes the talking.
  • Mongoose — the translator for Mongo, where the cabinet is documents, not rows.

none means you will write SQL (or Mongo queries) yourself. That's brave. It's also a Saturday you may not have.

Migrations are the paper trail

When you add a column, the cabinet has to change. A migration is the signed note: "as of this commit, todos have a done field." Run it on your laptop, run it in production, the cabinets match.

Skip migrations and you get the classic hackathon bug: it works locally because your file already has the column, and it dies on the judge's laptop because theirs doesn't.

What this unlocks

The ORM is not the database. It's how your backend is allowed to be wrong in TypeScript instead of wrong in production.

Pick one. Let it complain early. Spend the complaint budget on the product.

Related

  • Database
  • Frontend & Backend
  • API
PrevDatabase

APIs & Connections

NextSDK