I'm happy to announce Yopass 12.0.0, featuring a completely rewritten modern frontend and enhanced configurability!
๐ Major Features
โจ Complete Frontend Rewrite
- Modern Technology Stack: Complete rewrite of the frontend using Tailwind CSS and DaisyUI components for improved performance and maintainability
- Enhanced User Experience: Cleaner, more intuitive interface with improved accessibility and responsive design
- New frontend configuration system
๐ Internationalization Support
- Multi-language Support: Built-in internationalization using react-i18next
- Language Switcher: Dynamic language switching in the UI (currently supports English and Swedish)
- Browser Language Detection: Automatic language detection based on browser preferences
- Extensible Translation System: Easy to add new languages via JSON translation files
๐จ Dark Mode & Theming
- Theme Toggle: Native dark/light mode support with persistent user preference
- Modern Design System: Consistent design language using DaisyUI components
- Improved Visual Design: Enhanced styling with better contrast and readability
๐งช Comprehensive Testing
- Playwright Integration: Modern end-to-end testing framework replacing Cypress
- Extensive Test Coverage: Comprehensive test suites for all major functionality
- Cross-browser Testing: Tests run across Chrome, Firefox, and Safari
- CI/CD Integration: Automated testing in GitHub Actions
๐ง New Configuration Options
Yopass 12.0.0 introduces a powerful dynamic configuration system that allows the frontend to adapt its behavior based on server-side settings. All configuration is now delivered via the /config API endpoint, enabling administrators to control frontend features without requiring frontend rebuilds.
--disable-upload / DISABLE_UPLOAD
- Purpose: Completely disables file upload functionality
- Server Impact: Removes all /file endpoints from the server
- Frontend Impact: Hides upload buttons, routes, and related UI elements
- Use Case: Ideal for deployments that only need text secret sharing
- Default: false (uploads enabled)
--prefetch-secret / PREFETCH_SECRET
- Purpose: Controls whether secrets are prefetched for one-time viewing optimization
- Server Impact: Enables/disables /secret/{id}/status and /file/{id}/status endpoints
- Frontend Impact:
- When enabled: Shows prefetch information and one-time download warnings
- When disabled: Secrets are fetched immediately without status checks
- Use Case: Disable for improved privacy (no metadata requests) or simplified UX
- Default: true (prefetching enabled)
--disable-features / DISABLE_FEATURES
- Purpose: Hides the features section on the homepage
- Server Impact: No server-side changes
- Frontend Impact: Removes the features showcase section from the main page
- Use Case: Clean, minimal interface for corporate deployments
- Default: false (features section visible)
--no-language-switcher / NO_LANGUAGE_SWITCHER (New in 12.0.0)
- Purpose: Hides the language switcher from the navigation bar
- Server Impact: No server-side changes
- Frontend Impact: Removes language selection dropdown from the UI
- Use Case: Single-language deployments or custom language handling
- Default: false (language switcher visible)
๐ Dynamic Configuration Loading
The frontend automatically:
- Fetches configuration on startup from /config endpoint
- Adapts the UI based on server settings without requiring rebuilds
- Caches configuration for improved performance
- Gracefully degrades with default settings if config loading fails
๐ Environment Variable Support
All configuration flags support environment variables with _ replacing -:
- DISABLE_UPLOAD=true
- PREFETCH_SECRET=false
- DISABLE_FEATURES=true
- NO_LANGUAGE_SWITCHER=true
๐ Technical Improvements
๐ Project Structure
The frontend has been completely reorganized:
- website/: New modern frontend (Tailwind CSS + DaisyUI)
- legacy-site/: Previous Material-UI frontend (will be removed in the future)
๐ Migration Notes
- The new frontend maintains full API compatibility with existing deployments
- All existing configuration options continue to work