This repository is a community metrics dashboard that tracks usage & growth statistics for LanceDB, a multimodal lakehouse and Lance, the lakehouse format that powers LanceDB.
The backend ingests daily metrics (SDK downloads and GitHub stars), stores them in LanceDB Enterprise tables (metrics, stats, history), and powers a read-only dashboard frontend built with Next.js + React + Tailwind.
This project is remote-only for storage: always use the same LanceDB Enterprise cluster and do not add local LanceDB support.
The operational goal is to keep data fresh with incremental daily updates by default, while allowing controlled rolling backfills with --lookback-days.
For Python, use uv to manage dependencies and run scripts.
- Install/sync dependencies with
uv sync. - Run scripts with
uv run .... - Do not switch to
pip/poetryunless explicitly requested.
For frontend, use npm.
- Install packages with
npm installinsrc/dashboard. - Use
npm run dev/npm run buildfor frontend workflows.
Use Ruff for Python formatting and linting.
- Format Python code with
uv run ruff format .. - Lint/fix Python code with
uv run ruff check . --fix. - Keep imports tidy and avoid style-only churn outside touched files.
If Ruff is missing from the environment, add it to dev dependencies before introducing alternative formatters.
When making pipeline changes, preserve these behaviors:
- Incremental-by-default updates.
statskey semantics remain(metric_id, period_end).- Keep
--lookback-dayssupport on refresh/recompute jobs. - Preserve the provenance/source-window model:
csv_seed+discrete_snapshotfor legacy seeded snapshots,recomputed/api_daily+1dfor daily downloads, andcumulative_snapshotfor stars. - Keep
historyfocused on refresh-run logging for maintainer troubleshooting (failures/partials), not generalized provenance modeling. - Avoid full-table materialization patterns on Enterprise; use bounded server-side query patterns.
- Keep clean-start bootstrap compatible with the two-step flow:
bootstrap_tables(reset/create/seed metrics) followed byupdate_all(which assumes tables already exist by default). - Keep total-star aggregation aligned with all active GitHub star metrics in
STARS_METRIC_SOURCE_MAP.
- Always treat LanceDB as using a remote database on an Enterprise cluster. Local LanceDB databse support isn't planned for this application.
- Keep docs in sync when pipeline contracts change (
README.md,LOCAL.md,AGENTS.mdin the same PR). - Preserve API endpoints consumed by the frontend unless an explicit breaking change is intended and documented.
See the README.md file in this repo for up-to-date usage instructions.