diff --git a/README.md b/README.md
index 859d04a..337f43b 100644
--- a/README.md
+++ b/README.md
@@ -1,123 +1,74 @@
# 📺 GridTV
-A lightweight **real-time IPTV TV guide** designed for **Tunarr** and
-any **XMLTV / M3U source**.
+> A real-time IPTV TV guide, built for [Tunarr](https://github.com/chrisbenincasa/tunarr) and any XMLTV/M3U source.
-GridTV displays your EPG in a clean horizontal timeline similar to
-traditional TV guides, accessible from any browser.
+
+
+
-```{=html}
-
-```
-`
`{=html}
-`
`{=html}
-```{=html}
-
-```
-```{=html}
-
-```
-`
`{=html}
-`
`{=html}
-`
`{=html}
-```{=html}
-
-```
+---
-------------------------------------------------------------------------
+ 
-# 🌐 Demo
+---
-A public demo instance is available:
+## 🌐 Demo
+
+A public demo instance is available here:
👉 https://guide.demo.johnnybegood.fr/
-The demo runs with **fake channels and sample XMLTV data** to showcase
-the interface.
+This demo runs with a sample XMLTV feed and fake channels to showcase the interface.
-------------------------------------------------------------------------
+---
-# ✨ Features
+## ✨ Features
-GridTV focuses on simplicity and usability.
+- 🎛️ **Timeline grid** — horizontal EPG-style view with a live "now" indicator
+- 📱 **Responsive** — optimized list view on mobile
+- ⏱️ **Live progress bar** on the currently airing program
+- 🕶️ **Past programs** automatically dimmed
+- 📋 **Hover tooltip** — title, synopsis, season/episode, schedule, duration
+- 🔗 **One-click copy** buttons for EPG & M3U URLs in the topbar
+- ⚙️ **Guided setup** on first launch — no config files to edit manually
+- 🔄 **Auto-reload** EPG every 30 minutes
+- 0️⃣ **Zero dependencies** — vanilla PHP + nginx, that's it
-## Interface
+---
-- Timeline grid similar to classic EPG interfaces\
-- Horizontal scrolling with a live **"Now" indicator**
-- **Past programs automatically dimmed**
-- **Live progress bar** on currently airing program
-- **Hover tooltip** with full program details
+## 🚀 Installation
-## Mobile
+### Requirements
-- Responsive layout
-- Automatic switch to **list view on mobile**
+- A web server running **PHP 8.0+** with **php-fpm**
+- **Nginx** (or Apache)
+- An **EPG source in XMLTV format** (e.g. Tunarr, Jellyfin, xTeVe...)
+- *(Optional)* An **M3U playlist**
-## Convenience
+---
-- One-click **copy buttons** for EPG and M3U URLs
-- **Automatic EPG refresh** every 30 minutes
-- **Guided setup on first launch**
+### 1. Clone the repo
-## Architecture
-
-- Zero dependencies
-- Pure **PHP + HTML + JS**
-- Works behind **nginx or apache**
-
-------------------------------------------------------------------------
-
-# 🧩 Compatibility
-
-GridTV parses the standard **XMLTV format** and works with any
-compatible source.
-
-Tested with:
-
-- Tunarr
-- xTeVe
-- Jellyfin Live TV
-- Any XMLTV-compliant generator
-
-------------------------------------------------------------------------
-
-# 🚀 Installation
-
-## Requirements
-
-- PHP **8.0+** with **php-fpm**
-- nginx or apache
-- An **XMLTV EPG source**
-- Optional **M3U playlist**
-
-------------------------------------------------------------------------
-
-## 1. Clone the repository
-
-``` bash
+```bash
git clone https://github.com/Johnnybegood90/GridTV.git /var/www/gridtv
cd /var/www/gridtv
```
-------------------------------------------------------------------------
+---
-## 2. Set permissions
+### 2. Set permissions
-The web server must be able to create the configuration file.
-
-``` bash
+```bash
+# The web server needs write access to create config.json during setup
chmod 775 /var/www/gridtv
chown -R www-data:www-data /var/www/gridtv
```
-------------------------------------------------------------------------
+---
-## 3. Configure nginx
+### 3. Configure Nginx
-Example configuration:
-
-``` nginx
+```nginx
server {
listen 80;
server_name guide.your-domain.com;
@@ -136,46 +87,38 @@ server {
}
```
-Reload nginx:
+> 💡 Adjust the PHP version (`php8.2-fpm`) to match the one installed on your server.
-``` bash
+```bash
nginx -t && systemctl reload nginx
```
-------------------------------------------------------------------------
+---
-# ⚙️ First launch
+### 4. First launch — Setup
-Open your browser:
+Open your browser at `http://guide.your-domain.com`.
- http://guide.your-domain.com
+GridTV detects the missing config and automatically redirects you to the setup page:
-GridTV automatically detects the missing configuration and opens the
-**setup page**.
+| Field | Description |
+|---|---|
+| **Group name** | Displayed top-left in the topbar (e.g. *MyTV*, *FamilyTV*...) |
+| **EPG URL (XMLTV)** | Your electronic program guide URL |
+| **M3U URL** *(optional)* | Your IPTV playlist, for quick copy from the topbar |
-You will need to provide:
+Once submitted, `config.json` is created on the server. **The setup page becomes inaccessible.**
- Field Description
- ------------ -----------------------------------
- Group name Displayed in the interface header
- EPG URL XMLTV program guide
- M3U URL Optional IPTV playlist
+---
-Once submitted, **config.json is created automatically**.
+### 5. Editing the config later
-The setup page then becomes inaccessible.
-
-------------------------------------------------------------------------
-
-# 🛠 Editing the configuration later
-
-``` bash
+```bash
+# Via SSH
nano /var/www/gridtv/config.json
```
-Example configuration:
-
-``` json
+```json
{
"group_name": "MyGroup TV",
"epg_url": "http://192.168.0.3:8000/api/xmltv.xml",
@@ -183,54 +126,53 @@ Example configuration:
}
```
-------------------------------------------------------------------------
+---
-# ⚙️ Advanced configuration
+## 📁 Project structure
-These constants can be adjusted in **index.php**:
-
-``` js
-const PX_PER_MIN = 5;
-const HOURS_BEFORE = 1;
-const HOURS_AFTER = 3;
-const ROW_H = 80;
+```
+gridtv/
+├── index.php # The TV guide (redirects to setup if no config found)
+├── setup.php # First-launch configuration page
+├── config.example.json # Config template (copy to config.json and fill in)
+├── .gitignore # config.json excluded from the repo
+└── README.md
```
-Meaning:
+> `config.json` is listed in `.gitignore` — your private URLs will never be pushed to GitHub.
-- PX_PER_MIN → zoom level of the timeline\
-- HOURS_BEFORE → past hours visible\
-- HOURS_AFTER → future hours visible\
-- ROW_H → height of channel rows
+---
-------------------------------------------------------------------------
+## ⚙️ Advanced configuration
-# 📁 Project structure
+The following constants can be tweaked directly in `index.php`:
- gridtv/
- │
- ├── index.php
- ├── setup.php
- ├── config.example.json
- ├── .gitignore
- └── README.md
+```js
+const PX_PER_MIN = 5; // Horizontal zoom (pixels per minute)
+const HOURS_BEFORE = 1; // Past hours visible in the grid
+const HOURS_AFTER = 3; // Future hours visible in the grid
+const ROW_H = 80; // Channel row height (px)
+```
-`config.json` is ignored by git to prevent leaking private URLs.
+---
-------------------------------------------------------------------------
+## 🧩 EPG Compatibility
-# 🤝 Contributing
+GridTV parses the standard **XMLTV format**. Tested with:
-Pull requests are welcome.
+- ✅ [Tunarr](https://github.com/chrisbenincasa/tunarr)
+- ✅ [xTeVe](https://github.com/xteve-project/xTeVe)
+- ✅ [Jellyfin](https://jellyfin.org/) (via LiveTV plugin)
+- ✅ Any XMLTV-compliant file
-Feel free to open issues for:
+---
-- bug reports
-- feature requests
-- improvements
+## 🤝 Contributing
-------------------------------------------------------------------------
+PRs are welcome! Got an idea, a fix, or a feature request — open an issue or send a PR directly.
-# 📄 License
+---
-GNU Affero General Public License v3 (AGPLv3)
+## 📄 License
+
+GNU Affero (AGPLv3)