diff --git a/.gitignore b/.gitignore
index 27909fb1d13f937cf30655923711cecd84e94c9d..b2a42f7662ae60250642dbf24acac95f5bc32753 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,10 +7,8 @@ __pycache__
 *.egg-info
 
 node_modules
+web/lib/import-map.json
 
 *.session
-*.json
-!example-config.json
-!packs/*.json
-!web/package.json
+/*.json
 *.bak
diff --git a/README.md b/README.md
index dc719a773a5a1e121fa4d52071b6c24f40373202..75e8a90063996487d7812c4371050eb20db16378 100644
--- a/README.md
+++ b/README.md
@@ -4,82 +4,12 @@ A fast and simple Matrix sticker picker widget. Tested on Element Web, Android &
 ## Discussion
 Matrix room: [`#stickerpicker:maunium.net`](https://matrix.to/#/#stickerpicker:maunium.net)
 
-## Utility commands
-In addition to the sticker picker widget itself, this project includes some
-utility scripts you can use to import and create sticker packs.
+## Instructions
+For setup and usage instructions, please visit the [wiki](https://github.com/maunium/stickerpicker/wiki):
 
-To get started, install the dependencies for using the commands:
-
-0. Make sure you have Python 3.6 or higher.
-1. (Optional) Set up a virtual environment.
-   1. Create with `virtualenv -p python3 .venv`
-   2. Activate with `source .venv/bin/activate`
-2. Install the utility commands and their dependencies with `pip install .`
-
-### Importing packs from Telegram
-To import packs from Telegram, simply run `sticker-import <pack urls...>` with
-one or more t.me/addstickers/... URLs.
-
-If you want to list the URLs of all your saved packs, use `sticker-import --list`.
-This requires logging in with your account instead of a bot token.
-
-Notes:
-
-* On the first run, it'll prompt you to log in to Matrix and Telegram.
- * The Matrix URL and access token are stored in `config.json` by default.
- * The Telethon session data is stored in `sticker-import.session` by default.
-* By default, the pack data will be written to `web/packs/`.
-* You can pass as many pack URLs as you want.
-* You can re-run the command with the same URLs to update packs.
-
-### Creating your own packs
-1. Create a directory with your sticker images.
-   * The file name (excluding extension) will be used as the caption.
-   * The directory name will be used as the pack name/ID.
-   * If you want the stickers to appear in a specific order, prefix them with
-     `number-`, e.g. `01-Cat.png`. The number and dash won't be included in the
-     caption.
-2. Run `sticker-pack <pack directory>`.
-   * If you want to override the pack displayname, pass `--title <custom title>`.
-   * Pass `--add-to-index web/packs/` if you want to automatically add the
-     generated pack to your sticker picker.
-
-## Enabling the sticker widget
-1. Serve everything under `web/` using your webserver of choice. Make sure not
-   to serve the top-level data, as `config.json` and the Telethon session file
-   contain sensitive data.
-2. Using `/devtools` in Element Web, edit the `m.widgets` account data event to
-   have the following content:
-
-   ```json
-   {
-       "stickerpicker": {
-           "content": {
-               "type": "m.stickerpicker",
-               "url": "https://your.sticker.picker.url/?theme=$theme",
-               "name": "Stickerpicker",
-               "data": {}
-           },
-           "sender": "@you:picker.url",
-           "state_key": "stickerpicker",
-           "type": "m.widget",
-           "id": "stickerpicker"
-       }
-   }
-   ```
-
-    If you do not yet have a `m.widgets` event, simply create it with that content.
-    You can also [use the client-server API directly][1] instead of using Element Web.
-
-    The `theme=$theme` query parameter will make the widget conform to Element's
-    theme automatically. You can also use `light`, `dark` or `black` instead of
-    `$theme` to always use a specific theme.
-
-    You can use https://maunium.net/stickers-demo/ as the URL to try out the
-    picker without hosting the files yourself.
-3. Open the sticker picker and enjoy the fast sticker picking experience.
-
-[1]: https://matrix.org/docs/spec/client_server/latest#put-matrix-client-r0-user-userid-account-data-type
+* [Creating packs](https://github.com/maunium/stickerpicker/wiki/Creating-packs)
+* [Enabling the widget](https://github.com/maunium/stickerpicker/wiki/Enabling-the-widget)
+* [Hosting on GitHub pages](https://github.com/maunium/stickerpicker/wiki/Hosting-on-GitHub-pages)
 
 ## Preview
 ### Element Web
diff --git a/web/packs/.gitkeep b/web/packs/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391