Read Medium articles without a subscription
Your paywall breakthrough for Medium!
Freedium Mobile is an Android application that bypasses Medium's paywall, allowing you to read member-only articles for free. The app redirects Medium articles through Freedium.cfd to provide unrestricted access.
Built with Flutter and featuring Material You design, Freedium Mobile offers a native reading experience with dynamic theming and dark mode support.
screen-20251004-182443.mp4
- Paywall Bypass - Read any Medium article without hitting the paywall or needing a subscription
- Share Integration - Share Medium articles directly to Freedium from Chrome, Twitter, or any browser
- Clipboard Detection - Automatically detects Medium URLs in your clipboard for quick access
- Material You Theming - Dynamic color schemes that adapt to your Android 12+ wallpaper
- Dark Mode - Comfortable reading with automatic or manual theme switching
- Font Size Control - Adjust text size for better readability
- Auto-Update Checker - Get notified when new versions are available
- Go to the Releases page
- Download the latest APK file
- Install on your Android device
- Launch the app and start reading!
Note: You may need to enable "Install from unknown sources" in your device settings.
Method 1: Paste URL (Recommended)
- Copy a Medium article URL
- Open Freedium Mobile
- The URL will be auto-detected in the input field
- Tap "Read Article"
Method 2: Share from Browser or App
- Open a Medium article in any browser or app
- Tap the Share button
- Select "Freedium" from the share menu
- Article opens automatically
Method 3: Manual Entry
- Open Freedium Mobile
- Type or paste any Medium article URL
- Tap "Read Article"
- Flutter SDK 3.27.0 or higher
- Dart SDK 3.10.0 or higher (included with Flutter)
- Android Studio or VS Code with Flutter extensions
- Git
# Clone the repository
git clone https://github.com/AmanSikarwar/freedium_mobile.git
cd freedium_mobile
# Install dependencies
flutter pub get
flutter run# Debug build
flutter run
# Release APK
flutter build apk --release
# Release APK with obfuscation (recommended for production)
flutter build apk --release --obfuscate --split-debug-info=obfuscate
# Format code
dart format .
# Analyze code
flutter analyzeOutput location:
build/app/outputs/flutter-apk/
lib/
├── app.dart # App widget, intent handling, global navigator
├── main.dart # Entry point
├── core/
│ ├── constants/
│ │ └── app_constants.dart # freediumUrl, urlRegExp, appVersion
│ ├── services/
│ │ ├── clipboard_service.dart # Clipboard URL detection
│ │ ├── font_size_service.dart # Font size persistence
│ │ ├── intent_service.dart # Share-to-app handling
│ │ ├── theme_mode_service.dart # Theme persistence
│ │ └── update_service.dart # GitHub release checker
│ └── theme/
│ ├── app_theme.dart # Material You theme config
│ ├── theme_provider.dart # Dynamic color provider
│ └── util.dart # Theme utilities
└── features/
├── home/
│ ├── application/
│ │ └── home_provider.dart # Home state management
│ └── presentation/
│ ├── home_screen.dart
│ └── widgets/
└── webview/
├── application/
│ ├── theme_injector_service.dart # CSS injection for theming
│ └── webview_provider.dart # WebView controller & state
├── domain/
│ └── webview_state.dart
└── presentation/
├── webview_screen.dart
└── widgets/
The app follows a feature-based architecture with Riverpod 3.0 for state management:
- Features - Organized by functionality (
home,webview) - Application - Riverpod Notifiers and business logic
- Presentation - UI screens and widgets
- Domain - State classes with
copyWith() - Core - Shared services, constants, and theming
- State Management: Riverpod 3.x Notifier API (not StateNotifier)
- Theme Injection: Flutter → CSS variables → WebView DOM
- Intent Handling: Two-phase (initial + streaming) with duplicate prevention
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes following the existing code style
- Test your changes on Android devices
- Commit with clear messages (
git commit -m 'Add amazing feature') - Push to your fork (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow the existing code architecture and patterns
- Use Riverpod 3.0 Notifier API for state management
- Always use
copyWith()for state updates - Use
debugPrint()instead ofprint()for logging - Test changes thoroughly on Android devices
- Keep pull requests focused on a single feature or fix
Found a bug? Open an issue with:
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
- Device model and Android version
This project is licensed under the MIT License. See the LICENSE file for details.
- Report bugs: GitHub Issues
- Star this repo if you find it useful!
Made with ❤️ by Aman Sikarwar
Keywords: Medium paywall bypass, read Medium free, Medium article reader, Android Medium app, Flutter app, open source, Medium subscription alternative, paywall remover, free Medium access