A modern video encoding GUI built with Nuxt 3 and Electron, designed for efficient anime video processing.
- π¬ Multi-format video encoding (MP4, MKV, AVI, MOV)
- βοΈ Customizable encoding profiles
- π Batch processing with queue management
- π¨ Modern dark/light theme interface
- π Real-time encoding progress tracking
- πΎ Profile management with custom settings
- Node.js 18+
- pnpm (recommended package manager)
# Install dependencies
pnpm install
# Start development server
pnpm dev# Build for production
pnpm build
# Build only Nuxt app
pnpm build:nuxt
# Build only Electron app
pnpm build:electronThe project includes automated CI testing that runs on every commit to main and all pull requests:
- Linux Build: Tests on Ubuntu with AppImage, Deb, and RPM packages
- Windows Build: Tests on Windows with NSIS installer and portable builds
- macOS Build: Tests on macOS with DMG and universal binary
Branch Protection: All three platform builds are required to pass before any pull request can be merged into the main branch.
This project uses automated versioning and releases with commit-and-tag-version. See Release Process Documentation for details.
# Interactive release script (Unix/macOS)
./scripts/release.sh
# Or use NPM scripts (cross-platform)
pnpm run release:patch # Bug fixes
pnpm run release:minor # New features
pnpm run release:major # Breaking changes
# Or use Node.js scripts
pnpm run version:patch
pnpm run version:minor
pnpm run version:majorWhen you push a version tag, GitHub Actions automatically:
- Builds executables for Windows, macOS, and Linux
- Creates a GitHub release with downloadable assets
- Generates changelog from conventional commits
If a release build fails, you can easily retry it on the latest commit:
# Retry release on latest commit (recreates tag)
pnpm retry-release v1.2.3
# Force retry even if tag exists
pnpm retry-release v1.2.3 forceAlternative methods:
- Use the "Retry Release" workflow in GitHub Actions (manual dispatch)
- Use the "Build and Release" workflow with manual dispatch and specify a tag
Why retry? When GitHub Actions reruns fail from the UI, it uses the old commit. This tool recreates the tag on the latest commit, ensuring you get the newest code in your release.
This project uses GitHub Actions to automatically build multiarch executables when you push a version tag.
Windows:
- x64 (64-bit Intel/AMD)
- ia32 (32-bit Intel/AMD)
macOS:
- Universal Binary (Intel + Apple Silicon)
Linux:
- x64 (64-bit Intel/AMD)
- arm64 (ARM64/AArch64)
- Windows:
.exe(NSIS installer),.msi(Windows Installer),.zip(portable) - macOS:
.dmg(disk image),.zip(portable) - Linux:
.AppImage(portable),.deb(Debian/Ubuntu),.rpm(RHEL/SUSE),.tar.gz(archive)
- Update the version in
package.json - Create and push a version tag:
git tag v1.0.0 git push origin v1.0.0
- The GitHub Actions workflow will automatically:
- Build for all supported platforms and architectures in parallel
- Create a GitHub release with generated release notes
- Attach all built executables as downloadable assets
You can manually trigger test builds without creating a release using the "Test Build" workflow in the GitHub Actions tab.
This template is based on the official template of Nuxt. You can find it in the clues below.
π https://github.com/nuxt/cli/blob/v3.11.1/src/commands/init.ts#L11-L13
This quick-start is only a combination of nuxt and electron-vite . You can refer to their official docs separately to learn more.