Storage

Manage and serve files for your projects with getlaunch.dev Storage.


What is Storage?

getlaunch.dev Storage lets you upload, organize, and serve files through your project's public URL. Storage buckets are implemented as static site projects, so all files share the same public namespace as your deployed website.

Use cases:

  • Upload images, documents, and assets for your application
  • Serve user-generated content
  • Store media files for API responses
  • Host downloadable resources

Creating a Storage Bucket

  1. Go to Storage in your dashboard sidebar
  2. Click Create Storage
  3. Enter a bucket name (e.g., my-assets)
  4. Click Create
  5. You'll be redirected to the bucket detail page

Each bucket is assigned a unique public URL based on your project's subdomain. Files uploaded to the bucket are accessible at https://{project-url}/{filename}.


Uploading Files

In the bucket detail page:

  1. Drag and drop files into the upload area, or click to select files
  2. Select one or more files to upload
  3. Files are immediately available at their public URLs
  4. See the file size and last modified time in the file list

Supported file types:

  • Images: PNG, JPG, JPEG, GIF, WebP, SVG, BMP, ICO
  • Documents: PDF, TXT, DOCX, XLSX, PPTX
  • Code & Web: HTML, CSS, JS, JSON, XML, YAML
  • Archives: ZIP
  • Video: MP4, WebM, MOV

Managing Files

View Files

All files in your bucket are listed with:

  • File name
  • File size
  • Last modified date
  • Public URL (click to open or copy)

Download Files

Click the download icon next to a file to save it to your computer.

Copy File URL

Click the copy icon to get the public URL. Share this URL to provide direct access to the file.

Delete Files

Click the delete icon and confirm to remove a file from storage. This action is permanent.


Accessing Files

Files are publicly accessible at their URL without authentication:

https://{project-subdomain}/{filename}

Example:

https://my-assets-xxxx.gtlnch.app/logo.png
https://my-assets-xxxx.gtlnch.app/documents/report.pdf

Storage Quotas

Your storage quota depends on your plan. Check Pricing, Usage, or the project overview for yours. An upload that would go past it is refused; nothing is charged for storage beyond the plan price.

Requests and data transfer for your files share one traffic allowance with your static sites. When it is used up, your files show a paused page until it renews.


Best Practices

Organize files: Use meaningful names and group files logically (e.g., images/, documents/, uploads/)

Use appropriate formats: Optimize images with WebP or PNG, minify CSS/JS before uploading

Set up CDN caching: Files are served globally via CDN and cached automatically

Monitor quota: Keep an eye on storage and traffic on the Usage page, so uploads aren't refused and your files don't pause

Secure sensitive files: Storage is public by default. Only upload files you want to share publicly


Using Storage with Your Application

Serve Static Assets

Upload CSS, JavaScript, images, and other static assets:

<link rel="stylesheet" href="https://my-assets-xxxx.gtlnch.app/styles.css">
<img src="https://my-assets-xxxx.gtlnch.app/logo.png" alt="Logo">

API Responses

Include file URLs in your API responses:

{
  "id": "user-123",
  "name": "John Doe",
  "avatar_url": "https://my-assets-xxxx.gtlnch.app/avatars/user-123.png"
}

User-Generated Content

For user-generated uploads, send files through your own backend or another trusted service. From a server-side integration, request an upload URL with an API key, then upload the file to the returned URL:

curl -X POST "https://api.getlaunch.dev/v1/private/projects/{projectId}/files" \
  -H "Authorization: Bearer $GETLAUNCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"filename":"uploads/document.pdf","content_type":"application/pdf","size":5120}'

curl -X PUT "{upload_url}" \
  -H "Content-Type: application/pdf" \
  --data-binary @document.pdf

Pricing

Storage comes with your account, with no per-GB charges:

  • Each plan has a storage quota and a traffic allowance, shown on Pricing
  • Uploads past the quota are refused
  • When the traffic allowance is used up, files show a paused page until it renews

What's Next?