diff --git a/docs/pages/frameworks/svelte.md b/docs/pages/frameworks/svelte.md
new file mode 100644
index 00000000..0e11967b
--- /dev/null
+++ b/docs/pages/frameworks/svelte.md
@@ -0,0 +1,85 @@
+---
+meta:
+ title: Svelte
+ description: Tips for using Shoelace in your Svelte app.
+---
+
+# Svelte
+
+Svelte [plays nice](https://custom-elements-everywhere.com/#svelte) with custom elements, so you can use Shoelace in your Svelte apps with ease.
+
+## Installation
+
+To add Shoelace to your Svelte app, install the package from npm.
+
+```bash
+npm install @shoelace-style/shoelace
+```
+
+Next, [include a theme](/getting-started/themes) and set the [base path](/getting-started/installation#setting-the-base-path) for icons and other assets. In this example, we'll import the light theme and use the CDN as a base path.
+
+```jsx
+// main.js or main.ts
+import '@shoelace-style/shoelace/dist/themes/light.css';
+import { setBasePath } from '@shoelace-style/shoelace/dist/utilities/base-path';
+
+setBasePath('https://cdn.jsdelivr.net/npm/@shoelace-style/shoelace@%VERSION%/%CDNDIR%/');
+```
+
+:::tip
+If you'd rather not use the CDN for assets, you can create a build task that copies `node_modules/@shoelace-style/shoelace/dist/assets` into a public folder in your app. Then you can point the base path to that folder instead.
+:::
+
+## Usage
+
+### QR code generator example
+
+```jsx
+
Live editing
+
+ message = event.target.value}>
+
+
+
+ {message}
+
+
+
+```
+
+### Two-way Binding
+
+One caveat is there's currently Svelte only supports `bind:value` directive in ``, `