I've found most spam comes from bots operating from certain countries. Filtering traffic by IP address will stop a lot of spammy traffic. I've used a combination of GeoIP and IP address catagorization to limit the impact of bots on my side-projects.
I'm a data janitor who prefers writing boring software using boring technologies. I'm particularly good at turning piles of spreadsheets into data-driven dashboards.
If print friendly reports are a requirement, I'd go with QuickChart (https://quickchart.io.)
Static charts similar to chart.js, but without all the javascript. I've found static charts are much easier to work with once print CSS layout becomes a requirement.
I believe Turbo/Stimulus rely more on server rendering + their Turbo Drive is quite powerful, will try to catchup on turbolinks. I had implemented them previously, but it's quite difficult to make them smooth.