diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
index 3de1ad6e..34150f61 100644
--- a/.github/FUNDING.yml
+++ b/.github/FUNDING.yml
@@ -9,4 +9,4 @@ community_bridge: # Replace with a single Community Bridge project-name e.g., cl
liberapay: live-dev
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
-custom: ['paypal.me/livedev']
+custom: ['https://paypal.me/livedev']
diff --git a/src/DesktopApps/O2NextGen.Shell/App.xaml b/src/DesktopApps/O2NextGen.Shell/App.xaml
new file mode 100644
index 00000000..7e25939e
--- /dev/null
+++ b/src/DesktopApps/O2NextGen.Shell/App.xaml
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/src/DesktopApps/O2NextGen.Shell/App.xaml.cs b/src/DesktopApps/O2NextGen.Shell/App.xaml.cs
new file mode 100644
index 00000000..e43f0617
--- /dev/null
+++ b/src/DesktopApps/O2NextGen.Shell/App.xaml.cs
@@ -0,0 +1,12 @@
+using System.Windows;
+
+namespace O2NextGen.Shell
+{
+ ///
+ /// Interaction logic for App.xaml
+ ///
+ // ReSharper disable once RedundantExtendsListEntry
+ public partial class App : Application
+ {
+ }
+}
diff --git a/src/DesktopApps/O2NextGen.Shell/AssemblyInfo.cs b/src/DesktopApps/O2NextGen.Shell/AssemblyInfo.cs
new file mode 100644
index 00000000..74087a1f
--- /dev/null
+++ b/src/DesktopApps/O2NextGen.Shell/AssemblyInfo.cs
@@ -0,0 +1,10 @@
+using System.Windows;
+
+[assembly: ThemeInfo(
+ ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
+ //(used if a resource is not found in the page,
+ // or application resource dictionaries)
+ ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
+ //(used if a resource is not found in the page,
+ // app, or any theme specific resource dictionaries)
+)]
diff --git a/src/DesktopApps/O2NextGen.Shell/O2NextGen.Shell.csproj b/src/DesktopApps/O2NextGen.Shell/O2NextGen.Shell.csproj
new file mode 100644
index 00000000..4724627f
--- /dev/null
+++ b/src/DesktopApps/O2NextGen.Shell/O2NextGen.Shell.csproj
@@ -0,0 +1,9 @@
+
+
+
+ WinExe
+ netcoreapp3.1
+ true
+
+
+
diff --git a/src/DesktopApps/O2NextGen.Shell/Themes/Dark.xaml b/src/DesktopApps/O2NextGen.Shell/Themes/Dark.xaml
new file mode 100644
index 00000000..66e823be
--- /dev/null
+++ b/src/DesktopApps/O2NextGen.Shell/Themes/Dark.xaml
@@ -0,0 +1,4 @@
+
+
+
\ No newline at end of file
diff --git a/src/DesktopApps/O2NextGen.Shell/Themes/Light.xaml b/src/DesktopApps/O2NextGen.Shell/Themes/Light.xaml
new file mode 100644
index 00000000..66e823be
--- /dev/null
+++ b/src/DesktopApps/O2NextGen.Shell/Themes/Light.xaml
@@ -0,0 +1,4 @@
+
+
+
\ No newline at end of file
diff --git a/src/DesktopApps/O2NextGen.Shell/Views/MainWindow.xaml b/src/DesktopApps/O2NextGen.Shell/Views/MainWindow.xaml
new file mode 100644
index 00000000..4188cde8
--- /dev/null
+++ b/src/DesktopApps/O2NextGen.Shell/Views/MainWindow.xaml
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/src/DesktopApps/O2NextGen.Shell/Views/MainWindow.xaml.cs b/src/DesktopApps/O2NextGen.Shell/Views/MainWindow.xaml.cs
new file mode 100644
index 00000000..00066823
--- /dev/null
+++ b/src/DesktopApps/O2NextGen.Shell/Views/MainWindow.xaml.cs
@@ -0,0 +1,15 @@
+using System.Windows;
+
+namespace O2NextGen.Shell
+{
+ ///
+ /// Interaction logic for MainWindow.xaml
+ ///
+ public partial class MainWindow : Window
+ {
+ public MainWindow()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/src/O2NextGen-DesktopApps.sln b/src/O2NextGen-DesktopApps.sln
new file mode 100644
index 00000000..01ca5715
--- /dev/null
+++ b/src/O2NextGen-DesktopApps.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.31605.320
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "O2NextGen.Shell", "DesktopApps\O2NextGen.Shell\O2NextGen.Shell.csproj", "{04BB64DD-8A64-4594-BF2C-D5B79D815F7E}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {04BB64DD-8A64-4594-BF2C-D5B79D815F7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {04BB64DD-8A64-4594-BF2C-D5B79D815F7E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {04BB64DD-8A64-4594-BF2C-D5B79D815F7E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {04BB64DD-8A64-4594-BF2C-D5B79D815F7E}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {7D5FB0AE-B7F6-425B-9228-B02E67D1289F}
+ EndGlobalSection
+EndGlobal