Server-only vs browser-exposed env vars.
Skip to solutionKEEP THE
easyFrontend
How do environment variables work in Next.js (the NEXT_PUBLIC_ prefix)?
1.0k views
01
Understand the problem
nextjsenv-varsnext-publicconfiguration
02
Attempt it yourself
Sketch your approach before reading the solution — that's what interviews test.
Nudge consolestandby
Stuck? Beam a request up — the console returns a conceptual nudge that guides your logic without spoiling the implementation.
03
Study the solution
Variables in .env are available on the server via process.env. Only those prefixed NEXT_PUBLIC_ are inlined into the client bundle and exposed to the browser — so never prefix secrets. Next.js loads .env.local/.env.production etc. by convention.
Solution ready — 2 min read
Classified // press E to declassify
04
Read the code
Server secret vs public var
// .env.local
DATABASE_URL=postgres://... # server-only (secret)
NEXT_PUBLIC_API_URL=https://api.example.com # inlined into the browser
// server (Server Component / Route Handler)
const db = connect(process.env.DATABASE_URL); // ✅ secret stays server-side
// client component
'use client';
fetch(process.env.NEXT_PUBLIC_API_URL + '/ping'); // ✅ public var, visible to users05
Join the discussion
Discussion (0)
Sign in to join the discussion.
No responses yet. Be the first to share what you think.
Transmission complete // awaiting log
KEEP THE
STREAK ALIVE.
Dossier 2 of 95 decoded in the Next.js track. One more won't hurt.