A quick, practical guide to get you developing on both the backend (C#/.NET) and the frontend (React/Vite).
- Windows 10 (build 17763 / 1809) or newer
- .NET SDK 10.0.x (Windows targeting)
- Git
- Bun v1.1+ (for frontend tooling and git hooks)
- Node.js 18+ (only if you want the backend to auto-start the frontend dev server via
npm run dev) - IDEs (pick what you like):
- Visual Studio 2022 (17.12+) or VS Code + C# Dev Kit
Segra.sln— solution rootBackend/— app services, models, utilsFrontend/— React + Vite app (TypeScript, Tailwind, DaisyUI)
- Clone the repo
git clone <your-fork-or-upstream> && cd Segra
- Install root dev tools (husky/lint-staged for hooks)
bun installbun run prepare
- Install frontend deps
cd Frontend && bun install && cd ..
- Ensure .NET SDK 10 is on PATH
dotnet --infoshould showVersion: 10.xandOS: Windows
There are two parts running during development: the backend (Photino.NET desktop app) and the frontend (Vite dev server on port 2882).
- Using Bun (recommended):
cd Frontend && bun run dev(serves on http://localhost:2882)
- Using Node/npm (optional):
cd Frontend && npm run dev
- From the repo root:
dotnet run --project Segra.csproj
- Notes:
- In Debug mode the app expects the frontend on
http://localhost:2882. - If Node/npm is installed, the backend attempts to auto-run
npm run devinFrontend/if nothing is listening on 2882.
- In Debug mode the app expects the frontend on
- Backend (Release):
dotnet build -c Release - Backend publish (self-contained optional):
dotnet publish -c Release - Frontend (bundle):
cd Frontend && bun run build
- EditorConfig is enforced across the repo:
- Global: CRLF line endings and 2-space indent
- C#: CRLF line endings, 4-space indent
- C# formatting (via
dotnet format):- Pre-commit: formats staged
*.csfiles - Pre-push: verifies no formatting drift in the solution
- Pre-commit: formats staged
- Frontend (in
Frontend/):- Prettier + ESLint with Bun
- Scripts:
bun run format/bun run format:checkbun run lint/bun run lint:fix
- Installed at repo root via Bun.
- Pre-commit:
- Prettier + ESLint on staged files in
Frontend/ dotnet formaton staged*.cs
- Prettier + ESLint on staged files in
- Pre-push:
dotnet format --verify-no-changeson the solution
If hooks don't run:
- Ensure Bun is on PATH for your Git shell
- Re-run:
bun install && bun run prepare
- Keep PRs focused and small
- Run format and lint before pushing
Thanks for contributing ❤️