A web application that tracks and visualizes Node.js download statistics by version and operating system. Built with Platformatic Service, this app fetches real-time data from Google Cloud Storage and presents it through interactive charts with CSV export functionality.
Powered by Watt, the Node.js application server by Platformatic.
- Real-time Data: Fetches Node.js download statistics from Google Cloud Storage
- Interactive Charts: Visualizes downloads by version and operating system using Chart.js
- CSV Export: Download monthly statistics in CSV format
- Smart Caching: Two-layer caching system (in-memory + disk) for optimal performance
- REST API: OpenAPI documented endpoints for programmatic access
- Responsive Design: Clean, mobile-friendly interface
- Node.js ^22.16.0
- macOS, Linux, or Windows (WSL recommended)
npm installStart the application:
npm startThe application will be available at:
- Dashboard: http://localhost:3042/
- API Documentation: http://localhost:3042/documentation/
- Metrics Endpoint: http://localhost:3042/metrics
Returns Node.js download statistics processed by major version (v4+) and operating system.
Response Format:
{
"byVersion": {
"v18": { "2024-01": 12345678, "2024-02": 23456789 }
},
"byOs": {
"linux": { "2024-01": 45678901, "2024-02": 56789012 }
}
}- Fetches XML bucket listing from Google Cloud Storage
- Downloads daily JSON files containing download statistics
- Processes data by major Node.js version and operating system
- Caches results using two-layer system (5s in-memory, 24h disk cache)
- Serves processed data via REST API and web dashboard
- Backend: Platformatic Service with custom routes and plugins
- Frontend: Single-page application with Chart.js visualizations
- Caching: cacache for disk storage, async-cache-dedupe for memory
- Data Processing: Filters versions v4+, excludes current incomplete month
Run tests:
npm test├── routes/
│ └── metrics.js # Main API endpoint with data processing
├── plugins/
│ └── static.js # Static file serving
├── public/
│ ├── index.html # Frontend dashboard
│ ├── count.js # Chart rendering logic
│ └── mvp.css # Styling
└── test/ # Test suite
Statistics are sourced from Google Cloud Storage bucket: access-logs-summaries-nodejs
The application processes daily download summaries and aggregates them by:
- Major Node.js versions (v4, v6, v8, v10, v12, v14, v16, v18, v20, v22+)
- Operating systems (linux, win32, darwin, aix, sunos)
See LICENSE file for details.