Skip to content

Homepage mockup for nUpdate 5 - #119

Merged
begerdom merged 9 commits into
db/formats-v2-and-portable-projectsfrom
dominicbeger/homepage-next
Oct 10, 2026
Merged

begerdom merged 9 commits into
db/formats-v2-and-portable-projectsfrom
dominicbeger/homepage-next

Conversation

@begerdom

@begerdom begerdom commented Oct 8, 2026

Copy link
Copy Markdown
Collaborator

A static mockup of a new nUpdate homepage in website/: plain HTML, one stylesheet and a small script, no framework and no build step. Open website/index.html in a browser.

  • index.html: the installer window as the hero, cycling through Windows 11, Linux and macOS; how an update travels in three steps; a platform picker that applies the real file rule; features; install commands and code examples; nUpdate Administration rebuilt in a Windows 11 frame; migration from nUpdate 4; a PayPal donation link.
  • api.html: the public API on one page: 40 types with their signatures, an example per type and call, links between types and a filter.
  • Light and dark mode follow the system or a switch in the header; animations stop under reduced motion; the pages work at phone width.

Stacked on db/formats-v2-and-portable-projects, whose 5.0 API it documents; the diff contains only website/.

Before going live: self-host the fonts (Schibsted Grotesk, Instrument Sans, JetBrains Mono, SIL Open Font License) instead of loading them from Google Fonts.

@begerdom
begerdom force-pushed the db/formats-v2-and-portable-projects branch from 1e73b95 to fff7e41 Compare October 8, 2026 15:20
@begerdom
begerdom force-pushed the dominicbeger/homepage-next branch 2 times, most recently from 0e23da7 to 339ffcd Compare October 8, 2026 15:20
@begerdom
begerdom force-pushed the db/formats-v2-and-portable-projects branch from 1123d34 to cf8b371 Compare October 8, 2026 22:06
@begerdom
begerdom force-pushed the dominicbeger/homepage-next branch 2 times, most recently from ce5cbc4 to 2bbc915 Compare October 8, 2026 22:22
@begerdom
begerdom force-pushed the db/formats-v2-and-portable-projects branch from cf8b371 to f7d6b94 Compare October 8, 2026 22:22
@begerdom
begerdom force-pushed the dominicbeger/homepage-next branch from 2bbc915 to 94ce6d6 Compare October 8, 2026 22:45
@begerdom
begerdom force-pushed the db/formats-v2-and-portable-projects branch 2 times, most recently from 6e599c7 to 20a5556 Compare October 8, 2026 23:34
@begerdom
begerdom force-pushed the dominicbeger/homepage-next branch from 94ce6d6 to 4fb57b3 Compare October 8, 2026 23:34
@begerdom
begerdom force-pushed the db/formats-v2-and-portable-projects branch 2 times, most recently from 2cca78a to e8b55bf Compare October 10, 2026 15:48
@begerdom
begerdom force-pushed the dominicbeger/homepage-next branch 4 times, most recently from 5d5afd6 to 44499c7 Compare October 10, 2026 16:58
A static site in website/: plain HTML, one stylesheet and a small script, no
framework and no build step.

- index.html: the installer window as the hero, cycling through Windows 11,
  Linux and macOS; how an update travels in three steps; a platform picker
  that applies the real file rule; features; the install commands and code
  examples; nUpdate Administration rebuilt in a Windows 11 frame; migration
  from nUpdate 4; a PayPal donation link.
- api.html: the public API on one page, 40 types with their signatures, an
  example per type and call (compiled against the libraries), links between
  types and a filter.
- Light and dark follow the system, or a switch in the header; animations
  stop under reduced motion; phone widths work.

The fonts still load from Google Fonts and should be self-hosted before the
site goes live.
Follows #101 on db/formats-v2-and-portable-projects: an empty or relative path now throws ArgumentException, and the path comes from the running process.
…ation or leaves it closed

UpdateManager.DefaultAfterInstall replaces the settable AfterInstall, which is
now the outcome for the updates found; PackageInfo.AfterInstall and the text
StaysClosedAfterUpdate are new. Member accesses such as manager.AfterInstall
are no longer coloured as the type of the same name.
…nstall after the per-package choice

ConfirmInstallAsync shows that the application stays closed, and the
ConsolePresenter example does so with UpdateTexts.StaysClosedAfterUpdate.
HostOptions.AfterInstall is the outcome of UpdateManager.AfterInstall, Restart
is the default of DefaultAfterInstall, and only the application can choose
KeepRunning.
Loading Google Fonts sends every visitor's IP address to Google, which German
courts have ruled a GDPR violation without consent (LG München I, 3 O
17493/20). The four families are now in website/fonts as variable WOFF2 files,
Latin and Latin Extended only, with their SIL Open Font License texts.
imprint.html carries the details of the legal notice on dominic-beger.de,
under § 5 DDG, which replaced § 5 TMG in 2024; the EU online dispute
resolution platform it still mentioned closed in July 2025. privacy.html
describes what the site actually processes: the host's server log files,
the theme choice in localStorage, links to GitHub, NuGet and PayPal, email.
Both are in German with an English translation and linked from every footer.
@begerdom
begerdom force-pushed the db/formats-v2-and-portable-projects branch from fe2fd04 to 3391ff9 Compare October 10, 2026 17:39
Every entry now names the types and members it documents in a data-api
attribute, as documentation comment IDs with the member's type after ~.
The page gains what was public but missing: the file formats (UpdateFeed,
PackageManifest, PackageRoot, the operations, RegistryValue), PackageStatistics,
the transfer plugin API of nUpdate Administration, and the members of
documented types it skipped, such as UpdateManager.FeedUri and Dispose, the
other UpdateVersion constructors and what WindowProgressReporter implements.
InstallerServices keeps only its two limits, the rest is internal now.
tools/ApiDocsCheck reads the public types and members of the packages from
their metadata (System.Reflection.Metadata, no new dependency) and compares
them with the data-api IDs on website/api.html. It fails on a public member
without an entry and on an entry whose member no longer exists; a changed
signature is both, because the IDs carry the member's type. CI runs it after
the Linux build through tools/ci/api-docs-check.sh, which also runs locally
after a Release build. BUILDING.md, AGENTS.md and the website README describe
the process.
@begerdom
begerdom force-pushed the dominicbeger/homepage-next branch from 44499c7 to c7bd5f8 Compare October 10, 2026 17:39
@begerdom
begerdom merged commit c7bd5f8 into db/formats-v2-and-portable-projects Oct 10, 2026
8 checks passed
@begerdom
begerdom deleted the dominicbeger/homepage-next branch October 10, 2026 18:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant