Skip to content

Start with SvelteKit

Learn how to setup your first SvelteKit project powered by Appwrite.

1

Head to the Appwrite Console.

Create project screen

Create project screen

If this is your first time using Appwrite, create an account and create your first project.

Then, under Add a platform, add a Web app. The Hostname should be localhost.

Cross-Origin Resource Sharing (CORS)

Adding localhost as a platform lets your local app talk to Appwrite. For production, add your live domain to avoid CORS errors.

Learn more in our CORS error guide.

Add a platform

Add a platform

You can skip optional steps.

2

Create a SvelteKit project.

Shell
npx sv create 
3

Install the JavaScript Appwrite SDK.

Shell
npm install appwrite 
4

Find your project's ID in the Settings page.

Project settings screen

Project settings screen

Create a new file src/lib/appwrite.js and add the following code to it, replace <PROJECT_ID> with your project ID.

Web
import { Client, Account } from 'appwrite';  export const client = new Client();  client  .setEndpoint('https://<REGION>.cloud.appwrite.io/v1')  .setProject('<PROJECT_ID>'); // Replace with your project ID  export const account = new Account(client); export { ID } from 'appwrite'; 
5

Replace the contents of src/routes/+page.svelte with the following code.

HTML
<script>  import { account, ID } from '$lib/appwrite';   let loggedInUser = null;   async function login(email, password) {  await account.createEmailPasswordSession({  email,  password  });  loggedInUser = await account.get();  }   async function register(email, password) {  await account.create({  userId: ID.unique(),  email,  password  });  login(email, password);  }   function submit(e) {  e.preventDefault();  const formData = new FormData(e.target);  const type = e.submitter.dataset.type;   if (type === "login") {  login(formData.get('email'), formData.get('password'));  } else if (type === "register") {  register(formData.get('email'), formData.get('password'));  }  }   async function logout() {  await account.deleteSession({ sessionId: 'current' });  loggedInUser = null;  } </script>  <p>  {loggedInUser ? `Logged in as ${loggedInUser.name}` : 'Not logged in'} </p>  <form on:submit={submit}>  <input type="email" placeholder="Email" name="email" required />  <input type="password" placeholder="Password" name="password" required />   <button type="submit" data-type="login">Login</button>  <button type="submit" data-type="register">Register</button> </form>  <button on:click={logout}>Logout</button> 
6

Run your project with npm run dev and open localhost on port 5173 in your browser.