diff --git a/README.md b/README.md
index c57f9d1..02067b2 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,139 @@
-# ebbes-meme-clipboard
+# Ebbe's Meme Clipboard
+A meme and GIF picker for Windows, inspired by the built-in Windows Emoji Picker (Win+.).
+
+Press a global hotkey anywhere, a small popup appears, search your memes or Giphy, click one —
+and it lands straight in whatever app you were just typing in. It lives in the system tray and
+stays out of the way until you need it.
+
+---
+
+## Features
+
+- **Global hotkey** — opens the picker over any app. Defaults to Ctrl+Alt+M, fully remappable (the Win key works too, e.g. Win+Y).
+- **Your own meme library** — add images by clicking **+**, dragging files onto the window, or simply pasting with Ctrl+V. Supports JPG, PNG and GIF.
+- **Giphy search** — a second tab searches Giphy directly (needs a free API key, see below).
+- **Favourites** — right-click any meme to pin it to a ★ Favourites row at the top of that tab. Kept separately per source.
+- **Three insert modes** — copy to clipboard, paste into the active window, or paste *and* send instantly.
+- **Animated GIFs stay animated** — the clipboard is written in several formats at once so GIFs paste as real animations in Discord, Slack and Teams, rather than as a flattened still frame.
+- **Search as you type** — filters your library by filename; Giphy results are debounced so typing doesn't burn through the API rate limit.
+- **Runs from the tray** — optional start-with-Windows, and a movable, dismiss-on-click-away popup.
+
+## Installation
+
+**Installer (recommended)** — run `EbbesMemeClipboard-Setup-.exe`. It installs per-user by
+default (no admin prompt) but lets you choose "just me" or "all users", and offers optional desktop
+and start-with-Windows shortcuts.
+
+**Portable** — grab `EbbesMemeClipboard.exe` and run it. No installation, no .NET runtime needed;
+everything is bundled. It'll write its library and settings to `%AppData%` as usual.
+
+> Windows may show a SmartScreen warning on first run, because the executable isn't code-signed.
+> Choose *More info → Run anyway*. Signing requires a paid certificate from a certificate authority.
+
+## Usage
+
+| Action | How |
+|---|---|
+| Open / close the picker | Ctrl+Alt+M, or left-click the tray icon |
+| Insert a meme | Click it |
+| Add memes | **+** button, drag files in, or Ctrl+V |
+| Favourite / unfavourite | Right-click a meme |
+| Delete a meme | Right-click → **Remove** (goes to the Recycle Bin) |
+| Search | Just start typing |
+| Move the window | Drag the title bar |
+| Close the picker | Esc, or click elsewhere |
+| Settings / quit | Right-click the tray icon |
+
+Pasting plain text into the window still goes to the search box — only images get imported.
+
+### Insert modes
+
+Set these under **Settings → Insert Mode**:
+
+- **Copy to clipboard** — just copies; you paste it yourself.
+- **Paste into active window** *(default)* — restores focus to the app you came from and pastes for you.
+- **Paste and send instantly** — the above, plus Enter. Handy in chat apps, but it *will* send the message immediately, so it's off by default.
+
+### Giphy setup
+
+The Giphy tab needs your own free API key:
+
+1. Go to [developers.giphy.com](https://developers.giphy.com), create an account and an app, and choose **API Key**.
+2. Paste the key into **Settings → Giphy**.
+
+The free tier allows 100 requests per hour, which is plenty for personal use. Giphy's terms
+require the "Powered by GIPHY" attribution shown in the app whenever their results are displayed.
+
+## Where your data lives
+
+```
+%AppData%\EbbesMemeClipboard\
+ settings.json hotkey, insert mode, Giphy API key
+ favorites.json favourites, per source
+ Library\ your imported memes + an index
+
+%LocalAppData%\EbbesMemeClipboard\
+ GifCache\ downloaded Giphy GIFs (re-downloadable; safe to delete)
+```
+
+Uninstalling deliberately leaves your memes, favourites and settings in place — only the
+re-downloadable cache is cleared.
+
+## Known limitations
+
+- **The popup appears at the mouse cursor, not the text caret.** The real Emoji Panel can follow
+ the caret because it's a privileged part of the Windows shell; third-party apps have no
+ equivalent access.
+- **Auto-paste doesn't work into apps running as administrator.** Windows blocks a normal program
+ from sending input to an elevated window (UIPI). The meme is still copied — just press
+ Ctrl+V yourself.
+- **No single-instance guard yet.** If two copies run at once they'll compete for the global
+ hotkey. Worth checking you don't have both a Startup shortcut *and* the autostart setting enabled.
+- **Windows only.** See below.
+
+## Building from source
+
+Requires the [.NET 10 SDK](https://dotnet.microsoft.com/download).
+
+```bash
+# run it
+dotnet run --project src/EbbesMemeClipboard
+
+# portable single exe -> publish/
+dotnet publish src/EbbesMemeClipboard/EbbesMemeClipboard.csproj -c Release -r win-x64 \
+ --self-contained true -p:PublishSingleFile=true \
+ -p:IncludeNativeLibrariesForSelfExtract=true -p:EnableCompressionInSingleFile=true \
+ -o publish
+```
+
+To build the installer you'll also need [Inno Setup 6](https://jrsoftware.org/isinfo.php). Note the
+publish step deliberately disables .NET's own compression, so Inno's LZMA2 can compress the raw
+bytes instead — that yields a noticeably smaller setup and a faster-starting app:
+
+```bash
+dotnet publish src/EbbesMemeClipboard/EbbesMemeClipboard.csproj -c Release -r win-x64 \
+ --self-contained true -p:PublishSingleFile=true \
+ -p:IncludeNativeLibrariesForSelfExtract=true -p:EnableCompressionInSingleFile=false \
+ -o publish-installer
+
+"%LocalAppData%\Programs\Inno Setup 6\ISCC.exe" installer\EbbesMemeClipboard.iss
+```
+
+### Tech stack
+
+.NET 10 · WPF · MVVM ([CommunityToolkit.Mvvm](https://github.com/CommunityToolkit/dotnet)) ·
+[H.NotifyIcon](https://github.com/HavenDV/H.NotifyIcon) for the tray icon ·
+`Microsoft.Extensions.DependencyInjection`
+
+### Platform support
+
+Windows only, and not portable without a rewrite. WPF doesn't exist on macOS or Linux, and the
+features that make the app work — global hotkeys, synthetic paste, tray icon, clipboard formats,
+autostart — are all built directly on Win32. The data and business-logic layer would carry over
+to a cross-platform UI framework such as [Avalonia](https://avaloniaui.net), but every
+platform-integration service and the entire UI would need reimplementing.
+
+## License
+
+[MIT](LICENSE)