diff --git a/.gitignore b/.gitignore
index ea8c4bf..84b8c03 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,5 @@
/target
+*.swp
+*.swo
+*~
+.DS_Store
diff --git a/Cargo.toml b/Cargo.toml
index 97f1e24..40686a1 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -2,6 +2,9 @@
name = "KeSp_controller"
version = "1.0.0"
edition = "2021"
+license = "GPL-3.0"
+description = "Cross-platform configurator for the KeSp split ergonomic keyboard"
+repository = "https://github.com/mornepousse/KeSp_controller"
[dependencies]
slint = "1"
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..c2d6fb5
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,22 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ For the complete license text, see
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..69a1456
--- /dev/null
+++ b/README.md
@@ -0,0 +1,63 @@
+# KeSp Controller
+
+Cross-platform configurator for the KeSp split ergonomic keyboard.
+
+Built with [Rust](https://www.rust-lang.org/) and [Slint](https://slint.dev/) UI framework.
+
+
+
+## Features
+
+- **Keymap editor** with visual keyboard layout (loaded from firmware)
+- **Key selector** with categorized grid, Mod-Tap/Layer-Tap builders, hex input
+- **Heatmap overlay** showing key press frequency (blue to red gradient)
+- **Layer management** with switch, rename, and active indicator
+- **Tap Dance** editing (4 actions per slot)
+- **Combos** creation with visual key picker
+- **Key Overrides** with modifier checkboxes (Ctrl/Shift/Alt)
+- **Leader Keys** with sequence builder
+- **Macros** with visual step builder (key presses + delays)
+- **Statistics** (hand balance, finger load, row usage, top keys, bigrams)
+- **OTA firmware update** via USB (no programming cable needed)
+- **ESP32 flasher** (esptool-like, via programming port)
+- **Settings** with keyboard layout selector (QWERTY, AZERTY, DVORAK, etc.)
+- **Dracula theme** throughout
+
+## Download
+
+Pre-built binaries for Linux, Windows, and macOS are available on the [Releases](https://github.com/mornepousse/KeSp_controller/releases) page.
+
+## Build from source
+
+### Requirements
+
+- Rust toolchain (1.75+)
+- Linux: `libudev-dev libfontconfig1-dev`
+
+### Build
+
+```bash
+cargo build --release
+```
+
+Binary will be at `target/release/KeSp_controller`.
+
+## Usage
+
+1. Plug in your KeSp keyboard via USB
+2. Launch KeSp Controller
+3. The app auto-connects to the keyboard
+4. Use the tabs to configure: Keymap, Advanced, Macros, Stats, Settings, Flash
+
+## Keyboard compatibility
+
+Designed for the KeSp/KaSe split keyboard with:
+- USB CDC serial (VID: 0xCAFE, PID: 0x4001)
+- Binary protocol v2
+- ESP32-S3 MCU
+
+## License
+
+GPL-3.0 - See [LICENSE](LICENSE)
+
+Made with [Slint](https://slint.dev/)