Kinetiqo is released under the permissive MIT License. Review the codebase tree and repository structure below.
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 suiteTo 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.