A Solid file browser application built with Flutter and SolidUI. FilePod allows users to browse, upload, and download files stored on their personal online data store (POD), providing a familiar file-management experience for the decentralised web.
See the AU Solid Community page for apps utilising the Solid ecosystem.
- Features
- Screenshots
- Requirements
- Installation
- Getting Started
- Application Structure
- Contributing
- Licence
-
Solid POD File Browsing — Navigate folders and files stored on your Solid POD with an intuitive, responsive interface.
-
File Upload — Upload files from your local device directly to your POD.
-
File Download — Download files from your POD to your local device.
-
All POD Files View — Browse every folder and file on your POD from the root, giving a complete overview of your stored data.
-
Solid Authentication — Secure login against a Solid server using the
SolidLoginwidget. -
Security Key Management — Manage encryption keys for private data stored on your POD.
-
Responsive Navigation — Automatically switches between a vertical navigation rail (wide screens) and a collapsible navigation drawer (narrow screens).
-
Theme Switching — Toggle between light, dark, and system theme modes.
-
Cross-Platform — Runs on macOS, Linux, Windows, Android, iOS, and the Web.
- Flutter SDK:
>=3.10.0 - Dart SDK:
>=3.0.0 <4.0.0
FilePod relies on the following key packages:
solidui— UI components for Solid applicationssolidpod— Solid POD integrationshared_preferences— Local storage for settingsmarkdown_tooltip— Markdown-enabled tooltipswindow_manager— Desktop window management
git clone https://github.com/anusii/filepod.git
cd filepodflutter pub get# macOS
flutter run -d macos
# Linux
flutter run -d linux
# Windows
flutter run -d windows
# Web
flutter run -d chromeA Makefile is provided for common development tasks:
# Run on macOS
make macos
# Run on Linux
make linux
# Run code analysis
make analyze
# Format code
make format
# Full preparation for a pull request
make preplib/
├── main.dart # Main entry point
├── app.dart # Root App widget with SolidThemeApp and SolidLogin
├── app_scaffold.dart # SolidScaffold configuration (menu, appBar, statusBar)
├── home.dart # Home page widget
├── constants/
│ └── app.dart # Application-wide constants
├── screens/
│ └── all_pod_files_page.dart # Browse all POD files from root
└── utils/
└── is_desktop.dart # Desktop platform detection utility
Application entry point. Initialises Flutter bindings, configures
the window manager for desktop platforms, and launches the App()
widget.
Root widget implementing SolidThemeApp with theme configuration
and SolidLogin for Solid server authentication. After login, the
AppScaffold is displayed.
Configures the SolidScaffold with:
- Menu items — Home, Files, and All POD Files navigation
- App bar — Title, version information, and file browser action
- Status bar — Server info, login status, and security key status
- About dialogue — Application information and links
- Theme toggle — Light/dark/system mode switching
- Logout — Secure session termination
Welcome page displaying a feature overview and usage guidance.
A dedicated page that browses all folders and files on the POD from the root, providing a complete view of the user's stored data.
We welcome contributions! Please follow these guidelines:
- Fork the repository and create a feature branch from
dev. - Follow the coding style guidelines.
- Run
make prepbefore submitting a pull request. - Submit a pull request using the provided PR template.
- Bug reports: Use the bug report template.
- Feature requests: Use the feature request template.
git clone https://github.com/anusii/filepod.git
cd filepod
flutter pub get
flutter run -d macosCopyright (C) 2026, Software Innovation Institute, ANU.
Licensed under the GNU General Public License, Version 3. See LICENSE for details.
- Graham Williams
- Tony Chen
For more information about Solid and PODs, visit solidproject.org.
The source code can be accessed via the GitHub repository. You can also file issues at GitHub Issues. The authors of the package will respond to issues as best we can.
Time-stamp: <Friday 2026-03-13 09:14:41 +1100 Graham Williams>

