notepod

Private and Shareable Notes

Flutter Dart

GitHub GitHub License Flutter Version Last Updated GitHub commit activity (dev) GitHub Issues

Snap

NotePod is a solidui based app to support the secure and private storage and sharing of personal notes on your own encrypted personal online datastore (Pod) hosted in your Data Vault on a Solid Server. The app was developed by the ANU Software Innovation Institute and written by Anushka Vidanage, Graham Williams, and Jessica Moore.

If you appreciate the app then please show some ❤️ and star the GitHub Repository to support the project. You can install the app from different repositories including SnapCraft for Linux.

The latest version of the app can be run online at notepod.solidcommunity.au with no installation required, or downloaded and installed for your platform from the Solid Community AU repository:

Contributions are welcome. Visit github to submit an issue or, even better, fork the repository yourself, update the code, and submit a Pull Request. The app is implemented in Flutter using solidpod for Flutter to manage the Solid Pod interactions. Thank you.

Introduction

NotePod utilises Solid Pods to read, write, and share encrypted notes stored on your personal online datastore (Pod) hosted on a Solid Server. You control which server your notes (in standard Markdown) are stored and the app ensures they are encrypted on that server so the server host can not access your actual notes. Because the data storage conforms to the Solid protocol other apps can also interact with your notes, under your control. You maintain full control over your data, not the app developer collecting and hoarding your data, nor the host where you store your data.

This first beta release (version 0.1.0) is functional and usable. Use cases include writing quick notes while on the move to come back to later on, capturing shopping lists that can be shared with your family and called up the next time anyone of the family is at the shops, and much more.

The current notepod code base includes a lot of low level code that is being migrated to the solidpod package for Flutter. Once migrated it will be even easier to build your first Pods-based Flutter app.

A simple example of a shopping list, available anywhere, anytime.

Desktop version:

Mobile Phone version:

Obtaining a Pod

To use the app you will need your own Pod hosted on a Solid server. To try it out you can get yourself a Pod at our experimental server, the Australian Solid Community Pod Server or any one of the available Pod Providers world wide.

Online Demo

Once you have your own Pod visit https://notepod.solidcommunity.au and login to your Pod. Be sure to update the default Solid Server listed on the login page. Write and save a few notes, edit saved notes, and maybe share some notes with other users. Access your notes from your desktop or mobile device. That’s it! Simple but useful.

Install the App Locally

You can install the app onto your own device from your device’s software repository or directly by using one of our installers. The app will then run locally on your own device rather than hosted on the web server. The installers are available for all platforms from github.

App Startup

On starting up the app you will see the login screen where a user’s WebID is to be entered. The app itself does not know your login details. That is handled by a remote Identify Provider of your choice.

login

Contribute to the NotePod Flutter App

As a developer you can run the app directly from its software source code yourself with a little setup. You can then modify the app to suit your own needs, or to add functionality that you may like to contribute back to the community.

To begin you will install Flutter following the instructions for your preferred platform at Flutter Dev Getting Started

After setting up Flutter run flutter doctor to check your setup, and then run flutter devices to see which devices you have configured:

flutter devices
Found 4 connected devices:
  iPhone 15 Pro Max (mobile)      • 8978937B-AC64-44B8-8B26-CA6142091678 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-17-0 (simulator)
  iPad (10th generation) (mobile) • 6B849753-743F-4F66-8F46-0396CA4BCFBE • ios            • com.apple.CoreSimulator.SimRuntime.iOS-17-0 (simulator)
  macOS (desktop)                 • macos                                • darwin-arm64   • macOS 14.1.2 23B92 darwin-arm64
  Chrome (web)                    • chrome                               • web-javascript • Google Chrome 120.0.6099.62

You can then git clone https://github.com/anusii/notepod to clone a local copy of the software source code. You can run the notepod app in debug mode on your chosen device by specifying enough of the device name to be uniquely identifiable. E.g. for chrome use:

flutter run -d chrome

When you have completed the setup of your platform, you are ready for the NotePod Getting Started exercises where you can create a Pod, make and share notes.

Extra setup for MacOS

Building and signing the app on MacOS requires, additional configuration in Xcode. Open the project macos folder in Xcode with

cd notepod/macos
xed .

Select Signing & Capabilities. In Team, choose Add an Account and sign in with your Apple ID account. In Network, select Incoming Connections (Server) and Outgoing Connections (Client). The latter is needed to login to your Pod. Keychain access capability is also required to save authorisation and encryption key credentials to secure storage.

Edit macos/Runner/DebugRunner.entitlements to add:

 <key>keychain-access-groups</key>
    <array/>

Edit macos/Runner/DebugProfile.entitlements and macos/Runner/Release.entitlements to add:

 <array>
        <string>[$DEVELOPMENT_TEAM].[$PRODUCT_BUNDLE_IDENTIFIER]</string>
    </array>

where $DEVELOPMENT_TEAM found in macos/Runner.xcodeproj/project.pbxproj and $PRODUCT_BUNDLE_IDENTIFIER found in macos/Runner/Configs/AppInfo.xcconfig.

Extra setup for iOS

For iOS, you will also need to set the deployment platform to match the iOS version on your simulator.

Open the Simulator app, select your simulated device with File -> Open Simulator -> pick a device.

open -a Simulator

Then in the simulated device check the iOS version number by clicking on the Settingsapp and going to General -> About to look up the iOS.

Open the project iOS folder in Xcode and add the iOS version used by your simulator.

cd notepod/ios
xed .

Select General. In iOS, change it to match the Simulator iOS version, e.g. v17.0.

Useful resources

Packages:

These dart packages are under construction to support the development of Pods-based apps with flutter

https://notepod.vincenttunru.com/

Time-stamp: <Tuesday 2025-10-28 20:35:57 +1100 Graham Williams>