JARVIS2 is a real-time dashboard framework designed for Raspberry Pi, built with Flask (Python) and Mithril (JavaScript). It features live-updating widgets via server-sent events (SSE) and a plugin-based job system for data fetching. The backend schedules periodic jobs (e.g., weather, public transport, email, RSS) that push data to connected browsers. The frontend renders widgets using Mithril components and updates them reactively as events arrive. The architecture is a monolith: a single Flask application with background scheduling via APScheduler. Key entry points are the Flask routes for dashboards, individual widgets, and the SSE event stream. External dependencies include various APIs (Yr, Entur, Avinor, Google APIs, Sonos, etc.) and libraries (Flask, APScheduler, requests, BeautifulSoup, soco). The codebase is well-structured, with clear separation between job implementations, static assets, and templates. It includes a comprehensive test suite and CI pipeline. The project is actively maintained, targeting Python 3.14 and using modern tooling (uv, ruff). However, it retains some deprecated dependencies (oauth2client) and Python 2 compatibility shims, indicating moderate technical drift.
ioBroker.vis is a visualization adapter for the ioBroker smart home platform, providing a web-based dashboard editor and runtime. It renders interactive views composed of widgets that bind to ioBroker data points (states/objects) via a real-time socket.io connection. The architecture is monolithic: a single-page application served by an ioBroker adapter, with all editor and runtime logic bundled in global JavaScript files using jQuery, CanJS, jQuery UI, and a homebrewed binding DSL. The widget system supports inline transformations (math, date formatting, JSON extraction) and extensibility via external widget sets. Development of this version has been officially stopped in favor of the rewritten vis-2 adapter, and the repository only receives critical fixes. The codebase exhibits significant technical drift due to outdated dependencies (jQuery 1.x, deprecated AppCache, IE8 polyfills), a monolithic design with tight coupling, and a license inconsistency (CC BY-NC in source files versus MIT in package.json). It is functional but should not be used for new projects.