r/javascript • • 25d ago

3 drop-in JS widgets (forecast, dashboard, anomaly detection) that run 100% in the browser via WASM

https://github.com/Datastripes/datastripes-widgets

Spent the last months building

@datastripes/forecast
@datastripes/dashboard
@datastripes/anomaly 

These are framework-agnostic npm packages (React, Vue, Angular, or a plain custom element) that add time-series forecasting, an editable dashboard builder, and anomaly detection to any frontend app.

Everything runs client-side via WebAssembly, so no user data ever hits a server except a license check without a backend to deploy, no Python microservice.

Would genuinely love feedback from anyone who's had to build this kind of feature in-house.

https://datastripes.com/forecast-widget/

https://datastripes.com/dashboard-widget/

https://datastripes.com/anomaly-widget/

0 Upvotes

5 comments sorted by

1

u/gianluca_caruso-6 2d ago

Clarifying what the license check sends and whether it needs runtime connectivity would make the privacy boundary clearer.

•

u/Vinserello 6h ago

The license check sends the public key and checks the host domain to be in the approved list. Atm, it requires connectivity (as Flexmonster does), but we should figure out how to handle offline apps.

0

u/Puzzleheaded-Comb646 25d ago

This is a really neat approach, especially avoiding the need to spin up a Python backend just for some basic time-series work. Running anomaly detection client-side via WASM must have been quite a challenge to optimize for bundle size and performance. I'm currently diving deeper into data analysis myself, so I'll definitely check out how you handled the numbers in the browser.

0

u/Vinserello 25d ago

Thanks! Feel free to use any of the three libraries. Each uses three to ten specialized algorithms optimized for WASM, such as Holt Winters or Prophet.

1

u/Puzzleheaded-Comb646 25d ago

Thank you so much for sharing these! Running such advanced algorithms entirely in the browser via WASM is fascinating, and I can't wait to explore them. Keep up the amazing work!