Skip to content

Add PWA installability for headless browser mode #299

Description

@IgorWarzocha

Goal

Make howcode's headless/browser mode installable as a real PWA from supported browser surfaces.

Scope

  • Add a linked web app manifest for the Vite/browser build used by howcode --headless / server mode.
  • Include app metadata, theme/background colors, start URL, scope, standalone display mode, and installable app icons.
  • Add the smallest useful service worker/PWA setup if needed for Chromium installability and basic cache behavior.
  • Document the secure-origin requirement: localhost or HTTPS should be installable, plain LAN HTTP such as http://192.168.x.x:4173/ may not show browser install UI.
  • Keep Electron/desktop packaging behavior unchanged.

Acceptance criteria

  • index.html links a manifest and includes an appropriate theme-color.
  • /manifest.webmanifest or equivalent returns manifest JSON instead of falling through to app HTML.
  • Manifest icons resolve correctly from the served headless/browser build.
  • Chromium can install howcode as an app when served from a secure origin such as localhost or HTTPS.
  • Docs mention how to run/open headless mode in a PWA-friendly way and explain why raw LAN HTTP may only work with --app launchers.

Notes

This came from trying to install a remote howcode instance running on a desktop PC from a laptop at http://192.168.0.228:4173/. The app itself loaded, but Chromium did not expose normal PWA install behavior. A quick check showed no linked manifest, /manifest.json returned the app HTML, and no service worker endpoint was present.

Agent implementation prompt

Implement PWA installability for howcode's headless/browser build. Inspect the Vite public asset setup, index.html, server/headless static serving paths, and existing app icon assets. Add a manifest, manifest link/theme metadata, and minimal service worker/PWA wiring only where it helps installability. Preserve Electron packaging behavior, avoid changing desktop runtime assumptions, and update README/headless docs with the secure-origin requirement for Chromium PWAs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    Status
    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions