Skip to content

SolidStart

Source: src/AWS/Website/SolidStart.ts

Deploy a SolidStart application to AWS: the SSR server on a streaming Lambda Function URL, static assets (prerendered pages included) in S3, and a CloudFront distribution whose edge router serves uploaded files from S3 and forwards everything else to the server.

The build runs through @alchemy.run/frontend-frameworks/solidstart with the @alchemy.run/frontend-frameworks/solidstart/aws deploy target — both must be installed in your project, alongside @solidjs/start and @solidjs/vite-plugin-nitro-2.

Your vite.config.ts needs no adapter wiring: the integration drives the project’s own vite build and appends its own nitro plugin instance carrying nitro’s aws-lambda preset with response streaming enabled.

Basic SolidStart App

const site = yield* AWS.Website.SolidStart("Web", {
rootDir: "./app",
});

Custom Domain

const site = yield* AWS.Website.SolidStart("Web", {
rootDir: "./app",
domain: {
name: "app.example.com",
hostedZoneId: zone.hostedZoneId,
},
});
const site = yield* AWS.Website.SolidStart("Web", {
rootDir: "./app",
memorySize: 2048,
env: {
API_BASE: api.url,
},
});

The integration owns the nitro plugin instance (a nitroV2Plugin() in your vite.config.* is rejected), so nitro options — prerendering included — go on the nitro prop. Prerendered pages are uploaded to S3 and served from the edge automatically.

const site = yield* AWS.Website.SolidStart("Web", {
rootDir: "./app",
nitro: { prerender: { routes: ["/", "/about"] } },
});