Files
crowd-funder-for-time-pwa/doc/build-modernization-context.md
Matthew Raymer 2d17bfd3b4 docs: comprehensive documentation updates and modernization
- Update BUILDING.md with current build system information
- Modernize various README files across the project
- Update CHANGELOG.md with recent changes
- Improve documentation consistency and formatting
- Update platform-specific documentation (iOS, Electron, Docker)
- Enhance test documentation and build guides
2025-08-20 13:02:01 +00:00

2.2 KiB

TimeSafari Build Modernization Context

Author: Matthew Raymer

Motivation

  • Eliminate manual hacks and post-build scripts for Electron builds
  • Ensure maintainability, reproducibility, and security of build outputs
  • Unify build, test, and deployment scripts for developer experience and CI/CD

Key Technical Decisions

  • Vite is the single source of truth for build output
    • All Electron build output (main process, preload, renderer HTML/CSS/JS) is managed by vite.config.electron.mts
  • CSS injection for Electron is handled by a Vite plugin
    • No more manual HTML/CSS edits or post-build scripts
  • Build scripts are unified and robust
    • Use ./scripts/build-electron.sh for all Electron builds
    • No more fix-inject-css.js or similar hacks
  • Output structure is deterministic and ASAR-friendly
    • Main process: dist-electron/main.js
    • Preload: dist-electron/preload.js
    • Renderer assets: dist-electron/www/ (HTML, CSS, JS)

Security & Maintenance Checklist

  • All scripts and configs are committed and documented
  • No manual file hacks remain
  • All build output is deterministic and reproducible
  • No sensitive data is exposed in the build process
  • Documentation (BUILDING.md) is up to date

How to Build Electron

  1. Run:

    ./scripts/build-electron.sh
    
  2. Output will be in dist-electron/:

    • main.js, preload.js in root
    • www/ contains all renderer assets
  3. No manual post-processing is required

Customization

  • Vite config: All build output and asset handling is controlled in vite.config.electron.mts
  • CSS/HTML injection: Use Vite plugins (see electron-css-injection in the config) for further customization
  • Build scripts: All orchestration is in scripts/ and documented in BUILDING.md

For Future Developers

  • Always use Vite plugins/config for build output changes
  • Never manually edit built files or inject assets post-build
  • Keep documentation and scripts in sync with the build process

This file documents the context and rationale for the build modernization and should be included in the repository for onboarding and future reference.