Future: Analysis & Insights

The current site shows raw release data. The goal is to transform this into a tool that surfaces meaningful patterns, trends, and actionable insights about the Drupal ecosystem.


Phase 1 — Module Health Profiles

Turn each module page into something worth bookmarking.

Module detail page (/modules/{name})

  • Release timeline — visual chart of releases over time, colored by type (stable / pre-release / dev)
  • Release cadence — average days between releases, and whether it’s speeding up or slowing down
  • Stability ratio — percentage of stable vs pre-release vs dev releases
  • Time in pre-release — average duration from first pre-release to stable for each major version
  • Last activity — days since last release, flagged if unusually long compared to the module’s own history
  • Version progression — show the dev → pre-release → stable pipeline for each major/minor version

Data needed: Already available. All of this can be computed from module_releases timestamps and version components.


Phase 2 — Ecosystem Dashboard

Replace the current stats cards with a richer overview that tells a story.

Release activity chart

  • Time-series chart (weekly or monthly) of total releases across the ecosystem
  • Stacked by type (stable / pre-release / dev) to show maturity trends
  • Overlay markers for Drupal core releases to correlate ecosystem activity with core milestones

Top movers

  • Modules with the biggest increase in release frequency (month-over-month)
  • Modules that went quiet — previously active modules with no releases in 60+ days
  • Newly tracked modules — first appearance in the last 30 days

Ecosystem health metrics

  • Ratio of stable to total releases over time (is the ecosystem maturing?)
  • Number of actively maintained modules (at least 1 release in the last 90 days)
  • Average release cadence across all modules

Data needed: Already available. Aggregations over module_releases grouped by time periods.


Phase 3 — Support Lifecycle Insights

Make the Drupal/PHP version tables more useful for decision-making.

Support timeline visualization

  • Gantt-style horizontal bars showing the full support window for each Drupal and PHP version
  • Color-coded segments: active support → security only → EOL
  • “You are here” marker on the timeline

Compatibility matrix

  • Which Drupal versions are compatible with which PHP versions
  • Highlight the safe overlap windows where both Drupal and PHP are supported
  • Flag risky combinations approaching dual EOL

EOL countdown & alerts

  • Prominent countdown for the next EOL event (already partially implemented)
  • Historical view: past EOL dates and what replaced them
  • Projected upgrade windows — when should teams start planning migrations

Data needed: Mostly available from drupals and phps tables. Compatibility matrix would need an additional data source (Drupal core’s composer.json requirements per version) or manual curation.


Phase 4 — Trend Analysis

Surface patterns that aren’t obvious from browsing individual releases.

Release day patterns

  • Heatmap of releases by day-of-week and hour — when does the Drupal community ship?
  • Identify if certain modules follow predictable release schedules

Version numbering analysis

  • Distribution of major vs minor vs patch releases over time
  • Patch-heavy modules (lots of bug fixes) vs minor-heavy (feature development)
  • Modules stuck on 0.x vs those that have reached stable 1.0+

Pre-release pipeline

  • Average time from first dev release to first stable release per module
  • Modules currently in pre-release that are likely close to stable (based on historical patterns)
  • Success rate: what percentage of dev releases eventually lead to a stable release

Seasonal patterns

  • Release activity by month — are there slow periods (holidays, DrupalCon months)?
  • Year-over-year growth trends

Data needed: Already available. All derivable from module_releases date and version fields.


Phase 5 — AI Module Ecosystem Deep Dive

The /ai page currently just filters by name prefix. Make it a proper ecosystem analysis.

AI ecosystem growth

  • Chart showing the number of AI-related modules over time
  • Release velocity of AI modules vs the rest of the ecosystem
  • Which AI modules are most actively developed

Categorization

  • Group AI modules by function (search, content generation, integration, etc.) — requires tagging, either manual or derived from short_description
  • Track which AI providers/services the modules integrate with

Data needed: Partially available. Module descriptions are stored but categorization would need either keyword extraction from short_description or manual tagging via the admin panel.


Phase 6 — Notifications & Personalization

Let users get value without visiting the site.

Watch list

  • Let users select modules to follow
  • Email digest (weekly) with releases for watched modules
  • RSS feed per module or per custom watch list

Threshold alerts

  • Module went quiet (no release in X days, configurable)
  • New stable release for a watched module
  • EOL approaching for a Drupal/PHP version

Data needed: New infrastructure. Requires user accounts (or email-only subscriptions), a notifications table, and a scheduled job to check thresholds and send digests.


Implementation Notes

Charting

  • Use Chart.js or a lightweight alternative — Alpine.js is already in the stack, so keep it simple
  • Server-side aggregation, client-side rendering
  • Consider caching computed metrics in a module_stats table or similar, refreshed on each data sync

New data to collect

  • Module download/usage counts from Drupal.org (available via their API but not currently fetched)
  • Security advisory data (the SecurityAdvisory model exists but isn’t populated)
  • Drupal core compatibility requirements per version

Performance

  • Pre-compute expensive aggregations during the drupal-org:releases command run
  • Store computed metrics rather than calculating on every page load
  • Consider a daily_snapshots table for time-series data that can’t be reconstructed from release dates alone (e.g., total module count over time)

Priority Phases 1-2 deliver the most value with the least effort — they use only existing data and existing infrastructure. Phase 3 is a natural extension. Phases 4-5 are refinements. Phase 6 is a separate product surface.