modular life dashboard thingy (name is yet to be decided)

This project is basically a web shell that combines a bunch of dashboards, each with its own frontend and backend, into an SPA.

Each dashboard (or webpage, in general) is considered a module, and comes with:

  • backend: inherits from a base module class, uses a Flask blueprint for routing
  • frontend: delivered as JS/HTML/CSS fragments, embedded via innerHTML, with access to shared CSS classes and JS helpers for a consistent look and feel

The shared base provides a navbar to switch between modules, centralized notifications, shared stylesheets, and the module-loading functionality in the backend.

Goal

My goal was to build a dashboard tracking how I'm doing in life (social activity, workouts, studying, hobbies, etc). That quickly turned into one dashboard per topic, and since I didn't want to spin up 10 containers and navigate 20 separate pages, I started this project to combine them all into one.

Quality

I'm not a web dev, and the frontend is 90% vibe-coded. Not like single-prompt vibe-coded, but built in small iterations with care for detail. I'm still manually refactoring, doing the backend, and making architecture and design decisions, etc. (that's what I tell myself when I cry myself to sleep), and, most importantly: learning a bunch.

Endpoints

Path Content
GET /modules List of loaded modules with metadata (to populate sidebar)
GET /modules/<module-name>/page Embeddable html content of module
GET /modules/<module-name>/* Custom endpoints registered by module

Auth

For now there are no plans to include auth in the application.
It's heavily recommended to use an external service like Authelia to manage access.

Included modules

Module Info
TestModule Minimal module implementation to be used as an template.
SocialWatch Visualize your social life using CalDAV + CardDAV contacts and events.
S
Description
centralized dashboard with module system
Readme
244 KiB
Languages
JavaScript 46.6%
Python 27.7%
CSS 18.7%
HTML 7%