An Electron desktop application for the Apple2TS progressive web app, providing a native desktop experience.
Apple2TS-App is a cross-platform Electron application that wraps the Apple2TS progressive web app, bringing the Apple II emulator experience to your desktop. This wrapper provides enhanced functionality and integration with the operating system while maintaining the full functionality of the web-based emulator.
- Native Desktop Experience: Run Apple2TS as a standalone desktop application with custom splash screen
- Cross-Platform: Available for Windows, macOS, and Linux
- Code Signed & Notarized: Properly signed macOS builds for enhanced security and user experience
- Full Apple II Emulation: Complete access to all Apple2TS emulator features
- System Integration: Better file system access and native OS integration
- Offline Capability: Run the emulator without requiring a web browser
- Professional UI: Custom splash screen and native application menus
- Node.js (version 16 or higher)
- npm or yarn package manager
-
Clone the repository:
git clone https://github.com/ct6502/apple2ts-app.git cd apple2ts-app -
Install dependencies:
npm install
-
Start the application in development mode:
npm start
To run the application in development mode with hot reload:
npm startTo create a distributable package:
rm -rf apple2ts-dist/ out assets/apple2ts-assets ; npm run makeTo install apple2ts from local source code instead of downloading:
rm -rf apple2ts-dist/ out assets/apple2ts-assets ; npm run package:local ; npm run makeTo install on a Mac from the built package:
open ./out/make/Apple2TS.dmg
To run in debug mode, with an optional disk image:
/Applications/Apple2TS.app/Contents/MacOS/Apple2TS --debug ~/Desktop/Frogger.woz
The easiest way to create releases is using GitHub Actions:
- Update version:
npm version patch(orminor/major) - Create and push tag:
git push origin main git push origin --tags
- Automatic build: GitHub Actions will automatically build and publish releases for all platforms with proper code signing
See GITHUB_ACTIONS.md for detailed setup instructions.
To create a release manually:
npm run publishThis will build for all platforms and create a GitHub release with downloadable assets.
npm run make- Build distributables for your current platformnpm run publish- Build and publish to GitHub releases
npm start- Start the application in development modenpm run package- Package the application without creating distributablesnpm run make- The same asnpm run packagenpm run publish- Publish the application with automatic GitHub releasenpm run lint- Run ESLint on TypeScript files
apple2ts-app/
├── src/
│ ├── main.ts # Main Electron process with splash screen
├── assets/ # Application assets (icons, splash image)
│ ├── apple2ts/ # Default assets for Apple2TS
│ ├── noxarchaist/ # Sample branded assets for Nox Archaist
├── .github/workflows/ # CI/CD automation for releases
├── forge.config.ts # Electron Forge configuration with code signing
├── vite.*.config.ts # Vite build configurations
├── package.json # Project dependencies and scripts
└── index.html # Main application HTML
- Electron: Desktop application framework
- TypeScript: Type-safe JavaScript development
- Vite: Fast build tool and development server
- Electron Forge: Application packaging and distribution
- GitHub Actions: Automated CI/CD with cross-platform builds and code signing
See assets/README.md for details on creating a branded version of apple2ts-app, for Nox Archaist for example.
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Follow TypeScript best practices
- Use ESLint for code formatting
- Test your changes on multiple platforms when possible
- Update documentation as needed
See the "Update CHANGELOG" section in the apple2ts README.
To create or update the changelog, run the script:
# Extract version from package.json
VERSION=$(node -p "require('./package.json').version")
# Generate changelog with the version from package.json
github_changelog_generator --token $GITHUB_TOKEN -u ct6502 -p apple2ts-app --future-release "v$VERSION"
git add .
git commit -m "Update CHANGELOG for v$VERSION"
# Now create and push the tag
git tag -a "v$VERSION" -m"v$VERSION"
git push --follow-tagsThis project is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. See the LICENSE file for details.
- Apple2TS - The original TypeScript Apple II emulator
- Electron - The desktop application framework used
Chris Torrence - ct6502
If you encounter any issues or have questions, please open an issue on the GitHub repository.