diff --git a/README.md b/README.md
index b60c507..b03b563 100644
--- a/README.md
+++ b/README.md
@@ -159,6 +159,30 @@ Open **Settings → Test controller**: it shows live what Windows delivers from
Confirm that the focus monitor supports the feature and that HDR is enabled in Windows. For VRR, also enable G-SYNC or FreeSync in the GPU control panel when applicable.
+## Roadmap
+
+
+
+Plans, not promises: the order can change with feedback. Vote with a 👍 on the issue, or [suggest something](https://github.com/lippdev/consolemode/issues/new?template=feedback.yml).
+
+**Next**
+- 1.5.0 stable, wrapping up the betas
+- FPS overlay, toggled from the session menu ([#66](https://github.com/lippdev/consolemode/issues/66))
+- Record the last 30 seconds from the session menu
+- Save and restore desktop icon positions ([#30](https://github.com/lippdev/consolemode/issues/30))
+
+**Later**
+- Per-game profiles: resolution, HDR and audio per game ([#69](https://github.com/lippdev/consolemode/issues/69))
+- Controller battery in the session menu ([#70](https://github.com/lippdev/consolemode/issues/70))
+- Publish to winget ([#13](https://github.com/lippdev/consolemode/issues/13))
+- More interface languages ([#14](https://github.com/lippdev/consolemode/issues/14))
+
+**Exploring**
+- Windows Game Bar widget ([#11](https://github.com/lippdev/consolemode/issues/11))
+- Voice and assistant triggers: Alexa, MCP ([#12](https://github.com/lippdev/consolemode/issues/12))
+- WakeOn integration: wake the PC straight into console mode ([#71](https://github.com/lippdev/consolemode/issues/71))
+- Phone remote over the local control API ([#72](https://github.com/lippdev/consolemode/issues/72))
+
## Feedback
Found a bug or have an idea? Feedback is what decides the next improvements, so every report counts.
diff --git a/README.pt-BR.md b/README.pt-BR.md
index deeb5b7..9829a97 100644
--- a/README.pt-BR.md
+++ b/README.pt-BR.md
@@ -119,6 +119,30 @@ Limita a taxa de quadros global durante o modo console (útil em TV 60 Hz). Exig
**O controle aparece mas não faz nada (DualSense / DualShock):** abra **Ajustes → Testar controle**; ele mostra ao vivo o que o Windows entrega de cada controle. Se a leitura fica vazia enquanto você aperta botões, quase sempre é o Steam capturando o controle (Steam aberto com suporte a PlayStation no Steam Input vira teclado/mouse no desktop). Feche o Steam, ou desligue o suporte a PlayStation no Steam Input, e teste de novo. Se continuar vazio, use **Copiar diagnóstico** e cole no formulário de feedback.
+## Roadmap
+
+
+
+São planos, não promessas: a ordem pode mudar conforme o feedback. Vote com 👍 na issue ou [sugira algo](https://github.com/lippdev/consolemode/issues/new?template=feedback.yml).
+
+**Próximos**
+- 1.5.0 estável, fechando as betas
+- Overlay de FPS, ligado pelo menu da sessão ([#66](https://github.com/lippdev/consolemode/issues/66))
+- Gravar os últimos 30 segundos pelo menu da sessão
+- Salvar e restaurar a posição dos ícones da área de trabalho ([#30](https://github.com/lippdev/consolemode/issues/30))
+
+**Depois**
+- Perfis por jogo: resolução, HDR e áudio para cada jogo ([#69](https://github.com/lippdev/consolemode/issues/69))
+- Bateria do controle no menu da sessão ([#70](https://github.com/lippdev/consolemode/issues/70))
+- Publicar no winget ([#13](https://github.com/lippdev/consolemode/issues/13))
+- Mais idiomas na interface ([#14](https://github.com/lippdev/consolemode/issues/14))
+
+**Explorando**
+- Widget na Xbox Game Bar ([#11](https://github.com/lippdev/consolemode/issues/11))
+- Comandos de voz e assistentes: Alexa, MCP ([#12](https://github.com/lippdev/consolemode/issues/12))
+- Integração com o WakeOn: ligar o PC já no modo console ([#71](https://github.com/lippdev/consolemode/issues/71))
+- Controle pelo celular usando a API de controle local ([#72](https://github.com/lippdev/consolemode/issues/72))
+
## Feedback
Encontrou um bug ou tem uma ideia? É o feedback que define as próximas melhorias, então todo relato conta.
diff --git a/assets/roadmap.gif b/assets/roadmap.gif
new file mode 100644
index 0000000..608bd44
Binary files /dev/null and b/assets/roadmap.gif differ
diff --git a/docs/explainer/README.md b/docs/explainer/README.md
index 143a9d3..592c242 100644
--- a/docs/explainer/README.md
+++ b/docs/explainer/README.md
@@ -19,3 +19,13 @@ npm run whats-new
```
Grava `assets/whats-new.gif` (renderiza um MP4 e converte com o ffmpeg, que precisa estar no PATH, para ficar em ~3–4 MB).
+
+## Roadmap (`Roadmap`)
+
+Quadro com as colunas Next, Later e Exploring. Os itens ficam em `src/Roadmap.tsx` (`COLUMNS`) e devem acompanhar a seção "Roadmap" do README.
+
+```console
+npm run roadmap
+```
+
+Grava `assets/roadmap.gif`.
diff --git a/docs/explainer/package.json b/docs/explainer/package.json
index c2de51f..c36d56b 100644
--- a/docs/explainer/package.json
+++ b/docs/explainer/package.json
@@ -26,6 +26,7 @@
"mp4": "remotion render src/index.ts ConsoleModeExplainer out/explainer.mp4",
"upgrade": "remotion upgrade",
"lint": "eslint src && tsc",
- "whats-new": "remotion render src/index.ts WhatsNew out/whats-new.mp4 && ffmpeg -y -loglevel error -i out/whats-new.mp4 -vf \"fps=15,scale=960:-1:flags=lanczos,split[a][b];[a]palettegen=max_colors=128:stats_mode=diff[p];[b][p]paletteuse=dither=bayer:bayer_scale=5:diff_mode=rectangle\" ../../assets/whats-new.gif"
+ "whats-new": "remotion render src/index.ts WhatsNew out/whats-new.mp4 && ffmpeg -y -loglevel error -i out/whats-new.mp4 -vf \"fps=15,scale=960:-1:flags=lanczos,split[a][b];[a]palettegen=max_colors=128:stats_mode=diff[p];[b][p]paletteuse=dither=bayer:bayer_scale=5:diff_mode=rectangle\" ../../assets/whats-new.gif",
+ "roadmap": "remotion render src/index.ts Roadmap out/roadmap.mp4 && ffmpeg -y -loglevel error -i out/roadmap.mp4 -vf \"fps=15,scale=960:-1:flags=lanczos,split[a][b];[a]palettegen=max_colors=128:stats_mode=diff[p];[b][p]paletteuse=dither=bayer:bayer_scale=5:diff_mode=rectangle\" ../../assets/roadmap.gif"
}
}
diff --git a/docs/explainer/src/Roadmap.tsx b/docs/explainer/src/Roadmap.tsx
new file mode 100644
index 0000000..8ac37c0
--- /dev/null
+++ b/docs/explainer/src/Roadmap.tsx
@@ -0,0 +1,175 @@
+import React from "react";
+import {
+ AbsoluteFill,
+ Easing,
+ interpolate,
+ spring,
+ useCurrentFrame,
+ useVideoConfig,
+} from "remotion";
+import { theme } from "./theme";
+
+// Roadmap board for the README: three columns (Next, Later, Exploring) whose cards pop in,
+// then each column is spotlighted in turn. Items mirror the "Roadmap" section of README.md.
+
+const font = "Segoe UI, system-ui, sans-serif";
+const ease = {
+ extrapolateLeft: "clamp" as const,
+ extrapolateRight: "clamp" as const,
+ easing: Easing.bezier(0.22, 1, 0.36, 1),
+};
+const linear = { extrapolateLeft: "clamp" as const, extrapolateRight: "clamp" as const };
+
+type Item = { icon: string; title: string; note: string; issue?: number };
+type Column = { name: string; color: string; items: Item[] };
+
+const COLUMNS: Column[] = [
+ {
+ name: "Next",
+ color: theme.accent,
+ items: [
+ { icon: "✅", title: "1.5.0 stable", note: "Wrap up the betas" },
+ { icon: "📈", title: "FPS overlay", note: "Toggle it from Select + Y", issue: 66 },
+ { icon: "⏺", title: "Record last 30 s", note: "From the session menu" },
+ { icon: "🗂", title: "Desktop icons", note: "Saved and put back", issue: 30 },
+ ],
+ },
+ {
+ name: "Later",
+ color: "#66c0f4",
+ items: [
+ { icon: "🎯", title: "Per-game profiles", note: "Resolution, HDR, audio per game", issue: 69 },
+ { icon: "🔋", title: "Controller battery", note: "Shown in the session menu", issue: 70 },
+ { icon: "📦", title: "winget", note: "winget install ConsoleMode", issue: 13 },
+ { icon: "🌍", title: "More languages", note: "Community translations", issue: 14 },
+ ],
+ },
+ {
+ name: "Exploring",
+ color: "#c792ea",
+ items: [
+ { icon: "🧩", title: "Game Bar widget", note: "Start and restore from Win + G", issue: 11 },
+ { icon: "🗣", title: "Voice triggers", note: "Alexa, assistants, MCP", issue: 12 },
+ { icon: "⚡", title: "WakeOn integration", note: "Wake the PC straight into console mode", issue: 71 },
+ { icon: "📱", title: "Phone remote", note: "Over the local control API", issue: 72 },
+ ],
+ },
+];
+
+const INTRO = 50;
+const BOARD = 60; // cards finish popping in by INTRO + BOARD
+const SPOT = 75; // frames per column spotlight
+const OUTRO = 70;
+export const ROADMAP_DURATION = INTRO + BOARD + SPOT * COLUMNS.length + OUTRO;
+
+const Card: React.FC<{ item: Item; appear: number; lit: number; color: string }> = ({ item, appear, lit, color }) => (
+