AppsinityAPPSINITY
Desktop client

Windows desktop client

The Appsinity desktop client is a Windows application that browses the store and installs Windows releases locally, with a library, desktop shortcuts and a tray menu. It is not a publishing tool.

Open Appsinity Studio

What it is

Because authentication is inherited, a player who signs in inside the client is signed in, and the client can licence protected downloads. Nothing is stored separately in the client.

PropertyValue
PlatformWindows 10 / 11, 64-bit x64 and ARM64. No 32-bit build, no macOS, no Linux.
RuntimeElectron; the store is loaded as a web view
Starts atappsinity.com/Games/store
Window1320 × 840 default, minimum 760 × 520, frameless with a 38 px caption strip
AuthenticationInherited from the web session — there is no client login
Auto-updateChecks appsinity.com/download/client.json 7 s after open and every 6 h after that
Update installDownloads the published setup, verifies its SHA-256, installs on confirmation from the tray menu

Boot and offline behaviour

A poster splash shows for at least 10 seconds while the store loads. If the page has not answered after 16 seconds the client gives up and paints an offline card with Retry, support and Quit Appsinity, naming the host that did not answer.

  • Cloudflare interstitial error pages are detected and treated as unusable rather than shown.
  • Chromium's own error wording is mapped to plain language in the card.
  • The window title is pinned to Appsinity and the favicon is forced to the Appsinity logo, whatever page is loaded.
  • Alt+← and Alt+→ navigate; Ctrl+R reloads.
Watch out: If your listing works in a browser but not in the client, the client is not the difference — check whether the page loads inside a plain Chromium window with the same URL.

Popups, links and the tray

The client denies every popup. Any http or https window.open target is handed to the operating system's default browser instead, so a "new tab" control in the web-game player leaves the client.

  • Closing the window hides the client to the tray; it keeps running as a background downloader.
  • The tray menu is Open Appsinity, Play (up to the first 15 launchable titles, or a disabled No games downloaded yet), an update row — Check for updates, a live percentage while a release downloads, or Update to <version> now to install it by hand — and Quit Appsinity.
  • A single tray click focuses the window, a double click shows it.
  • Launching a second instance deep-links into the running one rather than opening a second window.

Client-only surfaces

Three rows are injected into the store's own profile menu — Downloaded games, System performance and In-game overlay — and open as a 460 px drawer on the right rather than a new window.

The performance drawer shows usage over 1 and 5 minute spans, per-core figures, Appsinity's own processes and machine details, sampled once a second with a 300-point history. Its Library drive tile reports the volume the downloads folder actually sits on.

The Downloaded games drawer carries an Install location tile: Change folder opens the operating system's folder picker, the choice is stored in %LOCALAPPDATA%\Appsinity\settings.json, and every build downloaded afterwards lands there. Titles already installed keep the folder they were written to, so moving the location never orphans a game or its desktop shortcut. If the chosen folder is gone on a later run — an external drive that is unplugged — the client writes to %LOCALAPPDATA%\Appsinity\library instead and the tile says the chosen folder is not available.

Separately, an in-game overlay appears over a launched game while the client is not focused: CPU, GPU and memory in a small click-through panel. The In-game overlay row is where a player sets it — on or off, which corner, four text sizes, four opacities, and each row (game name, CPU, GPU, memory, client memory, session time) individually. The panel resizes itself to whatever is switched on, changes apply to a running overlay immediately, and the choice is stored in %LOCALAPPDATA%\Appsinity\overlay.json.

Ctrl+Shift+F12 toggles the same setting the page writes, so a player who hides the HUD mid-game keeps it hidden on the next launch.

Note: If a player asks how to reach their library, the answer is the profile menu inside the client, not a separate app window.

How the client updates itself

Seven seconds after it opens, and every six hours while it runs, the client reads https://appsinity.com/download/client.json. That file is a plain static JSON next to the installers — there is no update service, no version API and no signing ceremony.

If its version is newer than the client's own, the setup exe for this CPU architecture is streamed into %LOCALAPPDATA%\Appsinity\updates\ with a progress chip on the page, then hashed with SHA-256 and compared to the digest the manifest carries. Only a match is installed, and the install is the normal silent NSIS setup: the client runs it by itself the moment a verified release is ready, so an update lands on launch with no click at all. The one thing that holds it back is a running game — the installer would kill it mid-session — so the update waits for that title to exit, or for Appsinity to quit.

A verified download is kept, so a client that never got round to installing does not pull ~107 MB again on the next launch. A half-written file is deleted, never resumed and never run.

  • A failed check, a stalled stream (45 s without bytes) or a digest mismatch produces one chip reading Update failed: … and the client carries on running the old version.
  • Nothing is installed without a click in the tray menu — the client never restarts itself out from under a game.
  • An unpacked build, and any copy running from its own dist\*-unpacked folder, reports that it will not replace itself instead of installing a second Appsinity.
Manifest fieldWhat the client does with it
versionCompared segment by segment, numerically — 1.10.0 is newer than 1.9.0
builds.x64 / builds.arm64One is picked by process.arch; a manifest with neither is refused
urlFetched with cache-control: no-store; the ?v= query keeps a CDN from answering a new release with the previous installer
sha256Verified over the whole file before the file is renamed into place
sizeBytesDrives the percentage; absent, the response's content length is used
Note: Publishing a client release means uploading the setup exes and regenerating client.json from them. Your game build is unaffected — this is the client's own version, not yours.

Discord Rich Presence

The client publishes activity to Discord: Browsing the store, Reading a listing, Browsing apps, Browsing games and Playing. It reconnects every 60 seconds when Discord is not running.

Your listing title is what a player's friends see, which makes the title's legibility a discovery channel — see App title.

Frequently asked questions

Where do I get the installer?

From a Windows-targeted listing, which shows a Download the Windows client gate with 64-bit and ARM64 choices. If that link does not resolve, tell [email protected].

Does the client need its own account?

No. Sign in on the store page inside it.

Can I test my listing in the client?

Yes — install it and open your listing there. The page detects the client through the bridge the client injects, not through its user agent, so this is the only way to see what PC players see: their listing button reads Play once your build is in their library.

Need help?

Developer publishing support: [email protected]
General support: [email protected]
Partnerships: [email protected]