Skip to content

Svelte Quickstart

IMPORTANT

This guide is for static apps only. For SSR apps, please refer to the SvelteKit Quickstart guide.

1. Installation

The Svelte Clerk SDK gives you access to prebuilt components, runes, and helpers to make user authentication easier.

sh
npm install svelte-clerk

2. Set your Clerk API keys

Add your Clerk Publishable Key to your .env file. This key can always be retrieved from the API Keys page in the Clerk Dashboard.

sh
PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_xxxxxxxx

3. Add <ClerkProvider> to your root layout

All Clerk runes and components must be children of the <ClerkProvider> component, which provides active session and user context.

svelte
<script lang="ts">
	import type { Snippet } from 'svelte';
	import { ClerkProvider } from 'svelte-clerk/client';
	import { PUBLIC_CLERK_PUBLISHABLE_KEY } from '$env/static/private';

	const { children }: { children: Snippet } = $props();
</script>

<ClerkProvider publishableKey={PUBLIC_CLERK_PUBLISHABLE_KEY}>
	{@render children()}
</ClerkProvider>

4. Create a header with Clerk components

You can control which content signed-in and signed-out users can see with Clerk's prebuilt control components.

svelte
<script lang="ts">
	import { SignedIn, SignedOut, SignInButton, UserButton } from 'svelte-clerk/client';
</script>

<template>
	<header>
		<SignedOut>
			<SignInButton />
		</SignedOut>
		<SignedIn>
			<UserButton />
		</SignedIn>
	</header>
</template>

5. Create your first user

Run your project with the following command:

sh
npm run dev