SQLite will choke pretty quickly on analytical queries. DuckDB is essentially SQLite as an analytical, columnar database. Putting reporting there will help SQLite stay viable longer for interactions. If you wanted to get extra fancy, there's an official WASM port that runs client side in the browser, that should be sufficient for most of the data sizes that SQLite would support.
To summarize our conversation for this issue, I would still use SQLite for all the configuration data, and only put the actual ranking data into DuckDB.
SQLite will choke pretty quickly on analytical queries. DuckDB is essentially SQLite as an analytical, columnar database. Putting reporting there will help SQLite stay viable longer for interactions. If you wanted to get extra fancy, there's an official WASM port that runs client side in the browser, that should be sufficient for most of the data sizes that SQLite would support.