diff --git a/.idea/webResources.xml b/.idea/webResources.xml
new file mode 100644
index 0000000..7356908
--- /dev/null
+++ b/.idea/webResources.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
index 361cc8a..4e2d080 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,75 @@
# TgBotLib
-Coming soon...
+TgBotLib is a library for creating Telegram Bots in PHP, based on the [Telegram Bot API](https://core.telegram.org/bots/api).
+
+The approach taken by this library is to be as close as possible to the Telegram Bot API, while providing a simple and
+easy to use interface that is easy to understand and out of your way, allowing you to use the library as a simple
+wrapper around the API.
+
+## Installation
+
+The library can be installed using ncc:
+
+```bash
+ncc install -p "nosial/libs.tgbot=latest@n64"
+```
+
+or by adding the following to your project.json file under the `build.dependencies` section:
+```json
+{
+ "name": "net.nosial.tgbotlib",
+ "version": "latest",
+ "source_type": "remote",
+ "source": "nosial/libs.tgbot=latest@n64"
+}
+```
+
+If you don't have the n64 source configured, you can add it by running the following command:
+```bash
+ncc source add --name n64 --type gitlab --host git.n64.cc
+```
+
+
+## Usage
+
+ 1. Import the library using `import('net.nosial.tgbotlib');`
+ 2. Create a new instance of the `TgBotLib\Bot` class, passing the bot token as the first argument
+ 3. Profit
+
+```php
+
+require 'ncc';
+import('net.nosial.tgbotlib');
+
+$bot = new TgBotLib\Bot('');
+
+/** @var \TgBotLib\Objects\Telegram\Update $update */
+foreach ($bot->getUpdates() as $update)
+{
+ $bot->sendMessage($update->getMessage()->getChat()->getId(), 'Hello World!');
+}
+```
+
+Each method of the `TgBotLib\Bot` class is named after the corresponding method of the Telegram Bot API, all methods
+contains an optional `$parameters` argument that can be used to pass additional parameters to the API method.
+
+But for methods that has required parameters, the library provides a more convenient way to pass them, by using
+named parameters. For example, the `sendMessage` method requires the `chat_id` and `text` parameters, but instead
+of passing them as an array, you can pass them as named parameters:
+
+```php
+$bot->sendMessage('', 'Hello World!', [
+ 'parse_mode' => 'Markdown',
+ 'disable_web_page_preview' => true,
+]);
+```
+
+## Documentation
+
+Almost everything in the library has PhpDoc documentation, so you can use your IDE to get documentation for the
+library. For example, in PhpStorm, you can press `Ctrl+Q` on a method to get the documentation for it:
+
+
# License
diff --git a/assets/documentation.png b/assets/documentation.png
new file mode 100644
index 0000000..e553c5d
Binary files /dev/null and b/assets/documentation.png differ