Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Renewal plan #67

Closed
Rokt33r opened this issue Aug 22, 2019 · 42 comments
Closed

Renewal plan #67

Rokt33r opened this issue Aug 22, 2019 · 42 comments
Labels
feature request 🌟 Issue is a new feature request.

Comments

@Rokt33r
Copy link
Member

Rokt33r commented Aug 22, 2019

I've been decided to focus on renewal of boostnote again. So I'm working on the project now. The most first app is revealed start of the next November.

What would be changed?

  • DB based storage(PouchDB / CouchDB)
  • Cloud storage support(Boostnote will provide cloud storage out of the box)
  • Typescript
  • Extensible markdown processor
  • Plugins (Next phase)
  • Proper mobile support(React Native) (Next phase)

DB based storage

Notes are stored into DB rather than file system. We've learned using file system is quite dangerous while maintaining the current Boostnote project. Most of the problems are caused by difference between OSs.

So we're going to use PouchDB. By using this, we could get other benefits like syncing with other db and freedom to choose various storage strategy via LevelDB. Also it would help us to make stable note storage even for mobile devices. By default, the app will using Indexed DB of browsers.

But, for attachments like photos and pdf files, we're going to introduce other storage than PouchDB because syncing all attachments is not efficient at all. Lots of mobile device have limited storage size and networking bandwidth. So we're going to provide a storage like S3 or Dropbox kind and the app will give the choice for you to sync attachments completely on demand. When users open a note with attachments, the attachments will be cached into the app. They also could cache them without opening the app. Also, they can always release cached attachments when their device don't have enough storage space.

Cloud storage support

Cloud storage is quite similar to Github's repositories. Like it supports Git and Git LFS(Large file storage), we provide pouchDB and File storage like S3 at the same time. Most of code will be published as OSS projects. So you could learn our db adapter easily and replace your own db easily. But for normal users, using our cloud storage should be the most easiest way to sync multiple devices and to share notes with your co-workers.

Typescript

I've been using Typescript for 3 years in other projects. It improves development experience quite a lot. So I guess introducing typescript would help us to make our app with better quality.

Extensible markdown processor

I've been contributing in unified ecosystem since I temporarily stopped maintaining Boostnote 3 years ago. The library is quite cool. It is just working like Babel. It parses Markdown documents into AST(Abstract syntax tree), AKA MDAST. With this, we could do not only rendering Markdown into HTML but also inspecting structure of markdown and providing much better UX like VSCode.

What will happen to the current repository?

We're going to keep maintaining it until most of features are available as plugins of the renewed app.

@Rokt33r Rokt33r added this to the Prototype milestone Aug 22, 2019
@Rokt33r Rokt33r added the feature request 🌟 Issue is a new feature request. label Aug 26, 2019
@Rokt33r Rokt33r pinned this issue Aug 26, 2019
@amedora
Copy link

amedora commented Sep 10, 2019

sounds promising 👍

@arcturus140
Copy link
Contributor

Is this going to replace boostnote-reneval? How can we convert boostnote notes to the new format?

@willmcgugan
Copy link

I rather like the status quo of storing files on the filesystem. I like that the notes are store transparently and that I can sync them with Dropbox (which means I can always recover deleted or edited notes).

I can see the benefits of DB based storage, but it would be great if it were optional and I could opt to stick with the filesystem.

@Rokt33r
Copy link
Member Author

Rokt33r commented Sep 19, 2019

@arcturus140 This is the renewal app. And the app will provide migration from old boostnote app data.

@willmcgugan We will provide the option one day. But now we're focusing on working with DB

@gmmedia
Copy link

gmmedia commented Sep 24, 2019

Hello,
I find the current BoostIO editor quite impressive! You do many things right.
The only thing I miss is a markdown editor like in Typora or dropbox Paper. The split screen is like a waste of space for me.

Is the "Extensible markdown processor" something like that? Or is a that kind of editor not planed?

@Rokt33r
Copy link
Member Author

Rokt33r commented Sep 25, 2019

@gmmedia
"Extensible markdown processor" is different. It will become a markdown previewer which can render most of styles of markdown. When this arrive, a markdown document can persist its own markdown settings. And the previewer will render the document based on the settings. So people can be sure that their document will renders correctly in wherever they want to post.

And, after we introduce Extensible markdown processor, we could start working on the editor which should be much more powerful than Typora or Dropbox Paper, and open sourced.

@gmmedia
Copy link

gmmedia commented Sep 25, 2019

Sounds good. thank you

@mtenrero
Copy link

Sounds interesting... I think database storage as backend is a good approach. Let me know if you need some help with the project with CI/CD or whatever!

@cossio
Copy link

cossio commented Oct 9, 2019

Sounds good! You realize you will lose all the Github stars of the original repo!

@EpochBoy
Copy link

EpochBoy commented Oct 9, 2019

I rather like the status quo of storing files on the filesystem. I like that the notes are store transparently and that I can sync them with Dropbox (which means I can always recover deleted or edited notes).

I can see the benefits of DB based storage, but it would be great if it were optional and I could opt to stick with the filesystem.

Exactly, the strength lies in the file system and freedom of choice that comes with. Changing this, really just turns this into another note taking app, where you depend on an external cloud.

@Dahaniel
Copy link

Dahaniel commented Oct 15, 2019

@Rokt33r does DB mean sync will rely on your servers? No way for using my own sync anymore?

I started using Boostnote exactly because of this, that's why I never used for example Evernote... I guess I am not the only one.

@TobiasDev
Copy link

Same for me. I used this because I could sync it too my own Nextcloud instance, if this goes away, I sadly don't see me staying with it. I kind of get way, but yeah, that will be a deal-breaker for my part.

@Henry78
Copy link

Henry78 commented Oct 16, 2019

@nextcloud users: For Android, theres the simple but well working app "Nextcloud Notes", because you access your notes direclty via Webdav and bypass Nextclouds Android app: https://play.google.com/store/apps/details?id=it.niedermann.owncloud.notes
An alternative on Android could also be Markor.

At the Linux desktop I'm stuck with the marvellous, but not OSS application, Typora. And rely on Nextclouds desktop sync.

@ddhogan
Copy link

ddhogan commented Oct 16, 2019 via email

@cossio
Copy link

cossio commented Oct 16, 2019

@Henry78 Wow Typora is very nice! Thanks for mentioning it. I just didn't find how to have a bibliography in a document.

@TobiasDev
Copy link

@Henry78 @cossio not sure if you guys have seen Mark Text? That is an open-source variant that is kind of like Typora. I can't say how alike they are since I've only ever used Mark Text and never Typora.
https://github.com/marktext/marktext

@cossio
Copy link

cossio commented Oct 16, 2019

@TobiasDev Marktext also looks very nice! Thanks.

@mnowotnik
Copy link

Plain text markdown files with frontmatter are the only way to go in the world of markdown note taking apps. Really sad to see boostnote storage becoming even less accessible.

@Rokt33r
Copy link
Member Author

Rokt33r commented Oct 28, 2019

@Dahaniel If you want to keep using your own cloud storage, you should keep using the current app for a while... I definitely want to provide FS based storage one day but, for now, I need to focus on UI and UX of the new app.

@Cambusta
Copy link

It's a shame to see that plain-text storage isn't even a priority. I think it's one of the most unique features of Boostnote that really made it stand out among others.

Notes are made to be read by people, not machines. I feel like making a note unreadable by a normal person (by putting it into a DB, for instance) defies its purpose.

@evmin
Copy link

evmin commented Oct 30, 2019

I rather like the status quo of storing files on the filesystem. I like that the notes are store transparently and that I can sync them with Dropbox (which means I can always recover deleted or edited notes).

I can see the benefits of DB based storage, but it would be great if it were optional and I could opt to stick with the filesystem.

Second that.

Having notes synced separately also allows to use it as a team, where different people are updating different notes and use a dropbox like mechanism to sync.

Yes it would create a conflict when editing the same note, it is a trade off I happily accept.

@evmin
Copy link

evmin commented Oct 30, 2019

If the previous version is going indeed to follow - "We're going to keep maintaining it until most of features are available as plugins of the renewed app." - I am happy to use the old version until the next version supports FS as the persistence layer.

@CyanBlob
Copy link

Are there any plans to add a hierarchical structure with this version? Or is it sticking with the flat structure?

@ecumberworth
Copy link

I've really enjoyed using Boostnote and appreciate all the hard work. After all, this is a free application. However, I will not use the new version that switches to DB based storage. File storage of MD files was a big reason I've used Boostnote.

@Rokt33r
Copy link
Member Author

Rokt33r commented Oct 31, 2019

@CyanBlob You can make sub folders as deep as you want.

@Rokt33r
Copy link
Member Author

Rokt33r commented Oct 31, 2019

@ecumberworth @evmin @Cambusta @mnowotnik @Dahaniel
I discussed FileSystem issue with KZ(@kazup01). And we decided to provide File System based storage officially. I guess we probably actively support WebDav too.

So road map should be like the below.

  • Release Desktop app / Browser app / DB cloud service(pouchdb/couchdb) (end of Nov, 2019)
  • Release Mobile MVP app(end of Dec, 2019)
  • Start working on FS based db

@shmolf
Copy link

shmolf commented Nov 6, 2019

With BoostIO, we can setup different storage locations.

I'd hope that each storage location could have local/cloud options that are independent of each other.

The back end would simply check the setting. I personally would love one of my storage locations to exist in an external location that hopefully has versioning.


Use Dropbox sync or NextCloud sync

Or not. Using a database allows for integration on more devices such as mobile and Linux. Databases are optimized for searching, sorting, and a number of data-related functions. I'd rather not depend on my phone's CPU to handle that.

@shmolf
Copy link

shmolf commented Nov 6, 2019

What would be interesting, is if I could provide my own DSN to a private Database.

@manastalukdar
Copy link

Is this still expected at the end of Nov, or has it been pushed out to Jan 2020 (ref: Kickstarter campaign)...

@m0ll3art
Copy link

So as @manastalukdar asked how is the roadmap for the release? Do we have to wait Jan 2020? and what is the current situation concerning the storage debate

  • Release Desktop app / Browser app / DB cloud service(pouchdb/couchdb) (end of Nov, 2019)
  • Release Mobile MVP app(end of Dec, 2019)
  • Start working on FS based db

To recap as I understand the situation, (@Rokt33r) you will release the new boostnote with Cloud Storage option only. This implies to choose between 2 plans free or premium storage(+) and our data will be in the cloud only in the NoSQL DB. You will start the work on FS based storage after the Mobile version has been released. This means unlimited storage on my local FS or network-attached disk (dropbox sync,etc...) will be first available in 2020 (when not clear) . And the cost for 2GB is $4(20%discount) /month the first year, correct ?

(+)we will have either <100MB (free) or 2GB of storage depending on the plan without any option to store notes, folders locally.

@Rokt33r
Copy link
Member Author

Rokt33r commented Dec 20, 2019

We've revealed the first beta app now! Check it here. https://boostnote.io/ @manastalukdar @m0ll3art

@Rokt33r
Copy link
Member Author

Rokt33r commented Dec 20, 2019

@m0ll3art

To recap as I understand the situation, (@Rokt33r) you will release the new boostnote with Cloud Storage option only. This implies to choose between 2 plans free or premium storage(+) and our data will be in the cloud only in the NoSQL DB. You will start the work on FS based storage after the Mobile version has been released. This means unlimited storage on my local FS or network-attached disk (dropbox sync,etc...) will be first available in 2020 (when not clear) . And the cost for 2GB is $4(20%discount) /month the first year, correct ?

You're right.

we will have either <100MB (free) or 2GB of storage depending on the plan without any option to store notes, folders locally.

You can store your notes locally how much you want without any plan.

@benstigsen
Copy link

So a bit of feedback.
So far I like it! But here's a few things:

  • A "File > Settings" option in the toolbar would be nice, it just fits better (in my opinion) and would allow you to remove the settings icon from the main workspace.
  • Choose local storage folder instead of it being "/" as standard.
  • An option to open local directory, or at least display the path to local notes somewhere.

@manastalukdar
Copy link

manastalukdar commented Dec 20, 2019

Initial thoughts on the beta:

  • For Local storage, it would be good to be able to choose the folder location for the NoSQL d/b. That way it can been it synced across machines using OneDrive, DropBox, etc.
  • Need some mechanism to hide the top menu bar. Alt key does not work.
  • On Windows, the ugly title bar would be nice to be replaced. It is an eye sore in dark mode.
  • Ability to drag and drop a folder into another folder (or another storage) is missing.

@Rokt33r
Copy link
Member Author

Rokt33r commented Dec 21, 2019

@manastalukdar

For Local storage, it would be good to be able to choose the folder location for the NoSQL d/b. That way it can been it synced across machines using OneDrive, DropBox, etc.

Good to have but it should be quite fragile. So rather than supporting specific DB or storage services, I'm going to focus on much more general solution like File System(and WebDav maybe)

Need some mechanism to hide the top menu bar. Alt key does not work.

Yeah, we need to improve it more. Let us think a bit more. Or if you have specific idea, please create an issue.

On Windows, the ugly title bar would be nice to be replaced. It is an eye sore in dark mode.

The original app design also don't have titlebar. So we'll remove soon. We was a bit too hurry.. Anyway, I've created an issue for it. #204 I'm going to fix it soon.

Ability to drag and drop a folder into another folder (or another storage) is missing.

We need to fix it too. I'll make an issue for this.

@Rokt33r
Copy link
Member Author

Rokt33r commented Dec 21, 2019

@BenTearzz

A "File > Settings" option in the toolbar would be nice, it just fits better (in my opinion) and would allow you to remove the settings icon from the main workspace.

I guess it is better to discuss. If you think it should be changed, could you create an issue? I think both locations, the current one and your suggestion, are okay. But I'm not sure which one is better. So it should be better to gather more opinions.

Choose local storage folder instead of it being "/" as standard.

An option to open local directory, or at least display the path to local notes somewhere.

For the new app, we don't store data to specific folders(File System). It is stored in IndexedDB of your browser.(or Electron)

So you can have multiple local storage if you need but everything will be stored in the same IndexedDB.

But we're also planning to support File System based localStorage(Although it won't work in browser app) We probably start working on it after the renewed mobile app(It will be released start of the next year.) and the cloud service are settled.

@Redsandro
Copy link

Does your locally stored database automatically reload on change?
Otherwise syncing it like @manastalukdar mentions will be like BoostIO/BoostNote-Legacy#1519 except in stead of overwriting one note, it will overwrite all notes.

@Rokt33r
Copy link
Member Author

Rokt33r commented Dec 23, 2019

@Redsandro

Does your locally stored database automatically reload on change?

I'm not sure it could happen. AFAIK, Pouchdb won't delete any data. It keeps accumulating changes like Git.

@Redsandro
Copy link

@Rokt33r I'm not sure either but it seems plausible.

The scenario is to sync the database file and keep multiple instances in sync that way. So if one instance writes a change, any change, the database file is updated. If another instance of Boostnote Next is unaware of this update, but also writes a change, does it write out the old database to the file?

In other words, will this way syncing Boostnote instances even work? I think not, PouchDB is not meant to be used that way (every app needs its own database), so people should not try to sync the db file itself. But I am not sure. Only one way to find out I guess.

@Rokt33r
Copy link
Member Author

Rokt33r commented Apr 26, 2020

@Rokt33r Rokt33r closed this as completed Apr 26, 2020
@Rokt33r
Copy link
Member Author

Rokt33r commented Apr 26, 2020

@Redsandro
Sorry for my late answer. Yeah, if the app has multiple instance(multiple windows), the problem could happen. I think we need to make the app can has only one instance to access the db. I'll make an issue of it.

@Timoses
Copy link

Timoses commented Feb 22, 2021

Will webdav be supported?

Currently, it is great that local filestorage use is possible for the Desktop Apps. The file storage can be synced to Nextcloud (for example).

But it's impossible to use the mobile App with this approach currently because the mobile app does not seem to support the local file system storage option : /.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request 🌟 Issue is a new feature request.
Projects
None yet
Development

No branches or pull requests