onShape does this already
But does it run etirely locally in the browser after downloading a total of 2993991 bytes (less than 3 megabytes) of code? ;-)
Local storage too. We don't want your data.
That 3MB also includes gnu unifont, the builtin vector font, and the 3js viewer for when you export models to html (viewer gets bundled in the file)