LaunchFast now ships with Neon Storage support.
Same repo. Same STORAGE_PROVIDER=s3. Just plug in your Neon endpoint and credentials — and you’re uploading files next to your Postgres branch.
Bring your own database with LaunchFast was already the whole point. Now the files live in the same project too.
One stack. One dashboard. Ship faster.
Why this matters
Most LaunchFast apps need two things on day one: a database for users, sessions, and billing — and object storage for avatars, uploads, and generated assets. With Neon, both can live in one project.
- Fewer vendors: Postgres and file storage in the same Neon dashboard.
- Branch-friendly: Your database branches and storage buckets stay aligned as you develop and preview.
- No new storage API: LaunchFast already supports S3-compatible providers. Neon Storage plugs into the same code path as Amazon S3 and Cloudflare R2.
What’s included
- S3-compatible uploads and retrieval via LaunchFast’s existing
/api/storageroutes and<Upload />component - Pre-signed URLs for secure client-side uploads — same flow as AWS S3 and Cloudflare R2
- One env var addition:
AWS_ENDPOINT_URL_S3points the S3 client at your Neon Storage endpoint - Available in all frameworks: Astro, Next.js, and SvelteKit starter kits
Under the hood, the Astro starter kit routes object URLs through a shared S3 helper that picks the right endpoint automatically — R2 when CLOUDFLARE_R2_ACCOUNT_ID is set, Neon when AWS_ENDPOINT_URL_S3 is set, and standard AWS S3 otherwise.
Getting started
1. Enable Storage in your Neon project
Open your Neon Console project and go to the Storage tab. Create a bucket, click Connect, click Generate Credentials, and copy:
- S3 endpoint URL
- Access key ID
- Secret access key
- Bucket name
- Region name
2. Configure your .env
Set STORAGE_PROVIDER to s3, then add your Neon Storage credentials:
STORAGE_PROVIDER="s3"
AWS_ENDPOINT_URL_S3="https://....storage.c-3.us-east-2.aws.neon.tech"AWS_KEY_ID="..."AWS_SECRET_ACCESS_KEY="..."AWS_S3_BUCKET_NAME="...-bucket-0"AWS_REGION_NAME="us-east-2"Do not set CLOUDFLARE_R2_ACCOUNT_ID when using Neon Storage — that variable is only for Cloudflare R2.
If you’re already running Postgres on Neon, your database URLs (POSTGRES_DIRECT_URL, POSTGRES_SESSION_POOLED_URL) stay as they are. You’re only adding storage credentials alongside them.
3. Run the app and upload a file
Start your dev server, sign in, and upload a profile image or any file through the built-in upload flow. LaunchFast generates a pre-signed PUT URL against your Neon bucket, the browser uploads directly, and retrieval works through the same signed-URL path.
Other storage providers
Neon Storage joins the storage providers LaunchFast already supports:
- Amazon S3 — /documentation/storage/amazon-s3/
- Cloudflare R2 — /documentation/storage/cloudflare-r2/
- Supabase Storage — /documentation/storage/supabase/
- Firebase Storage — /documentation/storage/firebase/
Switch providers anytime by updating STORAGE_PROVIDER and the relevant env vars. No application code changes required.
Get started today
Ready to keep your database and files in one Neon project?
Get LaunchFast Starter Kit and ship with one stack from day one.