Sample projects showcasing PhotinoX — a lightweight, cross-platform framework for building native desktop apps using Web UI technologies (Blazor, React, Vue, Angular, or plain HTML/JS). PhotinoX uses OS-native WebView engines:
- Windows: WebView2
- macOS: WKWebView
- Linux: WebKitGTK 4.1
Note:
PhotinoX.Samplesis an independent fork of tryphotino/photino.Samples under the Apache-2.0 license and is not affiliated with the original project or organization.
PhotinoX is a lightweight, open-source platform for building native desktop applications using modern Web UI stacks.
It keeps application size small and memory usage low by depending on the system’s built-in WebView engines (instead of bundling Chromium).
Core packages:
- PhotinoX - managed .NET wrapper around the native layer.
- PhotinoX.App - application composition layer for PhotinoX desktop applications.
- PhotinoX.Cpp - a modern cross-platform C++20 desktop application framework built on native OS WebViews.
- PhotinoX.Native - native binaries for Windows/macOS/Linux.
- PhotinoX.Blazor - Blazor integration for building native desktop applications with PhotinoX.
- PhotinoX.Server - optional local static-file server for SPA and static web assets.
This repository contains examples using a variety of frontend technologies:
- Vue.js
- React
- Angular
- Plain HTML/CSS/JS
- WebAPI local communication
- gRPC local communication
- 3D graphics using Three.js
- 3D graphics with React + Three.js
- Multi-window example
- Custom scheme example
- Static File Server sample (useful for ESM/CORS limitations)
- TestBench (WebAPI, OS calls, PowerShell calls, etc.)
Each folder starting with Photino.HelloPhotino.* is a self-contained sample project.
The tools/ directory contains convenience scripts for building and running the samples.
build-all-spa.cmd– production build (npm ci)build-all-spa-clean.cmd– clean + production buildbuild-all-spa-restore-install.cmd– development build (npm install)
Use npm ci for reproducible builds.
Use npm install for local development or when modifying the frontend code.
run-dev.cmd -List— list detected SPA projectsrun-dev.cmd -Project <Name> -Port <port>— start dev server + PhotinoX host- Shorthand launchers:
run-dev-Photino.HelloPhotino.React.cmdrun-dev-Photino.HelloPhotino.Vue.cmdrun-dev-Photino.HelloPhotino.Angular.cmdrun-dev-Photino.HelloPhotino.3d.React.cmd
run-dotnet-Photino.HelloPhotino.3d.cmdrun-dotnet-Photino.HelloPhotino.GRpc.cmdrun-dotnet-Photino.HelloPhotino.MultiWindow.cmdrun-dotnet-Photino.HelloPhotino.NET.cmdrun-dotnet-Photino.HelloPhotino.StaticFileServer.cmdrun-dotnet-Photino.HelloPhotino.TestBench.cmd
These scripts are optional but greatly simplify both development (npm dev servers) and .NET-only runs.
- .NET: 8, 9, or 10
- Node.js + npm (for SPA samples)
- Windows: WebView2 Runtime
Required component: Microsoft.Web.WebView2 (Edge WebView2)
https://learn.microsoft.com/microsoft-edge/webview2/ - macOS: WKWebView (system WebKit)
https://developer.apple.com/documentation/webkit/wkwebview/ - Linux: WebKitGTK 4.1 (runtime + dev packages)
https://webkitgtk.org/
- Ensure NuGet packages are restored (PhotinoX.*, etc.)
- Build for x64 or ARM64, not x86
- For SPA samples:
- Use
npm installfor development inside each sample folder - Use
npm ciwhen running the production build scripts (build-all-spa*.cmd) - Ensure assets are served over HTTP (
PhotinoX.Server) when needed
- Use
On Windows, ensure the WebView2 Runtime is installed. Most modern Windows versions include it, but clean or corporate installations may not.
Issues and PRs are welcome. Keep PRs focused, minimal, and consistent with the rest of PhotinoX.
PhotinoX.Samples is licensed under Apache-2.0.