FalixNodes App Are Being Sunsetted
Hey everyone! I’m sad to say today that we’re going to be sunsetting our desktop and mobile applications, both being FalixNodes Desktop and FalixNodes App.
What Happens Next?
We noticed a lot of users still use our app according to analytics, so to being the process, a notice will added to these applications to warn users to switch to normal web browsers from this point on. The update server managed by Korbs Studio will continue to operate until it’s domain is expired and any updates on Korbs Studio’s domain will be removed. All source code will be archived on GitHub. All blogs about updates made to FalixNodes Desktop over the years will be removed. Any app stores containing either software will be set to private to unlist the app.
What Do I Do?
If you are user of these apps, we recommend that you use your default web browser from this point on to use and interact with FalixNodes. Please uninstall FalixNodes Desktop from your computer and FalixNodes App from your mobile device.
Final Thoughts from the Korbs Studio (Developer of FalixNodes Apps)
I’ve enjoyed creating and making updates to both FalixNodes Desktop and FalixNodes App for desktop and mobile over the years for the company, it’s sad to sunset these apps, but I don’t have time anymore for these and no longer movivation to continue forward. Thanks to FalixNodes Desktop, I’ve gained a lot more experience and knowledge in the ElectronJS framework and how to work in it, and create amazing things; and thanks to FalixNodes app which allowed me to learn about mobile development using a framework like React Native and getting to know the workflow behind Expo.
While I’m not going to be working on our applications anymore, I will still be working at FalixNodes Limited as our website developer for our homepage.
History Behind FalixNodes Desktop
Back in late 2018, a community member known as Korbs(formly Corbs at the time) designed a personal software to help himself navigate the panels of FalixNodes. The reason for this is that he was dissatisfied with his web browser’s performance/style and began relying on other applications to surf the network. The personal software was the initial version of what would become FalixNodes Software, a simple Electron-based application with tab-like navigation to transition between FalixNodes panels. Korbs eventually introduced it to other FalixNodes members, and they were fascinated, thus additional members began using the software, making it “Community Software.” Korbs was not a staff member of FalixNodes at the time and was a normal member like everyone else, hence it was not official software of FalixNodes, yet.
FalixNodes Desktop v1
Because it was initially designed to be used privately, the first iteration did not need much attention in the design process. So it was designed to be basic, and making it presentable was not a concern at the time. As a result, a simple tab system was situated at the top, with an embedded browser taking up the remainder of the window. Colors were a simple gray theme with some variations. This color scheme was gradually phased over into v2, with little improvements.
As for it’s features provided, well not much was brought to the table. Again, it was initially designed to be used privately, so focusing on major stuff like security, performance, and smoothness wasn’t a conern either. So v1 ended up using a basic structure in the main process, by simpling enabling the webview tag to enable the embedded browser, and setting it’s window size. Nothing else, really.
FalixNodes Desktop v2
FalixNodes Software became official software of FalixNodes in mid-2020, implying that Korbs devoted closer attention to design and functionalities. For design adjustments, each tab in the upper portion now had rounded edges and space was added utilizing the top margin. A dashboard with a side panel displaying the software name, version, and two tabs for news and releases was also included.
The upper half had a custom titlebar that mimicked Windows 10’s native titlebar. This custom titlebar was unintentionally applied to other operating systems such as macOS and Linux. In addition to the custom titlebar, an extra button adjacent to the right-side buttons was added to access a menu with more options and functions. Settings, help center pop-ups, FalixCoins when they’ve been launched, and more. Technically, this release also contained notifications, but just one was added, noting that the FalixCoins window was immediately minimized when the end-user opened it.
With a new major release, came new features. As previously mentioned in the design aspect, a new tab called “Dashboard” was included. Primarily, the Dashboard would provide up-to-date information on what’s new in FalixNodes, as well as release notes for the FalixNodes Software itself. Later in v2, new buttons, an add and reload button, were added to both the “Client” and “Panel tabs. When the user clicks the add button, a new window for that tab opens. The reload button is self-explanatory.
Auto update was badly implemented in the software by just incorporating a large amount of code that was hosted elsewhere and could be quickly updated. With these weak implementations, nothing in the software could load if the end-user was not online, including the interface itself. This would sometimes, temporary on load, show broken CSS until the rest of it loaded. This is all deemed “Bad Practice” in the Electron community, and Korbs accepts responsibility for the bad development of v2. Everything has been overhauled with proper auto-update in v3. This version of FalixNodes Software is regarded as “Cringe” and “Poor Development” by its own creator due to the unethical practice. I’m not joking when I say those are quotations.
The Present - v3
As a reminder, FalixNodes Desktop v3 is the most recent stable version at the time of writing this blog article. From its initial release until its final version, it made substantial progression.
The idea for the new design of the software’s interface came from Glasstron. While experimenting with Electron packages, Korbs stumbled upon Glasstron, an Electron blur-composition tool. Glasstron is responsible for enabling the blur effect behind the software’s window by utilizing the operating system’s native blur effect, such as the acrylic effect on Windows, as well as vibrancy on macOS and Linux if the end-user was on a supported desktop environment or or using Blur Provider for GNOME.
Knowing that we could simply add a native blur effect behind the window reminded Korbs of other applications that uses an interface where this effect is typically shown mostly behind the left sidebar, such as the Windows Settings App, Finder, and others. As a result, the concept of a potential major re-design of FalixNodes Software was formed. It was written straight on top of the demo Korbs created to test Glasstron.
Creating the interface was a simple task by adding in the left sidebar displaying the main tabs at the top and the other tabs at the bottom.
Eventfully, the loading time started to increase, meaning you can really see each part of the HTML content load one by one. To prevent users from seeing this, a new splash window was added. A simple cube sized window without our logo in the middle, and a loading indicator. The splash window was only re-designed/revamped once, which was back in v3.5.0. The revamp also added new functions in v3.5.0, doing a checklist as the software started. This checklist would mainly check the internet to see if the user was even online, has connection to the update server, and smaller things like OS detection. The new design of v3.5.0, had a longer width in the window, with our logo on the left end. The right side would show text display software and name messages from checklist, commmonly “Waiting on main window…” since the checklist goes by very quickly. There are currently no plains to re-design this in v4 and may remain as is.
As we mentioned before about the Windows 10 custom titlebar, it was not meant to be shown show on other operating systems because it wouldn’t match up, obviouly. So in v3.2.0, changes were made to fix this by detecting the operating system and set global variables for the window frame. Also, traffic light buttons now sit in the app on macOS natively. Linux users won’t get any special treatment, as they’ll be using the native titlebar of their desktop enviroments. We wanted something custom for Linux, but things can get complicated since Linux can be multiple layouts.
Korbs began researching the features and API on Electrons’ Webview throughout the development of v3. While investigating, you can quickly add controls to each webview by first identifying each one with a ‘id’ and then using ‘var’ to assign each one a custom variable. You may use the custom variable to control a webview function, such as ‘webviewTest.goBack()’. As a result, controls for both the Client Panel and the Game Panel were introduced. These controls would only appear if the tab was selected, presenting the controls at the right-side of the tab while taking up no space on the design interface.
There was now a technique to increase the software’s performance by learning how to take better control of each webview. At the time, the adverts displayed on the game panel would consume a significant amount of RAM in the software alone. So, by default, the software was configured to prevent the game panel from loading when the software was launched. It will actually display a blank webpage in the background, rendering nothing. When necessary, the end-user may simply click a button to load the game panel. This year, in v3.6.0, you can now have the game panel loaded by default if you want.
As previously stated in v2, auto update was badly implemented, which was corrected in v3.1.0. During the development of v3.1.0, the Electron package used to package and distribute FalixNodes Desktop was first Electron Packager, however this was later changed to Electron Builder. Electron Builder was more configurable and offered an easy-to-use auto-update system. FalixNodes Desktop’s proper update auto was finally developed using Electron Builder.
This was done simply on a custom update server, that being
And although, before to using Electron Builder, there were various approaches of attempting to add auto-update for Windows and Linux. This was accomplished by depending only on an app store for each operating system, namely the Microsoft Store for Windows 10 and the Snap store for Linux. Regrettably, this solution did not support Windows 7 and Windows 8, as well as macOS.
While keeping performance in mind, we should highlight that security was not a priority when working on v1. As a result, security was a top priority in v3.4.0.
For starters, the developer discovered that the end-user occasionally misclicked advertisements and couldn’t back out, which is why controls were implemented. However, the developer was concerned that the user would accidentally click something that, well, should never be clicked. Or end up on an insecure or NSFW website. As a result, a limitation on where the end-user might roam was added, forcing the end-user to be pushed out of any domain that wasn’t part of FalixNodes itself.
Next, the developer was fully aware that if exploited, a webpage in the webview would indeed be able to activate dangerous commands on the end-machine. This was possible because
nodeIntegration was set to
contextIsolation was set to
false, a less-secure configuration for any Electron-based application’s main process. As a result, the settings were changed to deactivate
nodeIntegration and re-enable
contextIsolation. However, without
nodeIntegration, some commands for the software were broken, therefore several of the main process functions had to be either redesigned or minimally tweaked to accommodate to this more secure arrangement.
To adapt to utilizing
contextIsolation all commands that could be used in FalixNodes Desktop had to be whitelisted via the main window’s preload script using
contextBridge. In addition to using
ipcMain to add a command to a specified window, most often the main window.
You can read the security update here: https://falixnodes.net//blog/falix-software-3.4.0-released/
Small things that also happened:
- The onboarding screen went through too many changes and was just removed. May come back in v4.
- Until v3.4.0, it was always built on Electron 9.0.5, but v3.4.0 was a secuirty update so at this point on it always used the latest version of Electron.
- There were original plans to allow users to access the support channel on Discord directly from the software, the idea involved CSS modificationed around Discord. The idea was scrapped, since modifiying the CSS code is against Discord’s Terms of Service.
- One more thing, FalixNodes Desktop v3 was re-built 4 times during all of it’s developmemt. Actually 5 times, but the 5th time was rebuilding it on top of ReactJS, which was scrapped due to webview issues.
The Future - v4
Since the software is being sunsetted, sadly v4 won’t come to be. There many great features planned for this major version of FalixNodes Desktop, some already developed in alpha stages. Features like command menu to quickly navigate and update small settings, built-in VPN for those in blocked country(this was cancelled either way due to VPN abuse in 2022), amazing system improvement to respect the system’s perferred preferences such as theme, color, motion, and others to make it more user-friendly; along with othe great features that would made FalixNodes Desktop the go-to software to use when using FalixNodes.
But, if you are more curious, here is what was planned:
Ignoring the fact that development on FalixNodes Desktop v4 was meant to begin in November of last year, the only thing that came out of it was a concept for a revamped sidebar layout. In November, the idea for version 4 was discarded, and it will be reconsidered later this year, as seen by the aforementioned. Nevertheless, development has returned with many more good suggestions for what we should add and improve in FalixNodes Desktop, as well as improvements that we’ve wanted since v3.2.0. but haven’t had the chance to implement. More exciting things are coming down in the near future, and we’ve already begun experimenting some of the new features that will be included in FalixNodes Desktop v4. We’re really looking forward to seeing what happens!
First, we’ll talk about the features we want to add to FalixNodes Desktop that will make the software more compelling to our customers and make them more likely to use it. The next thing will be to make changes to the software’s design, with certain portions of the old concept being implemented in a different manner than was originally intended.
One of the key new features we’re working on for FalixNodes Desktop is a new command menu to help you navigate the software more conveniently and quickly. The idea to add a command menu was inspired by other services that also use some-type of command menu themselfs like Discord with their ‘Quick Switcher’, GitHub with their feature preview Command Palette, Opera with their tab search, Pop OS with their Pop Launcher, and the most commonly known one being the Spotlight search on Apple’s operating system macOS. Just like these other services, our command menu will show and has already been tested, tab navigation. We plan to add more to it.
In the upcoming weeks, tab navigation, settings toggle, help articles, and other features will most likely be included in the command menu. FalixNodes Desktop is designed to perform all tasks directly from the software, minimizing the need for a web browser or any other third-party software. As such, everything will be done within the software. As previously said, we do have a fully functional command menu with only a minimal amount of tab navigation at this early pre-alpha stage of development.
Update (June 3rd 2022): We’ll be using Ninja Keys library over Algolia
While we endeavoured to build and maintain a dashboard for users to use in the long term, it was reduced to simply a portion where you can read the newest FalixNodes announcements. This time, we’re going for it again, but with a bigger objective in mind than merely a news section. The first thing you’ll see on the new dashboard, apart from the splash window, is a welcome message that says “Welcome back, ‘username’”, “Good afternoon, ‘username’”, or something like “Hey, ‘username’, here’s a tip:” while presenting a tip. Of course, we’ll present the most recent FalixNodes news, just as we did before. However, a new area will be introduced to provide you with a quick glance at your current servers as well as live information on your server resources. The above picture is not a concept; it is genuine code.
In addition to that, we’ll present swift and brief information in the top right corner of the Dashboard about what’s going on in FalixNodes, such as an outage, a software error, scheduled maintenance, and so on. For example, if the node “Ult 4” was down, the message would read “Node ‘Ult 4’ is temporarily unavailable.” or “Scheduled Maintenance on ‘November 12th, 2022’.”
Cascading Style Sheet Webview Injection
I’m sorry, what? What really is that? Cascading Style Sheets, or CSS, is a technology used in HTML to provide webpages more appearance and prevent them from appearing if they’re from the nineties. Webview is the embedded browser that you see in the software; it behaves similarly to an iFrame but has more functionality. You may have noticed that certain aspects of FalixNodes Desktop have changed in v3.6.0, notably the embedded browser. The backdrop is now fully transparent, a goal we’ve had for a long time. Since the release of Electron 16.0.0, it is now possible to completely fill the backdrop of webviews with full transparency; before, this would have resulted in a white background.
Thanks to release of Electron 16.0.0, we can now make the FalixNodes Desktop look more native.
There are plans to make improvements to the FalixNodes Desktop in order to make it more lightweight and user-friendly for devices such as laptops. The first thing we’d want to do is implement a basic battery saver, which will turn off unnecessary features that might deplete a laptop’s battery, such as turning off blur visual effects, unloading most webviews, animations, and elements of the dashboard, among other things. You may configure your battery saver to activate when your laptop is disconnected from its power source. Additionally, when you lock your operating system, we’ll switch off some features to ensure that there isn’t too much activity in the background.
FalixNodes Desktop will try to respect your system’s preferences such as theme, color, motion, and others to make it more user-friendly. Here are a few examples: If you enable Reduce Motion on macOS, animations will be disabled; if the color red was selected as your accent color on Windows or macOS, the accent color in FalixNodes Desktop will be red automatically; if the blur effect is enabled or disabled on Windows, FalixNodes Desktop will also enable or disable its blur effect; and if your system’s theme is light or dark, well, that one is obvious.
Most of this is only supported on Windows and macOS, some of this won’t work automatically on Linux.
Most of this should be possible with the
systemPreferences module in ElectronJS.
VPN capability is being introduced to the app as of early June 2022, following recent developments. FalixNodes Desktop was supposed to use free OpenVPN, however it had problems communicating with it effectively with NodeJS and would never start operating. So, I’ll take a different approach on this, requiring customers to have a VPN service, namely “Mullvad,” already installed on their system.
With Mullvad, FalixNodes Desktop can trigger commands with
exec functions in NodeJS, trigger Mullvad commands like `mullvad connect. It’s also why I chose Mullvad; their client provides CLI commands that can be used in the terminal of the operating system and are available on all platforms. Furthermore, it is incredibly inexpensive at only $5 USD per month; yep, this is a paid VPN service; no free choices are offered.