The best app to keep track of your wishes and find the perfect gift for a friend, now open source!
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Leonardo Mantovani b9aedfb095 Bug fixing:
- Fixed a bug while searching users by name
- Fixed UI bugs for devices with a big default font size
- Fixed a bug while dismissing the migration alert dialog
6 months ago
.reuse New Database strategy to reduce loading times 6 months ago
LICENSES New Database strategy to reduce loading times 6 months ago
android Final touches: 7 months ago
assets Bug Fixing: 8 months ago
functions New Database strategy to reduce loading times 6 months ago
lib Bug fixing: 6 months ago
linux Fully implemented Navigator 2.0 using GoRouter 10 months ago
metadata/en-US Added fastlane metadata to publish on F-Droid 6 months ago
web Bug Fixing: 8 months ago
.gitignore Added fastlane metadata to publish on F-Droid 6 months ago
.metadata Bug Fixing: 8 months ago
.metadata.license Code Cleanup 1 year ago Final touches: 7 months ago
analysis_options.yaml Code Cleanup 1 year ago
appwrite.json New Database strategy to reduce loading times 6 months ago
appwrite.json.license New image-fetching mechanics for wishes' link previews 8 months ago
pubspec.yaml Bug fixing: 6 months ago

Presents: A Desired Surprise

Presents Logo Landscape

ReadMe Navigation:

  1. What is Presents
  2. Features
  3. Roadmap
  4. Technology Stack
  5. Contributing Guidelines
  6. Copyright and License

What is Presents

Presents is the ultimate social-wishlist app that you didn't know you needed. Why? Because with that one single app you will solve 3 huge problems:

  1. Keeping losing the papers where you had written down the super cool product you saw and definitely wanted
  2. Not knowing what to gift to a friend/relative but preferring to avoid the pathetic question: “hey what do you want as a gift?”
  3. Having to think many different answers for the pathetic question above (one for each relative/friend who asks you before Christmas/your birthday/…)

So what are you waiting for? Download the app, share it with your friends and say goodbye to the Birthday-Gift-Panic!


  • Wishlist synchronized across all your devices where, for each Wish, you can add:
    • A title (required, for example New Hoodie)
    • An estimated price (required)
    • A link to a product page (which will be used to fetch a preview image too)
    • A "priority level" (the wishes with a higher priority will be displayed on top of the wishlist)
  • Profile page for all users where you can see user's:
    • Full name
    • Username
    • Profile Picture
    • Birth Date
    • An About section white some information about his/her personality
  • Wishlists of every user where you can see their wishes and reserve them to be the only one with that gift (don't worry, the owner of the wishlist won't be able to see which wishes have been reserved)

Some Presents screenshots


  • V2 Android application:
    • New unique look
    • Wishes' URL image preview
    • New FOSS Backend (to replace Firebase)
  • Dark Theme
  • Responsive Design and Web Application
  • Deep links to share users profiles
  • Database Migration from Firebase (version 1) to Appwrite
  • Birthday reminder notification for favorite users
  • Optional “upload image” field for wishes

Why does this repo starts from version 2?

Presents v1 has been published on the Google Play Store on 14th October 2020, and it was using Google Firebase as backend. After about a year from his first release, we decided to re-build it without using any proprietary software in order to protect our users data without having to share them with any third-party company. So we started working on this version 2 (that we decided to make open-source) replacing Firebase with AppWrite.

Technology Stack

This new version of Presents has been completely rewritten, and it's using a FLAW Stack:

Contributing Guidelines

We appreciate all contributions and Pull Requests since we think that cooperation between developers and users is a core part of open-source. However, to ensure that the new code works flawlessly with the old one and share its "style", all Pull Requests will be reviewed by a LezSoft developer before being merged.

If you have any non-code suggestion please open an Issue here on Codeberg so that it will be discussed together with all the Presents community.

If you have any question feel free to reach us by email

Setting up an AppWrite Server for Presents

To test Presents, we suggest to set up a local AppWrite server using a Docker container as explained in Appwrite's Official Documentation. Then, from the AppWrite Web Console, you'll need to create a new project with presents as ID and, from the Project Settings, write down its API Endpoint.

Database setup

  • Create a new database with ID default
  • Inside it, a collection with ID=userData and the following attributes:
    • email (email, required)
    • username (string, required)
    • name (string)
    • birthday (datetime)
    • favUsers (string array)
    • presents (string array)
    • about (string)
    • profilePicId (string)

Storage setup

  • Create a new storage bucket with ID profilePics


  • Create a new function with id image_fetcher both using the web GUI or the Appwrite CLI. The latter method is recommended and consists in few easy steps:
    • Install the AppWrite CLI following the official documentation
    • Configure it with your AppWrite server endpoint using the command appwrite client --endpoint <YOUR_API_ENDPOINT>
    • Log in to your AppWrite server using the command appwrite login
    • Deploy the function (which is already present in this repository) using the command appwrite deploy function and selecting image_fetcher

NOTE: Different values can be used for the Appwrite IDs, but then they must be changed in utils/constants.dart and appwrite.json too

This project has been developed by LezSoft. All the rights on the Presents brand (with its name and logo) are reserved.

Presents is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Presents is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.