Lumiana — building personal apps with browser and Node.js APIs together #23435
Replies: 2 comments
|
_Security & Scoping: Since native Node modules run directly on the server, make sure to clearly document how environment isolation or privilege boundaries work—especially if users attempt to bundle user-supplied inputs into module calls. _Compatibility Layer: For packages that rely on native C++ bindings or heavy binary execution (like sharp or sqlite3), managing stream handles or buffer serialization across the Vite boundary will likely be the biggest hurdle. Consider adding a clear matrix in your README showing which core Node APIs (fs, os, path, etc.) are fully supported so far. _DX Suggestion: Adding TypeScript type completion for the imported Node modules inside client files would make the developer experience even smoother. |
|
This project is intended only for developing private applications, not for multi-user deployments. Once full Node.js privileges are enabled, those capabilities are reachable from the browser, so the trust boundary is the application owner rather than untrusted end users. Thanks |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
I've been working on Lumiana because I wanted to write a personal app's UI and logic together, without building a separate API just to connect them.
It works with Vite. You connect to the Node server with credentials first, then use Node imports alongside your UI code. JavaScript stays in the browser where possible, while operations that need the operating system run on the server.
After connecting, a small example looks like this:
The goal is to use existing Node libraries as they are, without changing them or writing compatibility code for each package.
I've had examples running with Express, Hono, Elysia, Sharp, node-pty, and sqlite3, but it's still early. Most libraries I've tried don't work normally yet, so there's a lot left to do.
GitHub project and setup instructions
All reactions