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

Shipping & Running

$defineobject-storage--plain-english

Object Storage

TLDRA giant bucket on the internet for files.

The database is a cabinet of facts. It is a terrible attic.

A photo, a pitch-deck PDF, the zip a teammate "just uploaded" — those are objects. Object storage is the loading dock: S3, R2, UploadThing. You put the crate in. You get a URL back. The cabinet stores the URL and the title. The dock stores the bytes.

Do not jam the crate into the cabinet. A row should say "user 41 has a headshot" and point. It should not swallow the headshot. Do not drop user uploads into public/ on the server disk either. Disks fill during a demo. The dock is built to take another crate.

What you keep where

  • Small facts — email, todo text, who paid — stay in the database.
  • Heavy stuff — images, video, backups — go on the dock.
  • A CDN in front if strangers will fetch them all weekend.

The dock is dumb on purpose. It does not crop, rename, or peek inside. You replace a crate; you do not edit it in place. That boredom is why it is cheap and hard to lose. Copies sit in more than one building. A drive dies. Your crate was already on another hook.

The ticket can be public (the product shot on the landing page) or a short-lived signed URL (the receipt only that user should open). Same dock. Two kinds of key.

When the builder talks storage, this is the crate question, not the cabinet question. After npx create-hackhaton-space-stack@latest, your app can remember names tomorrow. It still needs a dock the moment someone pastes a screenshot. The schema stores a pointer. Deploy does not invent a warehouse for you.

What this unlocks

Facts in the cabinet. Stuff on the dock. A row that stores a URL instead of a blob. That split is how a hackathon upload feature survives past the first twenty files.

The dining room stays light. The attic is someone else's building.

Related

  • Database
  • CDN
  • Deploy
PrevCDN

Shipping & Running

NextServerless