Skip to content

kYaRick/preflight.xml

Repository files navigation

preflight.xml - Visual builder for Windows autounattend.xml

Version .NET 10 Blazor WASM Fluent UI PWA MIT

Zero install · zero backend · zero XML edits by hand.

Warning

Pre-alpha. The Blazor app is being scaffolded - APIs, UI and file layout can change without notice until v0.1.2. Pin to a specific tag if you depend on it.


🧭 What it is

preflight.xml helps IT admins, sysadmins and homelabbers craft autounattend.xml answer files for unattended Windows 10 / 11 installs

  • without touching raw XML. Everything runs in the browser; your config never leaves your machine.

Note

New to the autounattend.xml format? Microsoft's Unattended Windows Setup Reference is the canonical source.

🖥️ App showcase

preflight.xml app showcase UI overview: landing, desktop splash and in-app experience.

🧠 How autounattend.xml works

autounattend.xml setup flow Concept flow: how autounattend.xml answers Windows Setup prompts end-to-end.

🎯 Planned features

  • 🖼️ Visual editor for every major pass & component
  • 👀 Live XML preview with syntax highlighting
  • 💽 Disk layout configurator (GPT / MBR, EFI, Recovery)
  • 👤 User accounts & credential management
  • 🔒 Privacy, telemetry & security toggles
  • 🧼 Bloatware removal & app provisioning
  • 📜 Custom PowerShell / CMD script injection
  • 📥 Import / export of saved configurations
  • 📴 Full offline support via PWA
  • 🌍 i18n-ready UI

🧱 Tech stack

Layer Choice
Runtime .NET 10 · Blazor WebAssembly
UI Microsoft Fluent UI for Blazor
Hosting GitHub Pages (static, no backend)
Distribution Installable PWA, fully offline-capable
Upstream Vendors cschneegans/unattend-generator

🚀 Getting started

Prerequisites

Install just
winget install Casey.Just     # Windows
brew install just             # macOS
cargo install just            # any platform (Rust)
scoop install just            # Windows (Scoop)

Clone & bootstrap

git clone https://github.com/kYaRick/preflight.xml.git
cd preflight.xml
just init        # configures git hooks, restores NuGet packages

Everyday commands

Run just with no args to list every recipe.

Command What it does
just init One-time onboarding setup
just run Start the app with hot-reload
just build Build all projects (Debug)
just test Run the test suite
just format Auto-format source
just lint Verify formatting (CI-friendly)
just publish Produce a release build for GitHub Pages
just serve Serve the published site at :8080
just clean Remove all build artifacts

Tip

just publish accepts an optional base path:

just publish                     # /preflight.xml/  (GitHub Pages)
just publish /                   # /                (custom domain / localhost)
just publish /apps/preflight/    # /apps/preflight/ (reverse proxy)

Note

Prefer raw dotnet? The justfile is short and readable - every recipe is a thin wrapper.


📦 Distribution

Channel How it works
🌐 Live web app Push to main → deployed to GitHub Pages by pages.yml
📱 Installable PWA Visit the live app, tap the install icon - works on Windows, macOS, Linux, Android, iOS
📥 Offline archive Push tag vX.Y.Z → zip + tar.gz attached to the Release by release.yml
🧰 Self-host Extract the archive, serve wwwroot/ with any static server (see releasing.md)

Important

First-time Pages deploy needs a one-time repo setting: Settings → Pages → Source = GitHub Actions. See docs/ci-cd.md for the full checklist.


📚 Documentation

Topic Read
Architecture overview docs/architecture.md
CI / CD pipelines docs/ci-cd.md
Publishing & PWA docs/publishing.md
Cutting a release docs/releasing.md
Upstream vendor sync docs/upstream-sync.md

🤝 Contributing

Contributions are welcome once the app scaffold lands.

  1. Open an issue first to discuss the change.
  2. Follow Conventional Commits - see .gitmessage.
  3. Keep diffs focused and small; read CONTRIBUTING.md.

Security issues → SECURITY.md (do not file a public issue).

📜 License

Released under the MIT License © kYaRick. Vendored portions of Preflight.Unattend remain under their upstream MIT license - see NOTICE and LICENSES/.


🇺🇦 Stand with Ukraine

Built by a Ukrainian developer during an ongoing war. If preflight.xml saves you time, please consider supporting the people defending Europe's eastern border:

Any contribution matters.

✨ Made with love to 💛 Ukraine 💙