1---
2title: Websites
3description: Deploy Vite, Astro, Next.js, vinext, Nuxt, React Router, SvelteKit, TanStack Start, Waku, Octane, or any static build to AWS with first-class Website resources.
4sidebar:
5 label: Overview
6 order: 1
7---
8
9Alchemy deploys frontends to AWS with a family of `AWS.Website`
10resources. Each one builds your project programmatically and deploys
11it as a serverless site — the SSR server on a streaming Lambda
12Function URL, static assets in a private S3 bucket, and a CloudFront
13distribution whose edge router serves uploaded files from S3 and
14forwards everything else to the server — with no AWS-specific
15configuration: no CDK, no CloudFormation, no adapter setup. Your
16framework's own config file (`astro.config.*`, `nuxt.config.ts`,
17`vite.config.ts`, ...) loads natively; Alchemy layers its AWS
18integration on top.
19
20- [`Vite`](/aws/frontend/vite) — any client-only Vite project (React,
21 Vue, Solid, or a plain SPA): assets-only, no Lambda; your
22 `vite.config.*` loads natively.
23- [`Foldkit`](/aws/frontend/foldkit) — Foldkit apps; `Vite` with SPA
24 deep links on by default.
25- [`Astro`](/aws/frontend/astro) — Astro sites, server-rendered or
26 fully static; your `astro.config.*` loads natively.
27- [`Nextjs`](/aws/frontend/nextjs) — Next.js apps built through the
28 OpenNext (`@opennextjs/aws`) pipeline, with streaming SSR, image
29 optimization, and ISR wiring; your `next.config.*` is honored
30 as-is.
31- [`Vinext`](/aws/frontend/vinext) — vinext (Next.js API on Vite)
32 apps on a streaming Lambda; your `vite.config.ts` loads natively.
33- [`Nuxt`](/aws/frontend/nuxt) — Nuxt apps built through nitro's
34 `aws-lambda` preset; your `nuxt.config.ts` loads natively.
35- [`ReactRouter`](/aws/frontend/react-router) — React Router v7 in
36 framework mode, built through your own `vite build`.
37- [`SvelteKit`](/aws/frontend/sveltekit) — SvelteKit apps with a
38 wrangler-free in-memory AWS adapter; your `vite.config.ts` loads
39 natively.
40- [`TanStackStart`](/aws/frontend/tanstack-start) — TanStack Start
41 (React or Solid), built through your own `vite build`.
42- [`Waku`](/aws/frontend/waku) — Waku (React Server Components)
43 apps.
44- [`Octane`](/aws/frontend/octane) — OctaneJS fullstack apps built
45 through your own `vite build` with the AWS marker adapter.
46- [`StaticSite`](/aws/frontend/static-site) — any directory of files,
47 optionally produced by a build command, for static generators like
48 Zola and Hugo or pre-built SPAs.
49- [`Router`](/aws/frontend/static-site#compose-sites-with-a-router) —
50 a shared CloudFront front door: one distribution serving several
51 sites (or a site plus an API), routed at the edge.
52
53Every resource shares the same surface: `domain` (ACM certificate +
54Route 53 records), server configuration (`memorySize`, `timeout`,
55`env`), `assets`, `edge` customizations, and `invalidation`.
56All builds are memoized by content-hashing the input files — an
57unchanged project skips the build and deploy entirely. Under
58`alchemy dev`, every resource runs the framework's own dev server
59(native HMR) instead of deploying; `Alchemy.remote()` opts back into
60the full live deployment.
61
62## What's supported
63
64| Framework | Resource | Guide |
65| --- | --- | --- |
66| React / Vite SPA | `Vite` | [React SPA](/aws/frontend/vite-spa) |
67| Vue | `Vite` | [Vue](/aws/frontend/vue) |
68| Foldkit | `Foldkit` | [Foldkit](/aws/frontend/foldkit) |
69| TanStack Start (React & Solid) | `TanStackStart` | [TanStack Start](/aws/frontend/tanstack-start) |
70| React Router | `ReactRouter` | [React Router](/aws/frontend/react-router) |
71| Astro | `Astro` | [Astro](/aws/frontend/astro) |
72| Next.js | `Nextjs` | [Next.js](/aws/frontend/nextjs) |
73| vinext | `Vinext` | [vinext](/aws/frontend/vinext) |
74| Nuxt | `Nuxt` | [Nuxt](/aws/frontend/nuxt) |
75| SvelteKit | `SvelteKit` | [SvelteKit](/aws/frontend/sveltekit) |
76| Waku | `Waku` | [Waku](/aws/frontend/waku) |
77| OctaneJS (fullstack) | `Octane` | [Octane](/aws/frontend/octane) |
78| Zola, Hugo, or any static generator | `StaticSite` | [Static sites](/aws/frontend/static-site) |
79
80Every row is backed by a checked-in example or a live deploy test in
81the Alchemy repository. The last row is deliberately open-ended:
82`StaticSite` deploys any directory of files (running your build
83command first if you give it one), so any generator works the same
84way.
85
86## How to choose
87
88Use the resource named after your framework. `Astro`, `Nextjs`,
89`Nuxt`, `ReactRouter`, `SvelteKit`, `TanStackStart`,
90`Waku`, and `Octane` each drive their framework's own build and know
91its output layout, config surface, and dev server.
92
93Use `Vite` when the app is client-only and a single `vite build`
94produces the whole thing — a React or Vue SPA, or any Vite project
95with no server. It creates no Lambda.
96
97Use `StaticSite` when the output is plain files from an arbitrary
98build command that emits a directory (Zola, Hugo, or any other
99generator without a dedicated resource).
100
101Use `Router` when several sites (or a site plus an API) should share
102one CloudFront distribution and one domain — distributions take
103minutes to create, and each custom domain can only attach to one.
104
105## Where next
106
107- [The Vite resource](/aws/frontend/vite) — build model, env
108 inlining, SPA fallback, dev mode.
109- [The StaticSite resource](/aws/frontend/static-site) — build
110 commands, SPA/404 handling, Router composition, invalidation.
111- Framework guides:
112 [React SPA](/aws/frontend/vite-spa),
113 [Vue](/aws/frontend/vue),
114 [Foldkit](/aws/frontend/foldkit),
115 [TanStack Start](/aws/frontend/tanstack-start),
116 [React Router](/aws/frontend/react-router),
117 [Astro](/aws/frontend/astro),
118 [Next.js](/aws/frontend/nextjs),
119 [Nuxt](/aws/frontend/nuxt),
120 [SvelteKit](/aws/frontend/sveltekit),
121 [Waku](/aws/frontend/waku),
122 [Octane](/aws/frontend/octane).
123- [Full-stack RPC + Drizzle](/aws/frontend/full-stack-tanstack-rpc-drizzle) —
124 a TanStack Start UI driving an Effect RPC Lambda over Aurora DSQL.
125- [`StaticSite` reference](/providers/aws/website/staticsite) and
126 [`Router` reference](/providers/aws/website/router) — every prop
127 and attribute.