1
Fork 0
No description
This repository has been archived on 2024-05-27. You can view files and clone it, but cannot push or open issues or pull requests.
Find a file
2023-07-11 00:11:30 -04:00
astro Fix typo 2023-07-11 00:11:30 -04:00
automation update 2023-07-10 08:14:49 -04:00
build Move build config to it's own folder 2023-02-13 13:57:25 -05:00
electron Add comments 2023-07-10 08:14:44 -04:00
public Add missing images for theme settings 2023-04-03 18:17:14 -04:00
.env update and clean main process 2023-03-30 21:53:16 -04:00
.gitignore Create .gitignore 2023-01-23 03:56:05 -05:00
astro.config.mjs Change port for development 2023-07-10 08:14:10 -04:00
LICENSE Add LICENSE 2023-01-23 04:31:21 -05:00
package.json Use a valid license format 2023-07-11 00:11:21 -04:00
pnpm-lock.yaml Use "wait-on" and wait for Astro 2023-04-06 03:08:20 -04:00
README.md Updates 2023-04-03 18:17:05 -04:00
yarn.lock update 2023-07-10 08:14:49 -04:00

Nexus Polestar

A template replacement for FalixNodes Desktop.


A documentation website is in progress.


What was FalixNodes Desktop?

FalixNodes Desktop was developed by SudoVanilla, a FalixNodes Limited contractor. It was intended for its desktop customers to use FalixNodes more quickly and conveniently by allowing them to easily access both the client and game panels presented by FalixNodes. The capabilities of how the software works have progressed over time, and improved performance and security practices have been put in place to make the customer experience more efficient and trustworthy.

Sadly, the software was discontinued by SudoVanilla on November 19th of 2022.

This is a bit of a disappointed, as some major features were being applied to v4 of FalixNodes Desktop, which remained in development for way over a year and never reached production. This forth major version was suppose to get amazing features like built-in SFTP manager, VPN(This was drop either way, requested by FalixNodes Limited CEO), better system optimizations, and a command menu. One of the feature did that come to light and was finished during the development phase was the command menu powered by Ninja Keys.

You can view more about what was suppose to happen in v4.

From the blog post about this matter:

Final thoughts from the developer: 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.

Then Why the Template?

Well, it's come to my attention after many emails from other companies, even after being discontinued, they have forked the project and are using this for their customers. So, I created this template for them and for more to come, as I don't want these companies using outdated source code.

So, here is Nexus Polestar, a template they can build their desktop app on top of for their customers, to replace the old source code from FalixNodes Desktop.

What's the Difference?

While FalixNodes Desktop has always been constructed using vanilla HTML, CSS, and JavaScript, as well as primitive code from 4 years ago and older to still navigate and add additional settings, Nexus Polestar will be developed with Astro, as well as SCSS and more modernized scripts for features such as navigating and additional settings. 

By using Astro, I can make the template more component based, allowing for more flexiblity for other developers at these other companies.


In Development

The following features are planned:

  • Crash Report
  • Deep Links
  • Error Pages for WebViews
  • Light Theme Why?
  • Notification System (Progress: 100%)
  • Progress indicators (Progress: 12%)
  • Skeleton State What's this?
  • Splash (Progress: 100%)
  • System Respect What's this?
  • Components for:
    • Navigation
    • Notifications
    • Overlays
    • Settings
    • Sidebar

What do you mean by System Respect?

A part of this function of Nexus Polestar will only be utilized on Windows and mostly macOS, as Electron's systemPreferences API doesn't support Linux.

Basically, System Repect in Nexus Polestar will try it's best to integrate into the user's system.

Situration 1: Low Battery

If the system's battery becomes low, Nexus Polestar will enable it's "Power Saving" state by disabling certain features like blur composition, window transparency, notification sound, animations, and more as these functions aren't entirely nessesary for the software to serve it's purpose.

Situration 2: Color Scheme and Theme Mode (Windows and macOS)

On Windows and macOS, the user can set an accent color for their operating system, Nexus Polestar will try to use the accent color they've set. Along with using the theme mode, which is handy if they use a sunset feature to auto switch between light and dark mode.

systemPreferences.getColor(color) (Windows and macOS)

systemPreferences.getSystemColor(color) (macOS)

Situration 3: Motion and Transparency (macOS)

On macOS, there is an accessibility option called "Reduced Motion" and "Reduced Transparency".

If "Reduced Motion" is enabled, Nexus Polestar will disable animations.

If "Reduced Transparency" is enabled, all blur compositions and transparency of the window will be disabled. Transparency will also be disabled for other components, if used.

Also recommended by Apple Human Interface Guidlelines for Accessibility.

systemPreferences.getAnimationSettings() (macOS)

Why Add Light Mode?

While dark mode is better it causes less eye-strain and great for those with low vision and light sensitivity, light mode does have it's own benefits and probably depends on the user.

It is ideal for accessibility to allow your users to choose between light and dark modes. Consider people who have cataracts or other vision issues who would like to use your product but are unable to do so in light mode.

So, long story short, this is being added for mainly accessibility.

Learn more: https://webuild.io/digital-product-guide-dark-light-modes

What is Skeleton State

"The concept behind skeleton screens is the use of empty pages that are progressively populated with content as it becomes available — immutable regions of a page are rendered instantly on load, appearing as neutral color blocks, and are gradually replaced with content such as images, headings, and interface labels."

This makes using a splash screen optional.

Example of a Skeleton State:


Working in Nexus Polestar

Branding

Of course, you can't distribute the software to your customers with a placeholder logo and the name "Nexus Polestar". You'll obviously need to replace it with your company name and logo.

App Name Replace "App Name" with something else like "COMPANY_NAME Desktop". As example, if your company was called BunnyJet, you would name it "BunnyJet Desktop".

You need to App Name in the following places:

 - electron
    - index.js
 - build
    - electron-builder.yml

Also, in the electron-builder.yml file, place update the App ID. As an example, if your company was called BunnyJet and your domain was BunnyJet.net, you would use net.bunnyjet.bunnyjetdesktop. Avoid using - in the app name as AppX seems to dislike it.

Logo I highly recommend using the template file provided in the /build folder as it will help you follow the Apple and GNOME Human Interface Guidelines. The name of file is Nexus Polestsar - Assets.penpot, it's designed in Penpot.

This template also provides the backgrounds for the DMG installer and the EXE setup. (macOS Preview / Windows Preview)

Apple Human Interface Guildlines

GNOME Human Interface Guildlines

Building

The following is required on your workstation:

  • NodeJS v16.12.0 and up
  • Python 3.10 or up
  • Yarn
  • Visual C++ Redistributable (Windows)
  • Visual Studio (Windows and macOS)
    • Development for C++
  • g++ (Linux)

If you're using Windows, please be using Windows 10 or Windows 11. Windows 8.1 or older are not supported by SudoVanilla and Nexus Polestar, older versions may be able to run the application but may run into some issues along the way.

Install Packages:

yarn

Then, to start the template:

yarn start

The yarn start command will it in development mode, in this mode, Electron will load a URL instead which is localhost:3000. This will not be the case in production mode for security purposes. This URL won't load up right away by Astro, wait a few moments, then press Ctrl + R in the app.

Build :

yarn build

Support

If you are having issues with the template, you can either submit an issue or contact SudoVanilla by email.

Disclaimer: SudoVanilla does not work for any projects or companies that use this template. So, if you're using a software built on Nexus Polestar, please contact the company or have the company contact SudoVanilla.

*If by any chance SudoVanilla is working on any projects with this template, it'll be listed below.


Also Check Out:

Acknowledgements

Frameworks

Packages Used

Scripts


Licnese

Copyright (C) 2023 SudoVanilla

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>

You can contact SudoVanilla by sending an email to hello@sudovanilla.com.