Open Source Architecture & Codebase

Kinetiqo is released under the permissive MIT License. Review the codebase tree and repository structure below.

Project Directory Structure

repository tree
kinetiqo/
├── build/                   # Dockerfile & container entrypoint
├── development/             # Helper scripts & environment tools
│   ├── download-fonts.py    # Refresh self-hosted Google Fonts from CDN
│   ├── download-vendor-libraries.py # Offline vendor assets manager
│   └── vendor-libraries.yaml # Parameter definitions for vendor assets
├── docs/                    # Technical documentation & Database guide
├── src/kinetiqo/
│   ├── cli.py               # Click CLI entry point
│   ├── config.py            # Environment settings & validation
│   ├── sync.py              # Strava sync logic & SSE engine
│   ├── db/                  # Repository interface & 3 raw SQL backends
│   └── web/                 # Flask async web app & Jinja2 templates
│       ├── app.py           # Routes and API endpoints
│       ├── fonts.py         # Google Fonts catalog definitions
│       ├── static/
│       │   └── vendor/      # Offline 3rd party JS/CSS (HTMX, Leaflet, etc.)
│       └── templates/       # Jinja2 HTML templates
└── tests/                   # Fast mocked unit test suite

Development Helper Scripts

To guarantee Kinetiqo can operate fully offline with zero external CDNs, all third-party frontend dependencies and fonts are self-hosted. The development/ folder includes automated Python scripts to manage these assets locally:

  • download-vendor-libraries.py: A unified manager that reads vendor-libraries.yaml to download and update all required JavaScript and CSS libraries (HTMX, Leaflet, DataTables, Chart.js) directly into src/kinetiqo/web/static/vendor/. It also compiles the Tailwind CSS.
  • download-fonts.py: Reads the font catalog defined in fonts.py to download the latest WOFF2 font files from Google Fonts directly into the static assets folder.