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
Backend: hamsterbase will run the nodejs server backend locally. Based on vscf, I developed the underlying business logic, Such as file IO, SQLite, HTTP Server.
Frontend: Based on vscf, I used React for front-end development.
Referring to vs code, I use different communication channels for my frontend and backend on different platforms. For example, electron uses electron-ipc, the other side uses websocket.
To run nodejs on my phone, I use the nodejs-mobile, This is an open-source project that allows me to use Node.js on mobile devices.
https://github.com/nodejs-mobile
Here's how to stitch the modules together into an application
Self-hosted version = local server + frontend, using WebSocket for communication.
Desktop version = (Electron + local server + frontend ) + Self-hosted version
Mobile version = (nodejs-mobile + self-hosted version + webview) , 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.
https://www.v2ex.com/t/974678
Recap: During the Spring Festival this year, we deployed an internal system that didn’t have a lot of traffic. Since it was close to the Spring Festival and it was difficult to coordinate resources, we deployed it on a single machine. The other party provided an H3C physical machine and we planned to install the Ubuntu system. The operation and maintenance team requested a desktop installation. At some point, I was interrupted by a phone call. When I returned to the machine, I saw that the Ubuntu desktop was already set up and assumed that the other side’s operation and maintenance team finished the installation. So, I directly deployed our system, tested it, and there were no problems. I left and everything was peaceful afterwards, we didn’t encounter any issues.
Until last night when a colleague from our team went to update the deployment. Due to various coincidences, a disk space shortage was reported. So, after various operations, the machine was restarted, and we discovered that we booted into Live CD desktop and the directory was empty. When we ejected the CD, it indicated that it could not find a boot disk. After a sleepless night, they called me right in the early morning. I was like… ??? After recovering some memories, I remembered that we didn’t install Ubuntu on the hard drive at all.
Since it was a single-machine deployment, I couldn’t think of a way to recover the data temporarily…
https://hamsterbase.com/
1. collect 5 paying users
Since we don't have an account system, the payments are more like donations. There are currently 5 paying users.
2. release 6 minor versions
From version 0.1 on 23 April 22 to version 0.6 on 21 January 23. 3.
3. Get ? Users. As the software has no telemetry, there is absolutely no idea how many people are using . Currently there are 28 people in the telegram group, 251 docker downloads and 284 stars on github.
4. Cost $70
The official website is render.com, the installer distribution is GitHub and Dockerhub, and the email service is larksuit. All for free. The only thing I paid for was a $60 a year developer account with Apple and a $10 a year domain name.
5. Write 1000 commits and 40k LOC