Best practice for S3 in Tanstack Start
The uploaded image is my s3.ts file, which is used in other server functions, and my serverEnv is:

import { z } from "zod";
const serverEnvSchema = z.object({
VITE_BASE_URL: z.url().default("http://localhost:3000"),
BETTER_AUTH_SECRET: z.string().min(1),
GOOGLE_CLIENT_ID: z.string().min(1),
GOOGLE_CLIENT_SECRET: z.string().min(1),
DATABASE_URL: z.url(),
S3_ENDPOINT: z.string().optional(),
S3_REGION: z.string().default("us-east-1"),
S3_ACCESS_KEY_ID: z.string().optional(),
S3_SECRET_ACCESS_KEY: z.string().optional(),
S3_BUCKET_NAME: z.string().optional(),
S3_FORCE_PATH_STYLE: z.coerce.boolean().default(false),
});
// Validate server environment
export const serverEnv = serverEnvSchema.parse(process.env);You can now submit your website/app/project to http://TanStack.com 's new showcase and have it seen by the TanStack community! - Global showcase browser - Per-library filters - Category filters Submit here: https://tanstack.com/showcase/submit View all here: https://tanstack.com/showcase
dry-scarlet · 2w ago
TanStack AI Alpha 2 is here! 🖼️ Image, video, audio, speech, transcription, structured output 📦 Split adapters = smaller bundles, faster dev/contributions, easier 🎄 Fully tree shakable adapters ✨ Cleaner, flattened, fully type-safe APIs https://tanstack.com/blog/tanstack-ai-alpha-2
dry-scarlet · 4w ago
📣 TanStack AI Alpha is here! ✨ Framework agnostic 🤖 Provider agnostic 🧠 Type safe 🔧 Isomorphic tools 🛠 Devtools 🌐 Open protocol 📦 JS, Python, PHP ⚛️ React, Solid, Vanilla 🌀 OpenAI, Anthropic, Gemini, Ollama, ++ Official blog post: https://tanstack.com/blog/tanstack-ai-alpha-your-ai-your-way Docs: https://tanstack.com/ai
dry-scarlet · 2mo ago