| I have a read-it-later tool (https://hamsterbase.com/) that I've been maintaining as a hobby for 2 years, supporting Mac, Linux, Windows, iOS, Android, and self-hosted Docker. All these versions share the same codebase. VSCF: I extracted part of the source code from VS Code and developed a framework called VSCF. It includes commands, themes, dependency injection, key bindings, IPC. https://github.com/hamsterbase/vscf Local server: On top of VSCF, I developed the underlying business logic, and file IO, SQLite, and the logic related to synchronization will be placed here. Frontend: On top of VSCF, I used TypeScript and React for front-end development. nodejs-mobile: This is an open-source project that allows me to use Node.js on mobile devices. https://github.com/nodejs-mobile Self-hosted version = local server + frontend, using WebSocket for communication. Desktop version = Electron + local server + frontend, using Electron's IPC for communication. Mobile version = nodejs-mobile + self-hosted version. Users use webview to access the UI. It looks just like a native application. They can even use their phones as servers to access data on their phones from a computer. |