Home » My Applications » Programmer’s Tray

Programmer’s Tray

The Programmer’s Tray is a simple little project to basically demonstrate the use of Electron and React in an actual application.

Source Download

The application’s source can be download from GITHUB at https://github.com/dale-moore/programmers-tray.git.

To clone the repository run the following GIT command:


As every good project should have, here are the high-level requirements.

  • Use Electron as the desktop framework
  • Use React (ReactJS) as the JavaScript framework
  • Be install-able from the duckysoftware website
  • Be install-able from the Windows application store website
  • Runs in the system tray on Windows
  • The first time the application is run the user must register with an email and password.
  • At startup, the application pulls from Amazon Web Services and sync’s the commands contained in the cloud with those found locally.  The newest copy wins.
  • Right click shows a context menu containing:
    • <custom commands>
    • Setup…
    • Account…
  • The Setup… menu option loads a page that…
    • Allows user to create commands.
    • Allows user to delete commands
    • Allows user to reorder the commands
    • Allows user to mark a command as inactive.  An inactive command maintains its place in the menu, but is not shown.  That way, when the command is activated, it will automatically appear in the menu list where it was last seen
    • A command is a friendly name with an executable value.
    • The executable value defines the full path to the executable to run
    • The executable value may contain addition parameters that are passed to the executable
    • The executable path may contain environment variables with the syntax %ENVVAR%
  • The Account … page shows
    • the user’s log in account name and allows the user to change the password for the account.
    • Allows the user to perform a manual sync with the AMS cloud
  • The <custom commands> section of the context menu lists all of the commands that are active.
  • User may select one of the <custom commands> to have it execute


This section lists the posts that are related to the creation of this application.