Monorepo for Aesthetic.Computer aesthetic.computer
core plans electron-desktop-release.md
6.0 kB

Electron Desktop App Release Plan #

Overview #

Release the Aesthetic Computer Electron app and create a download experience at aesthetic.computer/desktop.


Progress Log (December 27, 2025) #

✅ Completed #

  1. Electron App Features

    • Independent zoom controls (Cmd+/- for front webview or back terminal)
    • Window size: 680×480
    • Alt+scroll window drag in all window types
  2. macOS v0.1.0 Release Published

  3. desktop.mjs Piece Created

    • Platform detection (macOS/Windows/Linux/Fedora)
    • Download buttons for all platforms
    • Install instructions for each platform
    • Features & requirements sections
    • ⚠️ BUG: Scrolling broken, e.screen undefined in act()
  4. Prompt Commands Added

    • desktop, app, electron all navigate to the desktop piece
  5. Short URL Redirects (netlify.toml)

    • aesthetic.computer/desktop/mac → macOS DMG
    • aesthetic.computer/desktop/win → Windows exe
    • aesthetic.computer/desktop/linux → AppImage
    • aesthetic.computer/desktop/fedora → RPM
    • aesthetic.computer/desktop/deb → Debian package
  6. GitHub Actions Multi-Platform CI/CD

    • Workflow: .github/workflows/electron-release.yml
    • Builds for macOS, Windows, Linux (AppImage, deb, rpm)
    • Uses Node 22 + Python 3.11 with setuptools
    • GH_TOKEN set as repository secret
  7. Package.json Updates (ac-electron)

    • Added homepage: "https://aesthetic.computer"
    • Added author, license for Linux deb/rpm builds
    • Linux targets: AppImage, deb, rpm
  8. Repo Fixes

    • Renamed a*.mjs to a-star.mjs (Windows compatibility)
    • Removed orphaned submodule refs (feral-file/docs, feral-file/ffos-user)

🔄 In Progress #

  • GitHub Actions builds for Windows/Linux (latest run pending)

❌ Known Issues #

  • desktop.mjs has broken scrolling (e.screen undefined in act)
  • Need to simplify piece using ui.Button class like other pieces

Phase 1: Commit & Push Current Changes ✅ #

Phase 2: Electron App Distribution ✅ #

Options for Hosting the App: #

  1. GitHub Releases (Recommended)

    • Use electron-builder's GitHub publish feature
    • Auto-updates support built-in
    • Free hosting for releases
  2. Netlify / Custom CDN

    • Host DMG/ZIP in system/public/assets/downloads/
    • Simpler but no auto-update

Build Artifacts: #

  • Aesthetic Computer-0.1.0-universal.dmg (macOS Universal)
  • Future: Windows .exe, Linux .AppImage

GitHub Release Setup: #

  1. Add publish config to ac-electron/package.json
  2. Create GitHub personal access token for publishing
  3. Run npm run publish to create release

Phase 3: Create desktop.mjs Piece ✅ #

A dedicated piece at aesthetic.computer/desktop that:

UI Elements: #

  • Title: "Aesthetic Computer Desktop"
  • Subtitle: "The creative coding environment on your desktop"
  • Download button (detects OS, shows appropriate download)
  • Version number display
  • GitHub link for all releases
  • One-liner install commands (curl)

Phase 4: Update prompt.mjs ✅ #


Phase 5: Short URL Redirects ✅ #


Phase 6: Future Enhancements #


Release Checklist #


Technical Notes #

GitHub Release URL Pattern: #

https://github.com/whistlegraph/aesthetic-computer/releases/download/v0.1.0/Aesthetic.Computer-0.1.0-universal.dmg

OS Detection in desktop.mjs: #

const platform = navigator.platform.toLowerCase();
const isMac = platform.includes('mac');
const isWindows = platform.includes('win');
const isLinux = platform.includes('linux');

Download URLs (via Netlify redirects): #

  • macOS: aesthetic.computer/desktop/mac
  • Windows: aesthetic.computer/desktop/win
  • Linux: aesthetic.computer/desktop/linux
  • Fedora: aesthetic.computer/desktop/fedora
  • Debian: aesthetic.computer/desktop/deb

One-liner Install Commands: #

# Fedora
curl -L aesthetic.computer/desktop/fedora -o ac.rpm && sudo dnf install -y ac.rpm

# Debian/Ubuntu
curl -L aesthetic.computer/desktop/deb -o ac.deb && sudo dpkg -i ac.deb

# Linux AppImage
curl -L aesthetic.computer/desktop/linux -o ~/AC.AppImage && chmod +x ~/AC.AppImage

GitHub Actions Workflow: #

  • File: .github/workflows/electron-release.yml
  • Triggers: Push to v* tags or manual dispatch
  • Builds: macOS (universal), Windows (x64), Linux (AppImage, deb, rpm)
  • Artifacts uploaded to workflow, not auto-published to releases yet