astrobench · play with code
Step
10/10

Ship it for real

Custom domain. Real users. Real launch.

Look back. Ten lessons in Chapter 2. A layout. A content collection with five logs. An <Image> -optimized photo. A hype button. A search island. An API endpoint. View transitions.

 

One thing left. Make it real.

astro.config.mjs — add the adapter read-only
1
2
3
4
5
6
7
8
import { defineConfig } from "astro/config";
import vercel from "@astrojs/vercel";

export default defineConfig({
  output: "static",  // or 'server' for full SSR
  adapter: vercel(),
  site: "https://mission-control.vercel.app",
});

The adapter tells Astro where it's going to live. Each provider has one — @astrojs/vercel , @astrojs/netlify , @astrojs/cloudflare , @astrojs/node for your own server.

 

Two commands, in your terminal:

terminal read-only
1
2
3
4
5
# add the adapter
npx astro add vercel

# deploy to production (Vercel builds for you)
vercel --prod

First run asks you to vercel login and link the folder to a project. After that, every vercel --prod ships a build.

 

Or skip the CLI entirely: push to GitHub, import the repo in Vercel's dashboard, and every git push deploys. Free, automatic, forever.

 

Add a custom domain in the dashboard. Point DNS at Vercel. Mission Log goes live.

deployed to production

your real, live URL:

https://mission-log.vercel.app

final feature checklist:

  • · shared layout, no duplication
  • · 4 markdown logs, typed
  • · images, optimized to webp
  • · hype button (real JS)
  • · API endpoint + search
  • · smooth page transitions

Two chapters. Twenty lessons. One real website.

 

You started by editing Hello, world! . You ended with a content-driven, image-optimized, partially-hydrated, view-transitioning, deploy-on-push site.

 

Send Mission Control the URL. They'll be jealous.

— page 10 —
in the binder open binder →
saved a moment ago
progress 100%
earn +130 XP