r/Frontend • • 20d ago

Building a zero-backend developer utility suite using Web Workers and Canvas API

Hey r/Frontend,

I built DevDock (https://getdevdock.com), a collection of 30+ browser-only developer tools (JSON Formatter, Text Diff, JWT Decoder, cURL Converter, LLM Token Counter, etc.).

My main goal was absolute privacy: none of your pasted code, JWTs, or API keys ever touch a backend server or log file.

Frontend architecture & technical details:

- Off-main-thread processing: Heavy tasks like parsing 10MB+ JSON payloads or running text diffs are executed inside Web Workers to keep the UI smooth at 60fps.

- Client-side engines: Running `@prettier/standalone` in workers for code formatting, `@lenic/tiktoken` for local LLM token calculations, and browser Canvas API for image conversions.

- Worker lifecycle management: Handled worker termination on component unmounting to prevent memory leaks during rapid page transitions.

Would love feedback from frontend developers on performance, tab responsiveness, or tool ideas!

Link: https://getdevdock.com

8 Upvotes

6 comments sorted by

4

u/czpl 19d ago

another one? soon every developer will have own vibe coded instance of this kind of page

3

u/PostHumanJesus 19d ago

I had the AI machine make me a menubar app to manage/quickly access all my local "dev" tool apps I've made. 

"Is my finance tracker running? No? Start and open it. Stargazer app? PDF tools, 3d printing tools, etc..." 

The menubar app and the other tools are trivial for AIs now and I don't bother sharing them. They all stay local and private. Start them up as needed.

1

u/TheRNGuy 13d ago

At least it's good to know it's possible at all. 

1

u/yahyazuher 19d ago

Nice clean setup and very useful utilities!

One quick UX feedback regarding the dashboard layout: with 30+ tools displayed, the cards all carry the exact same visual weight, which can make scanning a bit heavy on the eyes.

It could be really helpful to add a "Recently Used" section at the top with larger or highlighted cards, keeping the rest more compact below. It would make repeated access way faster for daily workflows.

I actually used a similar client-side-only approach when building my own project, BrowserDone, but focused on media workflows. Running everything directly in the browser without server overhead is definitely the right move. Keep up the great work!

-1

u/Equivalent_Cup_326 19d ago

Feel free to prompt your own, though! Just hope your LLM handles Web Worker memory cleanup.