Mobile first Note Taking integrated with Git

Overview


Mobile first Markdown Notes integrated with Git

Get it on Google Play Download on the App Store

Build Status License: AGPL v3
Donate Paypal Sponsor via GitHub

This project receives generous infrastructure support from

Summary

GitJournal is a note taking app focused on privacy and data portability. It stores all its notes in a standardized Markdown + YAML header format (optional). The notes are stored in a Git Repo of your choice - GitHub / Gitlab / Custom-provider. This means you can easily self host or host your notes in one of the many Git providers.

Features -

  • Can be used with any Git Repository
  • Allows categorizing Notes based on Folders
  • No Account Required
  • Open source

Community

Screenshots

Migrating from Existing Apps

Contributing

Please feel free to open an issue for any bug or feature request. Additionally, you can vote on existing Issues by reacting with a ' 👍 '.

License

Most of GitJournal code is licensed under AGPL, however the documentation (including this file) and translations are under a Creative Commons Attribution 4.0 International License.

Issues
  • Sync after inital clone doesn't work

    Sync after inital clone doesn't work

    Environment

    App version:
    Device information:

    • OS name and version: Android 10
    • Manufacturer: Nokia
    • Model: 7 plus

    Description

    Expected behavior: Changes in notes are pushed/fetched to git repo

    Current behavior: After initial synch, no longer pushes or fetches with the repo.

    Steps to reproduce

    Version 1

    1. Follow automatic git setup of gitjournal
    2. Choose existing repo
    3. Successfully first sync/clone
    4. Add document/change document and automatically let sync happen / manually trigger sync
    5. Check git repo for changes

    Version 2

    Same as Version 1, with the exception of manually creating deploy key with write rights.

    Version 3

    Same as Version 1, with the exception of manually creating a general key with write rights on all repos.

    Logs
    09:27:05 Got Exception Exception: Current Branch null #0 GitNoteRepository.merge (package:gitjournal/core/git_repo.dart:190) <asynchronous suspension> #1 Repository.syncNotes (package:gitjournal/repository.dart:188) <asynchronous suspension> 
    

    Full logs:

    {"t":1607622700301,"l":"i","msg":"--------------------------------"}
    {"t":1607622700301,"l":"i","msg":"--------------------------------"}
    {"t":1607622700301,"l":"i","msg":"--------------------------------"}
    {"t":1607622700301,"l":"i","msg":"--------- App Launched ---------"}
    {"t":1607622700301,"l":"i","msg":"--------------------------------"}
    {"t":1607622700301,"l":"i","msg":"--------------------------------"}
    {"t":1607622700301,"l":"i","msg":"--------------------------------"}
    {"t":1607622700301,"l":"i","msg":"AppSetting {onBoardingCompleted: true, collectUsageStatistics: true, collectCrashReports: true, version: 0, proMode: true, proExpirationDate: 2021-01-07T00:10:34.148Z, pseudoId: aaa9520a-847f-480d-8a2a-117636b95740, debugLogLevel: v, experimentalFs: false, experimentalMarkdownToolbar: false, experimentalGraphView: false, experimentalZeroConf: false}"}
    {"t":1607622700308,"l":"d","msg":"Analytics Collection: true"}
    {"t":1607622700312,"l":"d","msg":"Event.Settings"}
    {"t":1607622700312,"l":"i","msg":"Setting {noteFileNameFormat: FromTitle, journalNoteFileNameFormat: FromTitle, yamlModifiedKey: modified, yamlCreatedKey: created, yamlTagsKey: tags, customMetaData: , yamlHeaderEnabled: true, journalEditordefaultNewNoteFolderSpec: , journalEditorSingleNote: false, defaultEditor: Markdown, defaultView: Standard, sortingField: Modified, sortingOrder: desc, remoteSyncFrequency: automatic, showNoteSummary: true, folderViewHeaderType: TitleGenerated, version: 2, markdownDefaultView: Last Used, markdownLastUsedView: Edit, homeScreen: all_notes, imageLocationSpec: ., zenMode: false, saveTitleInH1: true, swipeToDelete: true, inlineTagPrefixes: #, emojiParser: true, folderName: journal, bottomMenuBar: true, storeInternally: true, storageLocation: , sshPublicKey: true}"}
    {"t":1607622700326,"l":"d","msg":"Event.RepoSynced"}
    {"t":1607622700328,"l":"i","msg":"Checking if ProMode should be enabled. Exp: 2021-01-07T00:10:34.148Z"}
    {"t":1607622700328,"l":"i","msg":"Not checking PurchaseInfo as exp = 2021-01-07T00:10:34.148Z and cur = 2020-12-10T17:51:40.328094Z"}
    {"t":1607622700364,"l":"i","msg":"Finished loading the notes cache"}
    {"t":1607622700369,"l":"v","msg":"Ignoring file","p":{"path":"/data/user/0/io.gitjournal.gitjournal/app_flutter/journal/.dendron.version","reason":"IgnoreReason.HiddenFile"}}
    {"t":1607622700369,"l":"v","msg":"Ignoring file","p":{"path":"/data/user/0/io.gitjournal.gitjournal/app_flutter/journal/.gitignore","reason":"IgnoreReason.HiddenFile"}}
    {"t":1607622700610,"l":"d","msg":"Received Share with App (text): null"}
    {"t":1607622700907,"l":"d","msg":"Saving the NotesCache"}
    {"t":1607622700939,"l":"i","msg":"Finished loading all the notes"}
    {"t":1607622701828,"l":"e","msg":"Got Exception","ex":"Exception: Current Branch null","stack":"#0      GitNoteRepository.merge (package:gitjournal/core/git_repo.dart:190) <asynchronous suspension> #1      Repository.syncNotes (package:gitjournal/repository.dart:188) <asynchronous suspension> "}
    {"t":1607622701831,"l":"v","msg":"Ignoring file","p":{"path":"/data/user/0/io.gitjournal.gitjournal/app_flutter/journal/.dendron.version","reason":"IgnoreReason.HiddenFile"}}
    {"t":1607622701831,"l":"v","msg":"Ignoring file","p":{"path":"/data/user/0/io.gitjournal.gitjournal/app_flutter/journal/.gitignore","reason":"IgnoreReason.HiddenFile"}}
    {"t":1607622701859,"l":"d","msg":"Synced!"}
    {"t":1607622701866,"l":"d","msg":"Saving the NotesCache"}
    {"t":1607622706572,"l":"d","msg":"Event.DrawerSettings"}
    {"t":1607622710924,"l":"i","msg":"No log file for 2020-12-09 18:51:50.924100"}
    
    bug critical 
    opened by mebu83 33
  • [WIP] Project Sustainability

    [WIP] Project Sustainability

    Sustaining an Open Source Project can be challenging in the long term. The idea with GitJournal is to be a 100% Open Source Project - No Open Core model. Here are my current ideas on how to sustain this in the long term -

    1. Paid Pro Version - Some Advanced features could require payment. The source code for these features would still be available here, and users are free to install a version with all the features unlocked - but the versions on Google Play Store and iOS would require payment.

    2. Encrypted Git Hosting - Another idea was to provide paid end-to-end encrypted Git Hosting which could be used to store the notes. This way GitJournal could compete with Standard Notes.

    This issue is for other suggestions on how to sustain this project in the long term.

    opened by vHanda 25
  • remote changes to notes not being picked up until app is restarted

    remote changes to notes not being picked up until app is restarted

    I've been testing out remote editing of notes. The app seems to pick up the addition of new notes created remotely without problem. However, it seems to fail to pick up edits to existing notes until the app has been restarted. So it seems that it picks up the git updates, but that what's displayed is a cache of the note contents from when the app was first opened. If I close the app, and then reopen, then the remote edits are visible.

    opened by jrollins 20
  • The changes aren't reflected in my repo.

    The changes aren't reflected in my repo.

    As I had this issue https://github.com/GitJournal/GitJournal/issues/363, I made a fresh repo with only one branch. The app was able to detect the folder and cloned it as well. But, when I made changes in the files, it shows synced - shows the pull and push as well. I see nothing in my Github Repo. Not one push. Also, changes I made from my PC into git aren'r reflected in the app.

    opened by dummifiedme 16
  • sorting by last modified not working

    sorting by last modified not working

    sorting by last modified seems not working, the actual order is changing every time i open the app or click one note then back to the all notes view. lots of my notes have the same modified time in yaml header (manually edited when i first import from another app), maybe it's related to this issue.

    not-reproducible 
    opened by feng1st 15
  • Enabling

    Enabling "Store Repo Externally" does not work correctly (the selected directory is not used)

    Environment

    App version: 1.73.2+2064 Device information:

    • OS name and version: Android 10
    • Manufacturer: Lenovo/Motorola
    • Model: Moto G 5G Plus

    Description

    Expected behavior: The app opens normally, or at least shows an error message.

    Current behavior: The app shows the loading screen (GitJournal logo on white background) and never goes forward.

    Steps to reproduce

    1. Open a fresh install of the app
    2. Enable "Store Repo Externally" in the settings
    3. Close and re-open the app

    Others

    I'm running the Google Play version, so I don't have logs, sorry.

    The only way to successfully open the app again is to delete all app data (not just cache).

    I'm not sure if "external" refers to an SD card or not. I don't have an SD card in my phone, but as far as I know, /storage/emulated/0 should point to internal storage (where I have my downloads folder, etc.). And in any case, the app should be able to recover from this.

    bug 
    opened by kankaristo 14
  • Infinity Cloning ...

    Infinity Cloning ...

    Environment

    App version: 1.73.10, latest available in appStore Device information:

    • OS name and version: iOS 14.3,
    • Manufacturer: Apple inc.
    • Model: iPhone XS max

    Description

    Infinity cloning in manual and auto add github repo

    Expected behavior: final process

    Current behavior: infinity process

    Steps to reproduce

    1. setup host
    2. github
    3. any of "setup automatically" or "manually"
    4. auth ok
    5. select existing or create new repo 5.1. if new then creating ok ( existing in github)
    6. cloning ...

    Others

    Images

    Logs

    image

    sorry, i'm a teapot :sweat_smile:

    opened by maximmarakov 13
  • Error in build

    Error in build

    I'd like to resolve the build issues that I'm having. The earlier fixes I had applied only seem to create more problems with new versions of the code. I.e. image

    So, I'm resetting to a clean master branch. The first issue is this:

    image

    I have the current Flutter v2.0.0 and the SDK is on stable branch.

    image

    opened by MisterY 12
  • Allow Emoji Transformation to be controlled

    Allow Emoji Transformation to be controlled

    Environment

    App version: 1.7.1+1939 Device information:

    • OS name and version: Android 9
    • Manufacturer:
    • Model: OnePlus 3T

    Description

    Expected behavior: Retain Unicode format of emojis. Current behavior: Emojis transform to text form upon edit on a note.

    Steps to reproduce

    1. Load note with Emojis that are Unicode characters
    2. Make edit to note. Sync app to git.
    3. Emojis in text form do not render on markdown editors nor wikis.

    Others

    Images

    Logs
    feature 
    opened by agathauy 11
  • GitJournal lost my file with no warning

    GitJournal lost my file with no warning

    I'm using GitJournal for the first time. I set up a repo on Github using the automatic setup.

    I spent the past 2 hours writing a blog post. When it was finally done, I clicked on the sync button. And then... it deleted my file. No warning. No error. It's just gone. I checked my Git repo on Github, and nothing was committed here.

    I made a new note, and tried to sync again. This time it said 'invalid credentials'. This new note is not deleted: only my first one was. I checked my Github repo, and saw that it had no deploy key. I'm not sure what happened to it: maybe I deleted it by mistake during an account settings cleanup?

    I tried restarting GitJournal, but the file is still gone. I've lost the work.

    I suspect that this data loss has got to do with not being able to push.

    opened by FooBarWidget 10
  • renaming a file in git repo -> sync to app. file shows up twice

    renaming a file in git repo -> sync to app. file shows up twice

    I had a file named 'Vim todo.md' . I renamed it to vim-todo.md and committed to github (both the removal of old file + addition of new file)

    then, syncing in gitjournal makes it show both files

    opened by Dieterbe 1
  • Exception: Git Merge Bindings failed

    Exception: Git Merge Bindings failed

    Hi, i'm getting this exception when i'm trying to sync from github (using the android app, pro version). This was working until a few days ago. I didn't change anything on github, my private notes repo is still there.

    opened by Dieterbe 2
  • Cannot enable

    Cannot enable "Store Repo Externally"

    It gives this error: settings.storage.failedExternal

    image

    On MIUI 12.5.3 and app 1.81.1 I have entered the settings and enabled all available permissions and no luck.

    opened by rzfzr 5
  • Making Folder listing settings more discoverable

    Making Folder listing settings more discoverable

    Multiple users have failed to find how to only the filenames. I think I should also add it to the settings.


    Please vote on this issue with a 👍 reaction. It's one of the primary mechanisms used to prioritize issues. Please also subscribe to the issue if you're interested, as that way I can discuss possible implementations and share mockups.

    opened by vHanda 0
  • Realtime updates from a Git Repo

    Realtime updates from a Git Repo

    Currently GitJournal pulls changes whenever a note is changed, or during startup, or when manually synced. This means we aren't informed of changes if the app is just open.

    This is probably going to be a subscription based feature as it will require some server side code to monitor the relevant github / gitlab repo. This can be done via webhooks.

    (requested by a pro-user)


    Please vote on this issue with a 👍 reaction. It's one of the primary mechanisms used to prioritize issues. Please also subscribe to the issue if you're interested, as that way I can discuss possible implementations and share mockups.

    feature 
    opened by vHanda 0
  • Markdown Toolbar: Add buttons to indent / outdent

    Markdown Toolbar: Add buttons to indent / outdent

    Currently this can be done by long pressing the < and > buttons. But that's not very discoverable. A user has requested actual buttons for it.

    I'm a bit conflicted since the toolbar is already quite full.

    opened by vHanda 0
  • JournalView - sort by 'created' date by default

    JournalView - sort by 'created' date by default

    That's how Journals normally work, and it's confusing otherwise.

    Related to #547

    opened by vHanda 0
  • New note is lost after switching to different App if not saved

    New note is lost after switching to different App if not saved

    A newly created note with some content disappears after switching and coming back from a different app if it wasn't saved using the checkmark button. I have lost several notes due to this design. The app states should be kept between app switches, including unsaved note contents.

    critical 
    opened by theeveventh 7
  • bluetooth keyboard repeats spontaneously

    bluetooth keyboard repeats spontaneously

    On iPad, when using a Bluetooth keyboard, some key presses repeat by itself. For example, if you type in "cat", it would become "catttt".

    • It is stochastic. Not triggered by specific words.
    • Tried with two different Bluetooth keyboards, both show same symptom.
    • Same keyboards used in different Apps work completely fine.

    Basically, this make it VERY difficult to use external Bluetooth keyboard with GitJournal reducing its utility.

    opened by theeveventh 0
  • Too many deletes causes desync

    Too many deletes causes desync

    1.81.1+3088 off google play, and a self-hosted git repository.

    During testing, I made a lot of test notes to clean up later. Less than 1K each.

    After 4 deletions, apparently something is going wrong, because my git repo is no longer getting updates from that device. Any updates.

    "Debug App" is showing (retyped, but checked)

    ...

    Event.NoteDeleted Got RemoveNote lock Event.RepoSynced Synced! Event.NoteDeleted Got RemoveNote lock Event.RepoSynced Synced! Event.NoteDeleted Got RemoveNote lock Event.NoteDeleted Got RemoveNote lock Event.RepoSynced Synced! Event.NoteDeleted Got RemoveNote lock Event.RepoSynced Synced! Event.NoteDeleted Got RemoveNote lock Event.RepoSynced Synced! Event.NoteDeleted Got RemoveNote lock Event.RepoSynced Synced! Event.RepoSynced Synced! Event.RepoSynced Synced! ...

    4 of 6 notes were removed, the cloud icon is stuck at 2 actions every time it tries to sync.

    ~~"Delete Repository" does reestablish sync, at the cost of needing a new authorized key. If there is another way to force a new clone, I'm not seeing it.~~

    opened by Sudrien 1
Releases(v1.80.0)
Owner
GitJournal
Mobile First Note Taking built on top of Git
GitJournal
A clean and modern note taking app built with Flutter.

Notes App A clean, simple and modern note taking app built with Flutter. Be sure to leave a star ?? Features Create notes: Create notes that store loc

Carlton Aikins 80 Nov 18, 2021
Microsoft Teams Clone is a Video conference application with a rich integrated chat experience, to connect with friends,family & colleagues. Developed as a redesign of Microsoft Teams during my menteeship at Microsoft Engage 2021

Microsoft Teams Clone by Karanjot Singh About Microsoft Teams Clone is a Video conference application with a rich integrated chat experience, to conne

Karanjot Singh 49 Nov 29, 2021
Flutter Music Player - First Open Source Flutter based material design music player with audio plugin to play local music files.

Flutter Music Player First Open Source Flutter based Beautiful Material Design Music Player(Online Radio will be added soon.) Demo App Play Store BETA

Pawan Kumar 1.3k Nov 17, 2021
The only first & the last app that made by student and for students!

CarrotMMU The only first & the last app that made by student and for students! ?? Feature lists Timetable Attendance Bulletin annnoucement Pastyear pa

null 4 Aug 12, 2021
Timy - open source mobile app for groups to communicate and organize themselves. Built with flutter.

Timy app An amazing open-source group messaging app build with flutter. ✨ Main Features Multiple groups (similar to Teams in Slack). Multiple open or

null 1.7k Nov 22, 2021
A Flutter plugin for the Google Mobile Ads SDK

A Flutter plugin for the Google Mobile Ads SDK

Google Ads 164 Nov 22, 2021
freeCodeCamp's open-source mobile app

freeCodeCamp.org's open-source mobile app freeCodeCamp.org is a friendly community where you can learn to code for free. Our full-stack web developmen

freeCodeCamp.org 63 Nov 19, 2021
This is a mobile application that goals to build a quiz about programming subjects writter with Flutter.

❓ DevQuiz A mobile application being built with NLW5 (an event from Rockeatseat - https://app.rocketseat.com.br/). This application goals to build a q

Samilly Nunes 16 Sep 15, 2021
:lock: this is flutter mobile application music using glass morphism concept

Flutter Glass Morphism ?? Description: This is source flutter using glass morphism concept How I can run it? ?? Clone this repo ?? Run below code in t

Dao Hong Vinh 11 Oct 31, 2021
een mobile app voor de jaaruitwisseling van RYE

Rotary-NL-RYE een mobile app voor de jaaruitwisseling van RYE API calandar: https://www.googleapis.com/calendar/v3/calendars/[email protected]

Caeli Technologies 6 Nov 16, 2021
𝐂𝐨𝐯 𝐀𝐡𝐞𝐚𝐝 is a mobile application to track and create better Covid-19 route maps for both shop owners and customers

Cov Ahead Cov Ahead is a mobile application where shopkeepers have an app that shows QR code and users can scan this QR code which will automatically

Abhijith Kp 3 May 30, 2021
Materiale per il corso PON Programmazione Creativa dell'ITET Marsala - Modulo Mobile Dev

modulomobiledev-ponprogrammazionecreativa-itet Materiale a supporto delle lezioni del modulo Mobile Dev per il corso PON Programmazione Creativa degli

Enrico La Sala 3 Nov 8, 2021
Movie Lib is a mobile application where you can find the movies of your interest. This app provides a collection of movies of different languages according to your interest.

Movie Lib Movie Lib is a mobile application where you can find the movies of your interest. This app provides a collection of movies of different lang

Abhijith Kp 6 Sep 28, 2021
Flutter UI Kits for mobile, tablet, desktop and web application

UIKits2 A complete UIs for mobile and tablet, which include 16 categories. Start SignUp & Login Walkthrough Loading Profiles Feed Article Activity Cre

Anuchit Chalothorn 15 Sep 22, 2021
Clone do aplicativo mobile da Nubank utilizando Flutter

Nubank Clone Introdução Screenshots Executando Contribua Introdução Este projeto se trata de uma recriação bem próxima da interface do app do Nubank u

Ricardo Dalarme 31 Nov 8, 2021
Noor is a mobile app designed to help in providing a comfortable reading experience for Muslims, by referencing the book "Hisnul Muslim", and some other references.

Noor App | تطبيق نُور Overview Noor is an islamic mobile app, consists of four main pages: home, favorite, alsabha, and settings. The data is structur

Mais Alheraki 51 Nov 12, 2021
Pig Community Mobile Application

Hello Fellow Pigsters Pig Community Mobile Application Getting Started This project is a starting point for a Flutter application. A few resources to

null 3 May 21, 2021
A simple Flutter Note Taking app with local database.

Flutter Simple & Lightweight Note App Flutter Simple & Lightweight Note App UI/UX Credit: https://dribbble.com/shots/11875872-A-simple-and-lightweight

Ahmad Amin 48 Oct 27, 2021
Simple & Beautiful Note taking app written in dart with flutter UI toolkit.

Notes is a privacy oriented, Secure ,beautiful and fast application made in flutter, it supports various features like adding and saving notes. Hiding

null 14 Nov 22, 2021
A clean and modern note taking app built with Flutter.

Notes App A clean, simple and modern note taking app built with Flutter. Be sure to leave a star ?? Features Create notes: Create notes that store loc

Carlton Aikins 80 Nov 18, 2021
Flutter project integrated with Supabase, the Firebase open source alternative

This is a Flutter project integrated with Supabase, the Firebase open source alternative. This project is a sandbox for playground for Flutter & Supabase integration.

anegrete 8 Oct 4, 2021
Microsoft Teams Clone is a Video conference application with a rich integrated chat experience, to connect with friends,family & colleagues. Developed as a redesign of Microsoft Teams during my menteeship at Microsoft Engage 2021

Microsoft Teams Clone by Karanjot Singh About Microsoft Teams Clone is a Video conference application with a rich integrated chat experience, to conne

Karanjot Singh 49 Nov 29, 2021
Flutter plugin for selecting images from the Android and iOS image library, taking new pictures with the camera, and edit them before using such as rotation, cropping, adding sticker/text/filters.

advance_image_picker Flutter plugin for selecting multiple images from the Android and iOS image library, taking new pictures with the camera, and edi

Weta Vietnam 64 Nov 24, 2021
An android application built using Flutter that computes the Body Mass Index of person and suggestion to carry ,by taking Inputs (Weight, Height, and Age), Built using Flutter

BMI Calculator ?? Our Goal The objective of this tutorial is to look at how we can customise Flutter Widgets to achieve our own beautiful user interfa

dev_allauddin 7 Nov 21, 2021
Flutter Music Player - First Open Source Flutter based material design music player with audio plugin to play local music files.

Flutter Music Player First Open Source Flutter based Beautiful Material Design Music Player(Online Radio will be added soon.) Demo App Play Store BETA

Pawan Kumar 1.3k Nov 17, 2021
Flutter Music Player - First Open Source Flutter based material design music player with audio plugin to play local music files.

Flutter Music Player First Open Source Flutter based Beautiful Material Design Music Player(Online Radio will be added soon.) Demo App Play Store BETA

Pawan Kumar 1.3k Nov 23, 2021
Flute Music Player - First Open Source Flutter based material design music player with audio plugin to play local music files.

Flute Music Player Plugin Only Updated to androidx First Open Source Flutter based material design music player with audio plugin to play local music

Pawan Kumar 306 Nov 18, 2021
Tried my hands first time on Machine Learning 🤖. It's an Face Detection app 😀which higlights the face of a person from image 🖼️.

Flutter Face Detector ML This is the source code for Flutter Face Detector ML. App Features Select Images From Gallery. Detecting All Faces In Image A

Nikhil Pawar 5 Apr 20, 2021
Tahseen Quraishi 16 Nov 1, 2021