diff --git a/README.md b/README.md
new file mode 100644
index 0000000..f86d972
--- /dev/null
+++ b/README.md
@@ -0,0 +1,36 @@
+
notfiles
+NixOS dotfiles
+
+My declarative NixOS configuration.
+
+## Structure
+
+```
+notfiles/
+├── flake.nix # Flake inputs and host definitions
+├── hosts/ # Host-specific config (hardware, hostname, etc.)
+│ ...
+├── modules/ # NixOS system-level modules (shared across hosts)
+│ ...
+└── home/ # User-level entry point and user-specific config
+ ├── alex/
+ │ ...
+ └── modules/ # Reusable Home Manager modules
+ ...
+```
+
+## Flake inputs
+
+| Input | Purpose |
+| :---- | :------ |
+| [`nixpkgs`][nixpkgs] | NixOS 25.11 |
+| [`home-manager`][home-manager] | User environment management |
+| [`plasma-manager`][plasma-manager] | Declarative KDE Plasma configuration |
+| [`nix4vscode`][nix4vscode] | VSCode/VSCodium extension management |
+| [`globalprotect-openconnect`][globalprotect-openconnect] | VPN client |
+
+[nixpkgs]: https://github.com/NixOS/nixpkgs
+[home-manager]: https://github.com/nix-community/home-manager
+[plasma-manager]: https://github.com/nix-community/plasma-manager
+[nix4vscode]: https://github.com/nix-community/nix4vscode
+[globalprotect-openconnect]: https://github.com/yuezk/GlobalProtect-openconnect
\ No newline at end of file