FilePod
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.
Table of Contents
- Features
- Screenshots
- Requirements
- Installation
- Getting Started
- Application Structure
- Contributing
- Licence
Features
-
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.
Screenshots
Requirements
- Flutter SDK:
>=3.10.0 - Dart SDK:
>=3.0.0 <4.0.0
Dependencies
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
Installation
Clone the Repository
git clone https://github.com/anusii/filepod.git
cd filepod
Install Dependencies
flutter pub get
Getting Started
Running the Application
# macOS
flutter run -d macos
# Linux
flutter run -d linux
# Windows
flutter run -d windows
# Web
flutter run -d chrome
Using the Makefile
A 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 prep
Application Structure
lib/
├── 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
Key Components
main.dart
Application entry point. Initialises Flutter bindings, configures
the window manager for desktop platforms, and launches the App()
widget.
app.dart
Root widget implementing SolidThemeApp with theme configuration
and SolidLogin for Solid server authentication. After login, the
AppScaffold is displayed.
app_scaffold.dart
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
home.dart
Welcome page displaying a feature overview and usage guidance.
screens/all_pod_files_page.dart
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.
Contributing
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.
Reporting Issues
- Bug reports: Use the bug report template.
- Feature requests: Use the feature request template.
Development Setup
git clone https://github.com/anusii/filepod.git
cd filepod
flutter pub get
flutter run -d macos
Licence
Copyright (C) 2026, Software Innovation Institute, ANU.
Licensed under the GNU General Public License, Version 3. See LICENSE for details.
Authors
- Graham Williams
- Tony Chen
For more information about Solid and PODs, visit solidproject.org.
Additional Information
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>
Libraries
- app
- The primary App widget.
- app_scaffold
- The application scaffold configuration.
- constants/app
- App-wide constants.
- home
- The application's home page.
- main
- FilePod - Solid File Browser Application
- screens/all_pod_files_page
- All POD Files page - Displays all folders on the POD from the root.
- utils/is_desktop
- Check if we are running a desktop (and not a browser).