[{"data":1,"prerenderedAt":119},["ShallowReactive",2],{"project-vite-env":3},{"id":4,"title":5,"body":6,"createdAt":103,"description":104,"extension":105,"featured":106,"githubUrl":107,"meta":108,"navigation":106,"path":109,"seo":110,"status":111,"stem":112,"technologies":113,"url":117,"__hash__":118},"projects\u002Fprojects\u002Fvite-env.md","vite-env",{"type":7,"value":8,"toc":96},"minimark",[9,18,23,32,36,89,93],[10,11,12,13,17],"p",{},"What ",[14,15,16],"code",{},"@t3-oss\u002Fenv"," is for Next.js, but built natively on Vite 8 and Rolldown. Define your environment variables once with a schema, and get validated, typed imports everywhere.",[19,20,22],"h2",{"id":21},"why-i-built-this","Why I Built This",[10,24,25,26,31],{},"I wrote about the ",[27,28,30],"a",{"href":29},"\u002Fwritings\u002Fwhy-i-built-a-new-vite-env-plugin","four problems with plain Vite environment variables"," — no validation, no type safety, string-only values, and easy server\u002Fclient leaks. This plugin solves all four.",[19,33,35],{"id":34},"key-features","Key Features",[37,38,39,51,57,63,73,79],"ul",{},[40,41,42,46,47,50],"li",{},[43,44,45],"strong",{},"Typed virtual modules"," — import ",[14,48,49],{},"env"," with full IntelliSense",[40,52,53,56],{},[43,54,55],{},"Server\u002Fclient split"," with build-time leak detection",[40,58,59,62],{},[43,60,61],{},"Zod v4 native validation"," with Standard Schema support (Valibot, ArkType)",[40,64,65,72],{},[43,66,67,68,71],{},"Auto ",[14,69,70],{},".d.ts"," generation"," for type safety without manual declarations",[40,74,75,78],{},[43,76,77],{},"Platform presets"," for Vercel, Railway, Netlify",[40,80,81,88],{},[43,82,83,84,87],{},"HMR ",[14,85,86],{},".env"," watching"," — changes reload without restart",[19,90,92],{"id":91},"technical-details","Technical Details",[10,94,95],{},"The plugin generates virtual modules at build time, splitting server and client variables into separate imports. If client code accidentally imports a server variable, the build fails — preventing secret leaks before they happen.",{"title":97,"searchDepth":98,"depth":98,"links":99},"",2,[100,101,102],{"id":21,"depth":98,"text":22},{"id":34,"depth":98,"text":35},{"id":91,"depth":98,"text":92},"2026-04-05","The env.ts layer for Vite — define once, validate everywhere, import with types.","md",true,"https:\u002F\u002Fgithub.com\u002Fpyyupsk\u002Fvite-env",{},"\u002Fprojects\u002Fvite-env",{"title":5,"description":104},"active","projects\u002Fvite-env",[114,115,116],"TypeScript","Vite","npm",null,"rIG2fRpnZWwl834KWoIYvFEA57LLM3XkqiwXqdnj_Tg",1775838177086]