Archive Steam docs; add itch.io upload guide

Move legacy Steam-related docs into documentation/archived and add a new UPLOAD-ITCH.md describing how to publish builds to itch.io with Butler. Update top-level README to state official releases will be on itch.io. Remove Steam-specific UI/features: drop steamCloudOptIn from first-run preferences, remove the Steam Cloud teaser and summary from the setup flow, and adjust settings/setup copy to reference handheld devices and non‑Steam distribution. Also make a small wording tweak in the plugins doc about rendererPreload.
This commit is contained in:
2026-02-24 20:50:00 +13:00
parent 618ea7d12d
commit 0b51d133a4
13 changed files with 136 additions and 22 deletions
View File
+3
View File
@@ -68,6 +68,9 @@ Nebula may be distributed outside of Steam through platforms such as:
Availability and packaging may change over time and are not guaranteed.
Official releases for Nebula will be published on itch.io; Steam distribution
is not available due to the Steam review outcome described above.
---
## Licensing
+113
View File
@@ -0,0 +1,113 @@
# Uploading releases to itch.io using Butler
This document explains how to prepare and upload Nebula releases to itch.io using Butler, covering macOS, Windows, and Linux.
## Overview
Butler (itch.io) is the recommended channel for distributing Nebula releases. The process is:
1. Build your platform-specific artifact.
2. Install and authenticate `butler`.
3. Push the build to your `username/game:channel` with `butler push`.
## Install Butler
- macOS / Linux / Windows: Download the appropriate Butler binary from the official itch.io Butler releases (follow the official docs). Unpack, make executable, and place it on your `PATH`.
Example (Linux/macOS):
```bash
# after downloading 'butler' binary
chmod +x butler
sudo mv butler /usr/local/bin/
```
On Windows, place `butler.exe` in a folder on `PATH` or use it directly from the build folder.
## Authenticate
Run:
```bash
butler login
```
This opens a browser-based authentication flow. Verify with:
```bash
butler whoami
```
If automation is required, consult the official Butler docs for API-key/token login options.
## Prepare platform artifacts
macOS
- Create a zip of your `.app` bundle (keep the `.app` as a top-level item inside the zip):
```bash
ditto -c -k --sequesterRsrc --keepParent MyApp.app MyApp-mac.zip
```
Windows
- Zip the folder containing your `.exe` and runtime files, or create an installer and zip the installer.
```powershell
Compress-Archive -Path .\build\MyApp\* -DestinationPath MyApp-windows.zip
```
Linux
- Create a tarball (or zip) of the Linux runtime files:
```bash
tar -czf MyApp-linux.tar.gz -C build/linux .
```
Note: ensure the main binary has executable permissions before archiving.
## Push to itch.io
Basic command:
```bash
butler push <path> <username>/<game>:<channel>
```
Examples:
```bash
# macOS build
butler push MyApp-mac.zip myuser/nebulabrowser:mac
# Windows build
butler push MyApp-windows.zip myuser/nebulabrowser:windows
# Linux build
butler push MyApp-linux.tar.gz myuser/nebulabrowser:linux
```
Set a release version for itch.io using `--userversion`:
```bash
butler push MyApp-mac.zip myuser/nebulabrowser:mac --userversion 1.2.3
```
## Recommended channel strategy
- `stable` or `default` — production releases
- `beta` — pre-release testing
- Use platform-specific channels (e.g., `mac`, `windows`, `linux`) if you want separate channels per OS
## Tips
- Keep artifacts small and platform-specific to reduce download size.
- Verify the upload with `butler whoami` and by visiting your game page on itch.io.
- When testing on macOS, notarization and Gatekeeper may affect distribution; provide clear install instructions on your itch page.
## Rollback
Butler supports pushing to a channel multiple times; the latest pushed build becomes the current for that channel. To revert, push a previous artifact or use the itch.io web UI to select a previous build.
## References
Consult the official Butler documentation for advanced usage (credentials, automated CI uploads, delta uploads, and platform-specific packaging recommendations).
+3
View File
@@ -0,0 +1,3 @@
# GPU-FIX-README (archived)
This file was present at repository root and has been archived here for reference. The canonical GPU fix documentation lives under `documentation/`.
@@ -31,7 +31,7 @@ Example:
Fields:
- id: Unique id. Defaults to folder name if omitted.
- main: Optional entry for main process integration.
- rendererPreload: Optional file injected into the preload. Use it to expose limited APIs.
- rendererPreload: Optional file injected into the preload. Use it to expose a safe surface to the page.
- categories: Optional string or array of strings used for organizing/filtering plugins in UI and APIs. Example: ["AI", "Utilities"].
- authors: Optional string or array of strings/objects describing authors. Objects support { name, email, url }. In APIs/UI, names are displayed.
- enabled: Defaults to true.
@@ -1,5 +1,10 @@
Converting extracted AppImage (`squashfs-root`) into a distributable AppDir for Steam
> Note: Nebula will not be distributed on the Steam Store. This document is
> kept for reference and for users who run Nebula via Steam as a non-Steam
> shortcut. Official distribution will be handled via itch.io and other
> non-Steam channels.
If your environment lacks `rsync`, use `cp -a` to copy the extracted AppImage into a clean AppDir and prepare it for upload to Steam.
1) Copy the extracted AppImage to an AppDir folder
@@ -77,7 +82,7 @@ Nebula solves this by:
### Gamepad API (for Developers)
The gamepad handler exposes an API via `window.gamepadAPI`:
The gamepad handler exposes an API via `window.gamepadAPI`.
```javascript
// Check if gamepad handler is initialized
@@ -142,7 +147,6 @@ If Steam is still applying mouse emulation:
- **Steam Deck / SteamOS Gaming Mode**:
- Open Nebula → press the Steam button → **Controller Settings** (or the controller icon)
- Set the layout to a **Gamepad** template (not “Keyboard/Mouse”), or disable Steam Input if the toggle is available
- This stops Steam from translating controller input into keyboard/mouse events (“Desktop Layout” behavior).
If you **dont see a Controller tab** (common when the Steam entry is treated as an “application/tool”):
- Use **Big Picture / Gaming Mode** and edit the **Controller Layout** for that specific entry.
@@ -160,7 +164,7 @@ If Steam is still applying mouse emulation:
The `VAR=value %command%` syntax does **not** work on Windows. Use the Steam UI instead:
1. **Library** → right-click Nebula → **Properties****Controller** → set to **"Disable Steam Input"**
1. **Library** → right-click Nebula → **Properties****Controller** → set to **"Disable Steam Input"**
2. If no Controller tab exists, open Steam in **Big Picture Mode** → Nebula → **Manage Game** (gear) → **Controller Options** → **Disable Steam Input**
If you must use launch options on Windows, use this wrapper syntax:
@@ -1,5 +1,9 @@
# Linux / SteamOS Build Upload Guide (SteamCMD)
> Note: Nebula will not be distributed on the Steam Store. This Steam upload
> guide is retained for historical/reference purposes only. Official releases
> will be published on itch.io and other non-Steam channels.
This guide explains how to upload the **Linux / SteamOS** build of Nebula Browser to Steam using **SteamCMD**. It is tailored to the current project layout on Steam Deck / Linux.
---
-1
View File
@@ -612,7 +612,6 @@ async function completeFirstRun(preferences = {}) {
selectedThemeId: preferences.selectedTheme || 'default',
defaultBrowserAttempted: preferences.defaultBrowserSet || false,
defaultBrowserSet: preferences.defaultBrowserSet || false,
steamCloudOptIn: preferences.steamCloudOptIn || false,
completedAt: new Date().toISOString()
};
+2 -2
View File
@@ -36,7 +36,7 @@
<!-- Big Picture Mode -->
<div class="setting-group">
<h3>Big Picture Mode</h3>
<p class="note">A controller-friendly UI designed for Steam Deck and handheld devices.</p>
<p class="note">A controller-friendly UI designed for handheld devices (e.g., Steam Deck).</p>
<div class="setting-row">
<button id="launch-bigpicture-btn" class="primary-btn">
<span style="font-size: 18px;"></span> Launch Big Picture Mode
@@ -287,7 +287,7 @@
<div class="customization-group">
<h3>Security Updates</h3>
<p class="note" style="margin-bottom: 12px;">Nebula Browser is distributed via Steam, but the Electron runtime can be updated separately for security patches and performance improvements.</p>
<p class="note" style="margin-bottom: 12px;">Nebula Browser is distributed via itch.io and other nonSteam channels; the Electron runtime can be updated separately for security patches and performance improvements.</p>
<div class="stack">
<!-- Update Status Banner -->
+3 -8
View File
@@ -111,7 +111,7 @@
</div>
</div>
<!-- Step 4: Complete (Future: Steam Cloud) -->
<!-- Step 4: Complete -->
<div class="setup-step" data-step="4">
<div class="step-content">
<div class="success-icon"></div>
@@ -120,13 +120,8 @@
<div class="completion-summary" id="completion-summary">
<!-- Summary will be populated dynamically -->
</div>
<div class="future-feature-teaser">
<h3>Coming Soon: Steam Cloud Sync</h3>
<p class="teaser-text">
<span class="teaser-icon">☁️</span>
In Phase 2, you'll be able to sync your bookmarks, settings, and themes across devices using Steam Cloud.
</p>
</div>
</div>
<div class="step-actions">
<button class="btn btn-primary btn-large" id="btn-finish">Start Browsing</button>
-7
View File
@@ -416,13 +416,6 @@ function renderCompletionSummary() {
<div class="summary-value">${setupState.defaultBrowserSet ? 'Set as Default' : 'Not Set'}</div>
</div>
</div>
<div class="summary-item">
<div class="summary-icon">☁️</div>
<div class="summary-content">
<div class="summary-label">Steam Cloud Sync</div>
<div class="summary-value">Coming in Phase 2</div>
</div>
</div>
`;
}