๐ M365 Roadmap Tracker¶
Status: โ Completed โ Live at aguidetocloud.com/m365-roadmap/ Priority: ๐ฅ Urgent (Tier 1 โ build first) Category: ๐ฌ Content / ๐ผ Official Created: 2026-04-10 Completed: 2026-04-10 Part of: Free Tools Section
The Problem¶
Microsoft's M365 Roadmap has 1,891 items and is painful to navigate. IT admins miss important changes because:
- No good filtering by product (Copilot vs Teams vs Intune)
- No "what changed this week" view
- No plain-English summaries
- The official page is slow and cluttered
The Solution¶
A clean, automated dashboard at aguidetocloud.com/m365-roadmap/ that:
- ๐ก Pulls from the M365 Roadmap JSON API daily (no auth required)
- ๐ Detects changes โ new items, status changes, GA date moves
- ๐ Groups 36 API products into 11 clean UI categories
- ๐ท๏ธ Shows status: ๐ข Rolling out ยท ๐ก In development ยท ๐ต Launched ยท ๐ด Cancelled
- ๐ค AI-generated plain-English summaries (GPT-4o mini, cached)
- ๐ Instant search + product/status filters
- ๐ Latest / This Week / This Month tabs
- โฐ/โฆ List view + Card view toggle
- ๐ GA Timeline bar chart showing upcoming months
Tech Stack (Final)¶
| Component | Tech |
|---|---|
| Data source | M365 Roadmap API (JSON, free, no auth) |
| AI summaries | GPT-4o mini via Azure OpenAI (OIDC auth) |
| Automation | GitHub Actions (daily cron at 5:00 UTC) |
| Auth | Azure OIDC (no stored API keys) |
| Pipeline | Python 3.12 (requests, openai, python-dateutil) |
| Frontend | Hugo page + vanilla JS renderer (19KB) |
| Hosting | Azure Static Web Apps (existing site) |
| Cost | ~$0.10/month (cached summaries โ only new/changed items get AI-processed) |
Architecture¶
M365 API โ fetch_roadmap.py (+ change detection)
โ summarise.py (AI summaries, cached by content hash)
โ generate_data.py โ slim JSON (1.1MB, no descriptions)
โ GitHub Actions โ copies to aguidetocloud-revamp/static/data/roadmap/
โ roadmap.js renders at /m365-roadmap/
Repos¶
| Repo | Purpose |
|---|---|
| susanthgit/m365-roadmap | Pipeline (fetch, summarise, generate, GitHub Actions) |
| susanthgit/aguidetocloud-revamp | Frontend (Hugo layout, JS, CSS) |
Key Design Decisions¶
- "Amber Command" visual identity โ warm gold (#E5A00D) accent on charcoal, distinct from AI News purple/cyan
- List-first layout โ IT admins want data density, not card fluff. Cards available via toggle.
- Change detection โ stores previous_state.json between runs, diffs on status/date/description
- Summary caching โ summaries keyed by
item_id:md5(description), never re-summarizes unchanged items - Slim JSON โ frontend gets 1.1MB (17 fields/item) vs full 2.9MB (28 fields) โ descriptions stripped
- WebApplication schema.org โ structured data for SEO as a free web tool
- ARIA accessibility โ tabs, toggles, search inputs all have proper roles/labels
Optimization Results¶
| Metric | Before | After |
|---|---|---|
| JSON payload | 2.9MB | 1.1MB (63% smaller) |
| Search | Immediate DOM scan | 200ms debounce |
| sessionStorage | No size guard | Skips >2MB payloads |
| Caching headers | 30s default | 30min for /data/roadmap/* |
What's Left¶
- [ ] OG social image (roadmap-og.webp)
- [ ] Add to site nav (Free Tools dropdown โ when more tools exist)
- [ ] Blog post: "How I built an M365 Roadmap Tracker"
Future Enhancements¶
๐ฅ Tier 1 โ High Impact, Build Next¶
1. Product-Specific SEO Landing Pages¶
Why: This is the single highest-SEO-value enhancement. "Copilot roadmap 2026" gets thousands of monthly searches.
Create category pages at /m365-roadmap/copilot/, /m365-roadmap/teams/, etc. โ same pattern as AI News category pages (/ai-news/microsoft/). Each page:
- Filtered view of that product's roadmap items
- Product-specific meta description + schema.org
- Unique content intro paragraph per product
- 11 pages total matching our 11 UI categories
SEO keywords unlocked:
| Page | Target Keywords |
|---|---|
/m365-roadmap/copilot/ |
"copilot roadmap 2026", "M365 copilot new features", "copilot rolling out" |
/m365-roadmap/teams/ |
"teams new features", "microsoft teams roadmap", "teams updates" |
/m365-roadmap/outlook/ |
"outlook new features 2026", "new outlook roadmap" |
/m365-roadmap/sharepoint/ |
"sharepoint roadmap", "sharepoint new features" |
/m365-roadmap/intune/ |
"intune roadmap 2026", "intune new features" |
/m365-roadmap/purview/ |
"purview roadmap", "microsoft purview updates" |
Effort: Low โ reuse the existing JS with a category filter param (same as AI News category pages).
2. RSS Feed of Changes¶
Why: IT admins live in RSS readers and Power Automate. An RSS feed of roadmap changes means they subscribe once and never miss an update. Massive retention play.
Generate feed.xml alongside the JSON output:
- Each item = a roadmap change (new item, status change, date move)
- Title: [Rolling Out] Teams: AI meeting summaries
- Description: AI summary + status + GA date
- Link: official roadmap URL
Effort: Low โ AI News already has this exact pattern (generate_page.py generates feed.xml). Copy and adapt.
3. CSV/Excel Export Button¶
Why: IT admins need to put roadmap data into change management reports, present to leadership, or track in SharePoint lists. A "Download CSV" button is immediately useful.
Add a client-side JS button that:
- Exports currently filtered/visible items as CSV
- Columns: Title, Status, Product, GA Date, Platform, AI Summary, Roadmap URL
- Filename: m365-roadmap-export-2026-04-10.csv
Effort: Low โ pure JS, no backend needed. ~30 lines of code.
4. Weekly Auto-Generated Blog Post Draft¶
Why: Content machine. Every week, auto-generate a "M365 Changes This Week" blog post from the weekly diff data. Sutheesh reviews and publishes. Each post targets "microsoft 365 changes week of [date]" keywords.
GitHub Actions:
1. After generate_data.py, run generate_blog_draft.py
2. Reads weekly changes (new items, status changes)
3. Generates Hugo markdown: intro paragraph, "New This Week" section, "Status Changes" section, "Coming Soon" section
4. Auto-commits to content/blog/m365-weekly-[date].md as draft
5. Sutheesh reviews + publishes
Effort: Medium โ need a new script + GPT prompt for the intro paragraph.
๐ฅ Tier 2 โ Strong Value, Build After Tier 1¶
5. Delay Detection & "Stuck Items" Alert¶
Data insight: There are currently 17 items with GA dates in 2024 that are still marked "In development" or "Rolling out" โ they've been delayed for over a year. Users would love to see these flagged.
Track:
- Items where GA date has moved (compare ga_date vs previous_ga_date across runs)
- Items where GA date is in the past but status isn't "Launched"
- Build a "โ ๏ธ Delayed" badge and a "Stuck Items" section
Why it matters: No other tool surfaces this. IT admins making decisions based on GA dates need to know when Microsoft delays things.
6. Historical Change Log Per Item¶
Why: "When did this item first appear? How many times has the date moved? How long was it in development?"
Store a changelog.json that accumulates diffs across runs:
{
"560076": [
{"date": "2026-04-10", "event": "new", "status": "In development", "ga_date": "May CY2026"},
{"date": "2026-04-15", "event": "status_changed", "from": "In development", "to": "Rolling out"},
{"date": "2026-05-01", "event": "status_changed", "from": "Rolling out", "to": "Launched"}
]
}
Frontend: click an item โ see its history timeline. Shows velocity of delivery.
Effort: Medium โ need to accumulate data over time (can't backfill, starts from now).
7. Copilot Declarative Agent โ "Ask the Roadmap"¶
Why: Sutheesh is building agents. A Copilot agent that answers "What's coming for Teams this month?" from the roadmap data would be a perfect demo + content piece.
- Use the roadmap JSON as a knowledge source (File Upload or OneDrive)
- System instructions: "You are a Microsoft 365 roadmap expert..."
- Conversation starters: "What Copilot features are rolling out?", "When is [feature] expected?"
- Host in Copilot Chat or embed on the roadmap page
Effort: Low (Sutheesh already built 12 agents in Agent Builder).
8. Message Center Integration¶
Why: The holy grail. Microsoft's Message Center has admin-specific action items ("Enable this feature by...", "Opt out before..."). Combining roadmap (what's coming) + MC (what you need to do) creates a tool that doesn't exist anywhere.
Research Complete (2026-04-10):
Graph API endpoint: GET /admin/serviceAnnouncement/messages
- Permission: ServiceMessage.Read.All (delegated or application)
- Returns: serviceUpdateMessage objects (title, body, severity, category, services, action required, dates)
- Supports OData filtering: $filter=services/any(s:s eq 'Microsoft 365')&$top=100
- Available in all national clouds (Global, GCC, GCC-H, DoD)
- Rate limited but reasonable for daily pulls
Architecture plan:
Graph API (ServiceMessage.Read.All)
โ
โผ
fetch_mc.py โ mc_items.json
โ
โผ
correlate.py โ match MC posts to roadmap items by title/keywords
โ
โผ
Frontend: "๐ฌ Admin Action" badge on roadmap items that have MC posts
Auth approach: The existing OIDC service principal (ainews app) needs ServiceMessage.Read.All app permission added. Requires admin consent in the tenant.
Key challenge: MC is tenant-specific data โ can only show data for YOUR tenant. Public-facing tool can't show other people's MC. Options: 1. Lab-only feature (works for Sutheesh's demos/videos) 2. "Connect your tenant" OAuth flow (complex but powerful) 3. Just show that MC post EXISTS (link to admin.microsoft.com) without showing content
Status: Researched. Build when Tier 1+2 enhancements are stable.
Effort: High โ auth, Graph API, privacy considerations. But the differentiation is massive.
๐ฅ Tier 3 โ Dream Big¶
9. Email Newsletter / Teams Webhook¶
Status: โ RSS-powered (no custom build needed)
The RSS feed is now live at aguidetocloud.com/data/roadmap/feed.xml. IT admins can:
- Power Automate: "When a feed item is published" trigger โ post to Teams channel
- Teams Incoming Webhook: Use RSS-to-Webhook connector or Power Automate
- Email: Blogtrottr or similar RSS-to-email service (free)
- Feedly/Inoreader: Subscribe directly
No custom newsletter infrastructure needed โ RSS unlocks all these for free.
10. Trend Analytics Dashboard¶
Why: "Copilot items are 34% of the entire roadmap" is a story. Build a /m365-roadmap/trends/ page showing:
- Product share over time (pie chart / stacked bar)
- Delivery velocity: how fast items move from "In dev" to "Launched"
- Platform distribution: web-first vs mobile-first trends
- Status flow: Sankey diagram (In Dev โ Rolling Out โ Launched)
Effort: High โ need months of historical data + charting library (Chart.js).
11. Community Features¶
- "Affects my org" button โ anonymous counter per item
- "Subscribe to item" โ notify when status changes (needs backend)
- Comments โ powered by GitHub Discussions API
12. Multi-Roadmap Support¶
Expand beyond M365 to:
- Azure Roadmap (https://azure.microsoft.com/en-us/updates/)
- Windows Roadmap
- Power Platform Roadmap
Same architecture, different data sources. Build the foundation now to support multiple roadmaps later.
Enhancement Priority Matrix¶
| # | Enhancement | SEO Impact | User Value | Effort | Status |
|---|---|---|---|---|---|
| 1 | Product SEO pages | ๐ฅ๐ฅ๐ฅ๐ฅ | โญโญโญ | Low | โ DONE |
| 2 | RSS feed | ๐ฅ | โญโญโญโญ | Low | โ DONE |
| 3 | CSV export | โ | โญโญโญโญ | Low | โ DONE |
| 4 | Weekly blog drafts | ๐ฅ๐ฅ๐ฅ | โญโญโญ | Medium | ๐ Next |
| 5 | Delay detection | ๐ฅ๐ฅ | โญโญโญโญ | Low | โ DONE |
| 6 | Change log per item | ๐ฅ๐ฅ | โญโญโญ | Medium | โ DONE (pipeline) |
| 7 | Copilot agent | ๐ฅ | โญโญโญ | Low | ๐ ฟ๏ธ Parked |
| 8 | Message Center | ๐ฅ๐ฅ | โญโญโญโญโญ | High | ๐ Researched |
| 9 | Newsletter/webhook | ๐ฅ๐ฅ | โญโญโญ | Medium | โ DONE (via RSS) |
| 10 | Trend analytics | ๐ฅ๐ฅ๐ฅ | โญโญ | High | ๐ ฟ๏ธ Parked |
| 11 | Community features | ๐ฅ | โญโญ | High | ๐ ฟ๏ธ Parked |
| 12 | Multi-roadmap | ๐ฅ๐ฅ๐ฅ | โญโญโญ | High | ๐ ฟ๏ธ Parked |