r/javascript • • 13d ago

Mimic - a browser-based dev environment that runs Node.js

https://github.com/mimic-js/mimic
13 Upvotes

7 comments sorted by

2

u/brianjenkins94 13d ago

How does it differ from almostnode?

3

u/archieofficial 13d ago

I checked the implementation. almostnode uses internal plugins to run tools like Vite and Next.js, so it looks like they’d need to write a plugin like that for each new tool to broaden compatibility, which I don’t think scales well. Mimic just runs everything “natively”.

I also noticed that almostnode uses a shim for esbuild https://github.com/macaly/almostnode/blob/main/src/shims/esbuild.ts. Mimic doesn’t need one, because it implements WASI and can run any program compiled to WASI directly, including esbuild.

I’ve also tested more tools for compatibility including heavy things like NX and Angular CLI. You can find them in the “What runs” section.
https://www.mimicjs.com/

2

u/thecementmixer 13d ago

What's the use case for this?

5

u/archieofficial 13d ago

The most obvious usages:
- A playground for a frontend or Node.js library, so anyone can play around with code right in the browser.
- A live coding platform where the computation moves from cloud VMs to the client (i.e. the interviewer’s and candidate’s machines).

In general, it can save money (potentially a lot, depending on scale) by running code on the client instead of relying on cloud VMs.

1

u/gsweats 11d ago

Interesting idea and really cool architecture. Great job pulling it off! With the rising cost of cloud compute and even on-prem hardware this idea of pushing work back on clients is appealing.

Could this theoretically plug into GitLab or whatever source management app in order to "npm install" and then run test scripts? So much compute time goes to running tests.

→ More replies (1)