Immich - Self-hosted Photo backup solution directly from your mobile phone

Last update: Jun 28, 2022

IMMICH

Self-hosted Photo backup solution directly from your mobile phone.

Note

This project is under heavy development, there will be continous functions, features and api changes.

!! NOT READY FOR PRODUCTION! DO NOT USE TO STORE YOUR ASSETS !!

Development

You can use docker compose for development, there are several services that compose Immich

  1. The server
  2. PostgreSQL
  3. Redis
  4. Nginx

Populate .env file

Navigate to server directory and run

cp .env.example .env

Then populate the value in there.

To start, run

docker-compose -f ./server/docker-compose.yml up

To force rebuild node modules after installing new packages

docker-compose -f ./server/docker-compose.yml up --build -V

The server will be running at http://your-ip:2283 through Nginx

Register User

Use the command below on your terminal to create user as we don't have user interface for this function yet.

curl --location --request POST 'http://your-server-ip:2283/auth/signUp' \
--header 'Content-Type: application/json' \
--data-raw '{
    "email": "[email protected]",
    "password": "password"
}'

Run mobile app

Android

Download apk in release tab and run on your phone. You can follow this guide on how to do that

iOS

  • Get a MacOS
  • Download and setup Flutter development environment
  • Navigate to mobile folder
  • Run with release build command for best performance.
flutter run --release

Known Issue

TensorFlow doesn't run with older CPU architecture, it requires CPU with AVX and AVX2 instruction set. If you encounter the error illegal instruction core dump when running the docker-compose command above, check for your CPU flags with the command and make sure you see AVX and AVX2. Otherwise, switch to a different VM/desktop with different architecture.

more /proc/cpuinfo | grep flags

If you are running virtualization in Promox, the VM doesn't have the flag enable.

You need to change the CPU type from kvm64 to host under VMs hardware tab.

Hardware > Processors > Edit > Advanced > Type (dropdown menu) > host

GitHub

https://github.com/alextran1502/immich
Comments
  • 1. 500 Unexpected token < in JSON at position 0 SyntaxError: Unexpected token < in JSON at position 0

    Running the docker compose thru Portainer, everyting starts up, I can see that ngnix is running at http://xxxx.xxx.xx.xx:2283/

    But get the following issue when trying to access : http://xxxx.xxx.xx.xx:2285/

    500 Unexpected token < in JSON at position 0 SyntaxError: Unexpected token < in JSON at position 0

    in the logs from the web container

    SyntaxError: Unexpected token < in JSON at position 0 at JSON.parse () at Proxy. (file:///usr/src/app/build/server/index.js:1586:29) at processTicksAndRejections (node:internal/process/task_queues:96:5) at async load (file:///usr/src/app/build/server/entries/pages/index.svelte.js:6:25) at async load_node (file:///usr/src/app/build/server/index.js:1605:14) at async respond$1 (file:///usr/src/app/build/server/index.js:1844:20) at async resolve (file:///usr/src/app/build/server/index.js:2182:105) at async Object.handle (file:///usr/src/app/build/server/chunks/hooks-35f923f5.js:7:12) at async respond (file:///usr/src/app/build/server/index.js:2139:22) at async Array.ssr (file:///usr/src/app/build/handler-edaaddc2.js:841:3)

    Additional context

    Is it me that are doing something wrong here or is it broken?

    Reviewed by wavesswe at 2022-05-22 00:18
  • 2. [BUG] Issue Building container docker-compose

    Describe the bug Issue with compose running on 3.8 under docker-composer.yml but in the file if I change it the docker-compose progresses further but still fails (see the 2nd screenshot)

    Task List

    • [x] I have read thoroughly the README setup and installation instructions.

    To Reproduce Steps to reproduce the behavior:

    1. Copy the contents of docker-compose.yml file from immich (code) and paste into a docker-compose.yml file under /var/lib/docker/
    2. Run the line docker-compose -f /var/lib/docker/docker-compose.yml up

    Expected behavior Expecting it to run the build in the container

    Screenshots 2022-06-25 00_05_08-Window 2022-06-25 00_08_27-Window

    Desktop (please complete the following information):

    • OS: Ubuntu 20.04 LTS

    Additional context Add any other context about the problem here.

    Reviewed by athornfam2 at 2022-06-25 04:09
  • 3. Build does not work

    .env file:

    # STAGE
    NODE_ENV=development
    
    # Database
    DB_USERNAME=postgres
    DB_PASSWORD=postgres
    DB_DATABASE_NAME=immich
    
    # Upload File Config
    UPLOAD_LOCATION=/mnt/data/Immich
    
    # JWT SECRET
    JWT_SECRET=mNQXf1R6S1m7jwvwW82e
    
    # MAPBOX
    ## ENABLE_MAPBOX is either true of false -> if true, you have to provide MAPBOX_KEY
    ENABLE_MAPBOX=false
    MAPBOX_KEY=
    

    UPLOAD_LOCATION exists:

    [email protected]:~/immich/immich-1.4.0-dev# ls -l /mnt/data/Immich/
    total 0
    
    [email protected]:~/immich/immich-1.4.0-dev# docker-compose -f ./docker/docker-compose.yml up --build -V
    WARNING: The UPLOAD_LOCATION variable is not set. Defaulting to a blank string.
    WARNING: The DB_PASSWORD variable is not set. Defaulting to a blank string.
    WARNING: The DB_USERNAME variable is not set. Defaulting to a blank string.
    WARNING: The DB_DATABASE_NAME variable is not set. Defaulting to a blank string.
    Building immich_microservices
    ERROR: forbidden path outside the build context: ../microservices/Dockerfile ()
    

    I dont know why the warnings appear, altough a .env file exists and the variables are filled:

    [email protected]:~/immich/immich-1.4.0-dev# ls -la docker/.env
    -rw-rw-r-- 1 root root 327 Mar 29 23:44 docker/.env
    
    Reviewed by comfreak89 at 2022-03-29 21:50
  • 4. immich-microservices Container pinning CPU at 100%

    Describe the bug After backing up all photos from my phone, the Microservices container runs at 100% CPU. RAM usage is negligible. The photo library is only 34 images, and the CPU is still pinned 14 hours after initial sync.

    Task List Running in a VM on Proxmox, one of many other docker apps running. Photos are synced to a directory on my NAS (seperate device). CPU is a Interl J4205 (4 cores) and 6GB RAM has been allocated.

    To Reproduce Unknown

    Desktop (please complete the following information):

    • OS: Ubuntu 22.04 LTS + Docker
    Reviewed by darrylgibbs at 2022-06-09 22:32
  • 5. iOS app crashes during upload

    App crashes occasionally when uploading long(er) videos, no errors on server side. I have "Share With App Developers" enabled so you might be able to see crash logs but I'm not sure how to collect them myself.

    Reviewed by simonliu99 at 2022-03-16 02:26
  • 6. [BUG] Broken Photos/Storage After Upload Move

    Describe the bug Me again... After getting immich through the default settings installed on the dev/sda partition. I decided to create a new drive through vmware to store more pictures/videos, Images appear broken after move, storage undefined or not correct but storing data in the new location, server/storage offline (fluctuates between)

    Task List

    • [ ] I have read thoroughly the README setup and installation instructions.
    • [ ] If my setup is different, I have included my docker-compose file.
    • [ ] I have included my redacted .env file.
    • [ ] I have included information on my machine, and environment.

    To Reproduce Steps to reproduce the behavior:

    1. Create a new disk assigned to the VM through VMware
    2. Reboot the VM and provision the disk in Linux
    3. Partition the disk for only 1 partition
    4. Mount the directory /immich_data to /dev/sdb1
    5. CD to /var/lib/docker/immich/docker
    6. Change the .env file from last location to the new location /immich_data
    7. Restart Docker docker restart $(docker ps -q)
    8. MV'd existing data to new folder

    Expected behavior I am expecting immich to pick up on the new drive and storage capacity.

    Screenshots 2022-06-26 16_12_39-Window

    Desktop (please complete the following information):

    • OS: VMware - Ubuntu 20.04 LTS Server

    Smartphone (please complete the following information):

    • Device: iPhone 11 Pro Max
    • OS: 15.5
    Reviewed by athornfam2 at 2022-06-26 21:07
  • 7. arm build error (Pi4, aarch64)

    Trying to build the docker-compose.yml, I get this:

                Copying numpy.egg-info to build/bdist.linux-aarch64/wheel/numpy-1.19.3-py3.8.egg-info
                running install_scripts
                Running from numpy source directory.
    ...
                  File "/tmp/pip-build-env-uxfs2b_0/overlay/lib/python3.8/site-packages/wheel/bdist_wheel.py", line 278, in get_tag
                    assert tag in supported_tags, "would build wheel with unsupported tag {}".format(tag)
                AssertionError: would build wheel with unsupported tag ('cp38', 'cp38', 'linux_aarch64')
                [end of output]
          
            note: This error originates from a subprocess, and is likely not a problem with pip.
            ERROR: Failed building wheel for numpy
            Building wheel for cmake (pyproject.toml): started
            Building wheel for cmake (pyproject.toml): finished with status 'error'
            error: subprocess-exited-with-error
          
            × Building wheel for cmake (pyproject.toml) did not run successfully.
            │ exit code: 1
            ╰─> [9 lines of output]
                  File "/tmp/pip-build-env-0shkflic/overlay/lib/python3.8/site-packages/skbuild/setuptools_wrap.py", line 566, in setup
                    cmkr = cmaker.CMaker(cmake_executable)
                  File "/tmp/pip-build-env-0shkflic/overlay/lib/python3.8/site-packages/skbuild/cmaker.py", line 133, in __init__
                    self.cmake_version = get_cmake_version(self.cmake_executable)
                  File "/tmp/pip-build-env-0shkflic/overlay/lib/python3.8/site-packages/skbuild/cmaker.py", line 88, in get_cmake_version
                    raise SKBuildError(
                Traceback (most recent call last):
          
                Problem with the CMake installation, aborting build. CMake executable is cmake
                [end of output]
          
            note: This error originates from a subprocess, and is likely not a problem with pip.
            ERROR: Failed building wheel for cmake
          Failed to build numpy cmake
          ERROR: Could not build wheels for numpy, cmake, which is required to install pyproject.toml-based projects
          [end of output]
      
      note: This error originates from a subprocess, and is likely not a problem with pip.
    error: subprocess-exited-with-error
    
    × pip subprocess to install build dependencies did not run successfully.
    │ exit code: 1
    ╰─> See above for output.
    
    note: This error originates from a subprocess, and is likely not a problem with pip.
    The command '/bin/sh -c pip install --no-cache-dir --upgrade -r /code/requirements.txt' returned a non-zero code: 1
    ERROR: Service 'immich_tf_fastapi' failed to build : Build failed
    
    Reviewed by arminus at 2022-03-19 11:20
  • 8. [BUG] Trouble setting up on Rpi4

    My Setup I have a raspberry pi 4 8gb running on raspi os buster and I'm trying to install immich on docker.

    Describe the bug When I install Immich on my raspberry 4 in docker, I get a fatal error that does not allow the server to be accessible.

    Task List

    • [x] I have read thoroughly the README setup and installation instructions.
    • [X] If my setup is different, I have included my docker-compose file.
    • [X] I have included my redacted .env file.
    • [X] I have included information on my machine, and environment.

    To Reproduce Steps to reproduce the behavior: Follow the installation instructions by using the env file and the docker-compose file. Then you will have the error.

    Expected behavior What I expected to happen was for me to be able to use the server and set it up for the first time.

    Screenshots If applicable, add screenshots to help explain your problem. Screen Shot 2022-06-18 at 3 16 44 PM

    Desktop (please complete the following information):

    • OS: Raspi Os Buster

    LOGS

    immich_machine_learning Screen Shot 2022-06-18 at 3 18 49 PM

    immich_microservices Screen Shot 2022-06-18 at 3 19 41 PM

    immich_server Screen Shot 2022-06-18 at 3 20 08 PM

    immich_web Screen Shot 2022-06-18 at 3 20 38 PM

    immich_postgres Screen Shot 2022-06-18 at 3 21 03 PM

    immich_redis Screen Shot 2022-06-18 at 3 21 39 PM

    DOCKER_COMPOSE FILE docker-compose.txt I renamed this file to txt to be able to upload. It is usually docker_compose.yml

    .env file env.txt I renamed this file to txt to be able to upload. It is usually .env

    Reviewed by dashielllubsen at 2022-06-18 19:34
  • 9. [BUG] Backup gets stuck on Video

    Describe the bug When backing up my pictures and videos, it almost finishes and gets stuck. I have seen this on multiple videos. Length doesn't seem to matter. They are all from an iPhone 12 Pro Max, 4K, 3840x2160, Dolby Vision, 60 FPS.

    Task List [x] I have read thoroughly the README setup and installation instructions. [x] If my setup is different, I have included my docker-compose file. [x] I have included my redacted .env file.

    ###################################################################################

    Database

    ###################################################################################

    DB_USERNAME=immich DB_PASSWORD= DB_DATABASE_NAME=

    ###################################################################################

    Upload File Config

    ###################################################################################

    UPLOAD_LOCATION=/mnt/immich

    ###################################################################################

    JWT SECRET

    ###################################################################################

    JWT_SECRET=

    ###################################################################################

    MAPBOX

    ####################################################################################

    ENABLE_MAPBOX is either true of false -> if true, you have to provide MAPBOX_KEY

    ENABLE_MAPBOX=false MAPBOX_KEY=

    ###################################################################################

    WEB

    ###################################################################################

    This is the URL of your vm/server where you host Immich, so that the web frontend

    know where can it make the request to.

    For example: If your server IP address is 10.1.11.50, the environment variable will

    be VITE_SERVER_ENDPOINT=http://10.1.11.50:2283

    VITE_SERVER_ENDPOINT=http://192.168.0.215:2283

    [x] I have included information on my machine, and environment.

    Docker version 20.10.12, build 20.10.12-0ubuntu2~20.04.1

    4GB RAM 2 vCPUs

    To Reproduce Steps to reproduce the behavior:

    1. Open Immich
    2. Tap backup icon
    3. Start Backup
    4. Gets stuck on the first video it tries to upload

    Expected behavior All photos and videos get backed up

    Screenshots If applicable, add screenshots to help explain your problem.

    Desktop (please complete the following information):

    • OS: Ubuntu 20.04.1
    • Docker: version 20.10.12, build 20.10.12-0ubuntu2~20.04.1

    Smartphone (please complete the following information):

    • Device: iPhone 12 Pro Max
    • OS: 15
    • Version 15.4.1

    Additional context I have removed the files that get stuck a few times to make sure it wasn't certain videos, but all of them end up stuck.

    Reviewed by Klutronic at 2022-05-28 13:16
  • 10. [BUG] Backup in upload loop on specific asset

    Describe the bug Backup of a specific asset (unknown if picture or video) from Android app goes from 0-100% and then restarts.

    To Reproduce I'm sure if I knew what asset it was trying to upload, I could give you the file to troubleshoot.

    Expected behavior Backup completes

    Smartphone (please complete the following information):

    • Device: Pixel 6 Pro
    • OS: Latest Android 12

    First off, this is an awesome little project that's providing me with exactly the experience I want. I love how it places the emphasis on the mobile device.

    Secondly, what's the best way to provide debug logs from my Android device for you?

    Reviewed by thefirstofthe300 at 2022-04-05 08:28
  • 11. [BUG] nginx container starts but no tcp ports exposed

    Hello eveybody

    can't access port 2283 or 2284

    l: (7) Failed to connect to 192.168.1.xxx port 2283 after 0 ms: Connection refused

    on portainer nginx container starts but no tcp port exposed

    To Reproduce Steps to reproduce the behavior:

    1. Go to '...'
    2. Click on '....'
    3. Scroll down to '....'
    4. See error
    Reviewed by spupuz at 2022-05-16 13:17
  • 12. [Bug] Problem with deploying Immich using `podman-compose`

    After launching Immich using podman-compose, containers are started but as soon as I try to access the webpage, (at least) the web container exits because of Error: listen EADDRINUSE: address already in use 0.0.0.0:3000

    node:events:505
          throw er; // Unhandled 'error' event
          ^
    
    Error: listen EADDRINUSE: address already in use 0.0.0.0:3000
        at Server.setupListenHandle [as _listen2] (node:net:1372:16)
        at listenInCluster (node:net:1420:12)
        at doListen (node:net:1559:7)
        at processTicksAndRejections (node:internal/process/task_queues:84:21)
    Emitted 'error' event on Server instance at:
        at emitErrorNT (node:net:1399:8)
        at processTicksAndRejections (node:internal/process/task_queues:83:21) {
      code: 'EADDRINUSE',
      errno: -98,
      syscall: 'listen',
      address: '0.0.0.0',
      port: 3000
    }
    

    podman-compose.yml:

    version: "3.8"
    
    services:
      redis:
        container_name: immich_redis
        image: redis:6.2
        restart: always
    
      immich-server:
        image: altran1502/immich-server:latest
        entrypoint: ["/bin/sh", "./start-server.sh"]
        volumes:
          - ${UPLOAD_LOCATION}:/usr/src/app/upload
        env_file:
          - .env
        environment:
          - NODE_ENV=production
        depends_on:
          - redis
          #- database
        #restart: always
    
      immich-microservices:
        image: altran1502/immich-server:latest
        entrypoint: ["/bin/sh", "./start-microservices.sh"]
        volumes:
          - ${UPLOAD_LOCATION}:/usr/src/app/upload
        env_file:
          - .env
        environment:
          - NODE_ENV=production
        depends_on:
          - redis
    
        immich-web:
        image: altran1502/immich-web:latest
        entrypoint: ["/bin/sh", "./entrypoint.sh"]
        env_file:
          - .env
    
      nginx:
        container_name: proxy_nginx
        image: nginx:latest
        volumes:
          - ./settings/nginx-conf:/etc/nginx/conf.d
        ports:
          - 2283:80
          - 2284:443
        logging:
          driver: none
        depends_on:
          - immich-server
    

    .env

    ###################################################################################
    # Database
    ###################################################################################
    DB_HOSTNAME=<redacted
    DB_USERNAME=<redacted>
    DB_PASSWORD=<redacted>
    DB_DATABASE_NAME=immich
    
    ###################################################################################
    # Redis
    ###################################################################################
    
    REDIS_HOSTNAME=immich_redis
    
    ###################################################################################
    # Upload File Config
    ###################################################################################
    UPLOAD_LOCATION=/mnt/data/photos
    
    ###################################################################################
    # JWT SECRET
    ###################################################################################
    JWT_SECRET=<redacted>
    
    ###################################################################################
    # MAPBOX
    ####################################################################################
    # ENABLE_MAPBOX is either true of false -> if true, you have to provide MAPBOX_KEY
    ENABLE_MAPBOX=false
    MAPBOX_KEY=
    
    ###################################################################################
    # WEB
    ###################################################################################
    # This is the URL of your vm/server where you host Immich, so that the web frontend
    # know where can it make the request to.
    # For example: If your server IP address is 10.1.11.50, the environment variable will
    # be VITE_SERVER_ENDPOINT=http://10.1.11.50:2283/api
    VITE_SERVER_ENDPOINT=http://<local ip>:2283/api
    

    sudo netstat -pna | grep 3000 shows no other open ports

    I'm trying to set up Immich on Rocky Linux (RHEL) with Podman. I use an external database.

    Reviewed by bertmelis at 2022-06-29 15:06
  • 13. [BUG]: ImageViewerPage UX and Exif Panel strange interaction

    Feature detail

    RemotePhotoView in ImageViewerPage is interacting with Touch Events strangely.

    Swipe events interact with both the image viewer and the Exif details panel. This causes strange behaviour when swiping around the screen as can be seen below in the attached videos.

    Platform

    Mobile App

    Reviewed by xpwmaosldk at 2022-06-28 07:31
  • 14. [Feature]: Externally shared album to non-users (collaborative / non-collaborative)

    Feature detail

    Often when a group of friends has done something together, they will have taken photos that the other people in the group would like to have. People want a quick and easy way to share the photos (without destroying the quality).

    I think this would be a great feature for Immich to have, and as I see it, two options could be had:

    1. a combined shared album where everyone can contribute (collaborative),
    2. an album for only viewing and download (non-collaborative)

    This might be the only shared album they will ever have access to. And neither me nor they want to make an account.

    Therefore, I think it would be very good if they did not have to make accounts. The shared album could be done with a link and optionally a password.

    Platform

    Web

    Reviewed by hugo-laestander at 2022-06-25 18:51
  • 15. [BUG] Upload sames images multiples times create duplicates

    Describe the bug

    On web, when uploading same images multiple times, the interface display multiples times the pictures. I don't know if image are physycally duplicated, on only on display.

    Task List

    • [X] I have read thoroughly the README setup and installation instructions.
    • [X] If my setup is different, I have included my docker-compose file.
    • [ ] I have included my redacted .env file.
    • [X] I have included information on my machine, and environment.

    To Reproduce Steps to reproduce the behavior:

    1. Go to Web
    2. Click on Upload
    3. Upload x pictures
    4. Wait ...
    5. Return to 2. and re-upload same images

    Expected behavior No duplicate images ....

    Screenshots image image

    Desktop (please complete the following information):

    • OS : Unraid
    • Latest docker image
    Reviewed by Nonobis at 2022-06-22 18:22

Related

A streaming client for the Komga self-hosted comics/manga/BD server targeting Android/iOS written in Dart/Flutter
A streaming client for the Komga self-hosted comics/manga/BD server targeting Android/iOS written in Dart/Flutter

Klutter A streaming client for the Komga self-hosted comics/manga/BD server targeting Android/iOS written in Dart/Flutter Background This is a project

Jun 23, 2022
Feb 13, 2022
Photo Finder - Online free simple photo library with flutter
Photo Finder - Online free simple photo library with flutter

photo_finder Photo_Finder Is a Online free simple photo library. Fully API Based

Feb 9, 2022
Presentation-Remote-PC - Manage your presentation from your smart phone - Phone Client
Presentation-Remote-PC - Manage your presentation from your smart phone - Phone Client

Presentation-Remote-PC Manage your presentation from your smart phone - Phone Cl

Jan 25, 2022
Backs up Android devices on Linux, macOS and Windows. Backup your device without vendor lock-ins, using insecure software or root.

Backs up Android devices on Linux, macOS and Windows. Backup your device without vendor lock-ins, using insecure software or root. Supports encryption and compression out of the box.

Jun 20, 2022
a dart dropbox file uploader (backup)

?? DropBox File Uploader A simple dropbox file uploader in dart This project was made as the base project for appwrite file backup cloud function in d

Dec 11, 2021
Add beautiful and trending tab indicators directly to your default Flutter TabBar
Add beautiful and trending tab indicators directly to your default Flutter TabBar

Add beautiful and trending tab indicators directly to your default Flutter TabBar. Features ?? Supports Android, iOS, Web Can be directly added to the

Jun 28, 2022
Flutter Faux Self App Naked Eye 3D Effect
Flutter Faux Self App Naked Eye 3D Effect

Flutter Faux Self App Naked Eye 3D Effect

Jun 18, 2022
Dart port of FormCoreJS: A minimal pure functional language based on self dependent types.

FormCore.js port to Dart. So far only the parser and typechecker have been ported i.e. the FormCore.js file in the original repo. (Original readme fro

Jan 28, 2022
A beautiful 😍 covid-19 app with self - assessment and more.
A beautiful 😍 covid-19 app with self - assessment and more.

Aarogya Seva Made with ?? in India ?? Aarogya Seva is an Indian app developed using flutter for tracking live Covid-19 cases. App provides Coronavirus

Jun 17, 2022
ABC of Flutter widgets. Intended for super beginners at Flutter. Play with 35+ examples in DartPad directly and get familiar with various basic widgets in Flutter
ABC of Flutter widgets. Intended for super beginners at Flutter. Play with 35+ examples in DartPad directly and get familiar with various basic widgets in Flutter

Basic Widgets Examples This is aimed for complete beginners in Flutter, to get them acquainted with the various basic widgets in Flutter. Run this pro

Jun 22, 2022
This package allows you to scroll/select the value directly from the dropdown with less effort and time.

Direct Select This package allows you to scroll/select the value directly from the dropdown with less effort and time. Inspired by Virgil Pana shot Sa

May 16, 2022
Flutter code extension that provides MediaQuery sizing info directly on the BuildContext instance

Flutter code extension that provides MediaQuery sizing info directly on the BuildContext instance. Also adds some helper methods for sizing and layout.

May 14, 2022
A Fluttter based notes app with photo-notes support!
A Fluttter based notes app with photo-notes support!

Tizeno Tizeno is a beautiful open-source notes app for Android. It is built with Dart on top of Google's Flutter Framework. Tizeno helps one create qu

May 19, 2022
Google I/O 2021 Photo Booth built with Flutter and Firebase
Google I/O 2021 Photo Booth built with Flutter and Firebase

I/O Photo Booth A Photo Booth built with Flutter and Firebase for Google I/O 2021. Try it now and learn about how it's made. Built by Very Good Ventur

Jun 26, 2022
Flutter photo - video from album by flutter
Flutter photo - video from album by flutter

archived The package is archived. Please use flutter_wechat_assets_picker. photo image picker, multi picker support ios icloud support video use flutt

Jun 10, 2022
A Flutter plugin to rotate, resize, move, delete text, photo or any other widget.
A Flutter plugin to rotate, resize, move, delete text, photo or any other widget.

sticker_view A Flutter plugin to rotate, resize, move, delete any text, image or any other widget. Available Features ✅ Rotate ✅ Resize ✅ Move ✅ Layer

Jun 10, 2022
NextPhoto - A Flutter Instagram look-alike photo blog application
NextPhoto - A Flutter Instagram look-alike photo blog application

A Flutter Instagram look-alike photo blog application. Uses jsonplaceholder for mock data. Please refer to coding task for info about desired features.

Jun 1, 2022
Flutter_dialpad - A Phone Dialpad for your Flutter Application
Flutter_dialpad - A Phone Dialpad for your Flutter Application

flutter_dialpad A phone dialer widget that can be added to any Flutter Application to enable ability to dial a number. This could be combined with a v

Feb 27, 2022