Build overview
Fylepad supports multiple build targets:- Web build - Static site for web deployment
- Desktop build - Native applications for Windows, macOS, and Linux
- PWA - Progressive Web App with offline support
Web builds
Production build
To build the web version for production deployment:- Runs Nuxt’s build process
- Generates optimized JavaScript and CSS bundles
- Outputs to
.output/public/directory
Static site generation
For static hosting (recommended for web deployments):dist/ directory that can be deployed to:
- Vercel, Netlify, or Cloudflare Pages
- Any static hosting service
- CDN for global distribution
Preview build
To preview the production build locally:http://localhost:3000 for testing before deployment.
Desktop builds
Building for your platform
To build the desktop application for your current operating system:- Runs
pnpm installto ensure dependencies are up to date - Generates the static web assets via
pnpm run generate - Compiles the Rust backend
- Creates platform-specific installers
The first build can take 10-15 minutes as Rust compiles all dependencies. Subsequent builds are much faster (2-3 minutes).
Build outputs
Build artifacts are created insrc-tauri/target/release/bundle/:
Debug builds
For debugging purposes, you can create a debug build:- Include debugging symbols
- Are larger in file size
- Provide better error messages
- Are not optimized for performance
Cross-platform builds
Building for other platforms
Tauri requires building on the target platform (or using GitHub Actions). You cannot build macOS apps on Windows, for example. For cross-platform releases, use GitHub Actions or CI/CD:- Set up runners for each platform (Windows, macOS, Linux)
- Run
pnpm tauri:buildon each runner - Collect artifacts from each build
Platform-specific considerations
macOS:- Unsigned apps will require users to run
xattr -c fylepad.appon Apple Silicon - For distribution, you need an Apple Developer account for code signing
- Build produces both Intel and Apple Silicon versions
- MSI installer includes auto-update support
- May need to configure code signing for Windows Defender
- DEB package for Debian/Ubuntu-based distributions
- Users on other distros can build from source
Icon generation
To regenerate application icons from the source image:icons/32x32.png,128x128.png, etc. (PNG)icons/icon.ico(Windows)icons/icon.icns(macOS)
Build configuration
Tauri build settings
Build configuration is insrc-tauri/tauri.conf.json:
- Bundle identifier
- Version number
- Target formats
- Code signing settings
Nuxt build settings
Nuxt build configuration innuxt.config.ts:
Optimizing builds
Reducing bundle size
-
Analyze bundle - Use Vite’s build analysis:
-
Tree-shaking - Ensure you’re only importing what you need:
- Code splitting - Nuxt automatically splits routes and components
Build performance
- Use
pnpminstead ofnpmfor faster installs - Enable Rust incremental compilation for faster rebuilds
- Cache
node_modulesand Cargo build artifacts in CI
Publishing releases
Creating a release
- Update version in
package.jsonandsrc-tauri/tauri.conf.json - Build for all platforms
- Test each platform build
- Create GitHub release with:
- Version tag (e.g.,
v3.0.0) - Release notes
- Attached binaries for each platform
- Version tag (e.g.,
Version numbering
Fylepad follows semantic versioning (semver):- Major (3.x.x) - Breaking changes
- Minor (x.1.x) - New features, backwards compatible
- Patch (x.x.1) - Bug fixes
Troubleshooting builds
Build fails with Rust compilation errors
Build fails with Rust compilation errors
Ensure you have the latest Rust toolchain:Clear Cargo cache and rebuild:
Web build works but desktop build fails
Web build works but desktop build fails
Check that Verify that the
pnpm generate completes successfully:dist/ directory contains the built files before running pnpm tauri:build.Built app is very large
Built app is very large
- Ensure you’re using
pnpm tauri:build(not the debug build) - Check that unused dependencies are removed from
package.json - Verify Rust is compiling in release mode (not debug)
macOS app won't open (unsigned)
macOS app won't open (unsigned)
For unsigned apps on macOS, users need to run:For distribution, obtain an Apple Developer account and configure code signing.
Next steps
Setup
Set up your development environment
Architecture
Learn about the project structure