Launch Week Day 5: Introducing Reachability for PHP.Learn More
Socket
Book a DemoSign in
Socket

@donswayo/pulumi-sveltekit-aws

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@donswayo/pulumi-sveltekit-aws

SvelteKit adapter and Pulumi components for deploying to AWS

latest
npmnpm
Version
0.1.2
Version published
Maintainers
1
Created
Source

@donswayo/pulumi-sveltekit-aws

A SvelteKit adapter and Pulumi library for deploying SvelteKit applications to AWS using Lambda, S3, and CloudFront.

Features

  • 🚀 Serverless deployment with AWS Lambda
  • 🌍 Global CDN with CloudFront
  • 📦 Static asset hosting with S3
  • ⚡ Optimized for performance
  • 🔧 Simple configuration
  • 🏗️ Infrastructure as Code with Pulumi

Installation

pnpm add @donswayo/pulumi-sveltekit-aws

Usage

1. Configure the Adapter

In your svelte.config.js:

import adapter from '@donswayo/pulumi-sveltekit-aws/adapter';

/** @type {import('@sveltejs/kit').Config} */
const config = {
  kit: {
    adapter: adapter({
      out: '.svelte-kit-aws',
      precompress: false,
      polyfill: true,
    })
  }
};

export default config;

2. Build Your App

pnpm build

This will create a .svelte-kit-aws directory with:

  • server/ - Lambda function code
  • static/ - Static assets
  • prerendered/ - Prerendered pages
  • metadata.json - Deployment metadata

3. Deploy with Pulumi

Create a Pulumi program:

import * as pulumi from "@pulumi/pulumi";
import { SvelteKitAwsDeployment } from "@repo/pulumi-sveltekit-aws";

const app = new SvelteKitAwsDeployment("my-sveltekit-app", {
  buildPath: "./apps/web/.svelte-kit-aws",
  
  environment: {
    NODE_ENV: "production",
    PUBLIC_API_URL: "https://api.example.com",
  },
  
  lambda: {
    memory: 512,
    timeout: 30,
    architecture: "arm64",
  },
  
  domain: {
    name: "app.example.com",
    certificateArn: "arn:aws:acm:us-east-1:...:certificate/...",
  },
  
  priceClass: "PriceClass_100",
  
  tags: {
    Environment: "production",
    Team: "frontend",
  },
});

export const url = app.url;
export const distributionId = app.distributionId;

Deploy:

pulumi up

Configuration

Adapter Options

OptionTypeDefaultDescription
outstring.svelte-kit-awsOutput directory for build
precompressbooleanfalsePrecompress static assets
envPrefixstring""Environment variable prefix filter
polyfillbooleantrueAdd Node.js polyfills

Deployment Options

OptionTypeDescription
buildPathstringPath to adapter build output
environmentRecord<string, string>Environment variables for Lambda
domain{ name, certificateArn }Custom domain configuration
lambda{ memory, timeout, architecture }Lambda configuration
priceClassstringCloudFront price class
tagsRecord<string, string>AWS resource tags

Architecture

The deployment creates:

  • Lambda Function - Handles server-side rendering and API routes
  • S3 Bucket - Stores static assets and prerendered pages
  • CloudFront Distribution - Global CDN with intelligent routing
  • IAM Roles - Proper permissions for all services

Request Flow

  • CloudFront receives request
  • Static assets (_app/*, *.js, *.css, etc.) are served from S3
  • Dynamic requests are forwarded to Lambda
  • Lambda renders the page and returns the response

Advanced Usage

You can use individual components for custom deployments:

import {
  createS3Bucket,
  createServerFunction,
  createCloudFrontDistribution,
} from "@repo/pulumi-sveltekit-aws";

// Custom deployment logic

Development

# Install dependencies
pnpm install

# Build the package
pnpm build

# Type check
pnpm check-types

License

MIT

FAQs

Package last updated on 31 Aug 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts