Writing this post yesterday made me realise, that there are three reasons why I don’t run my life out of Bike:
- Being a rich text editor makes the data less portable than Markdown (which I mostly use).
- This becomes a bigger problem as Bike isn’t available on iOS. Even just viewing my outlines is hard (or I have sacrifice the richness).
- I’ve figured out I prefer “file library” based apps.
- But these libraries are preferrably just open folders with text files, like NotePlan, Obsidian, Logseq, etc. But Bear and Ulysses are other examples of apps that still are pretty open.
I don’t have an aswer for the first one… It was recently discussed here, and the best options seems to make scripts etc.
Jesse has said he’ll work on iOS eventually - so I think number two will get sorted. (Getting a viewer, that can fold, would be a good stop-gap btw!)
However, the point of this post, is that I got an idea for how the third thing could be solved! And the first step of it requires (relatively) little work, I think!
(Also, I know some of this can be achieved with scripts and shortcuts. But especially with iOS on the horizon, I think it would be vastly preferrable to implement it in the core app.)
A Hub document
One of the reasons I like file libraries, is that I have a home inside the app and for its data. I’m also very “out of sight, out of mind”, so I also like to see my documents regularly while using the app. But keep in mind, I know this idea isn’t for everyone - so I absolutely want it to be optional (but there are arguments for it being the default behaviour).
Because, why do like the other apps, and build an entire UI for the library, when Bike already has great overview capabilities in its documents??
So, my idea is that users can assign a Default File Location (which defaults to the new iCloud folder) and a Hub Document. The latter always opens when you lanuch Bike, and has an easy way of creating new documents (explained later). Documents created from the Hub, gets saved in the Default Location.
As a bonus point, the part in the middle of a (bike) wheel, where the spokes go out from, is also called a hub!
Alternative way to create new files, and the MVP
One of the reasons I, in my own humble opinion, think this is a good idea, is that I think the minimum viable verson of this won’t be too much work to implement (I think!). IMO, it would “only” need:
- The ability to always open a specific file.
- A way to create documents from this file, that saves stuff in a default folder.
And since it just uses a Bike document as the GUI, a bunch of menus and stuff doesn’t need to be built!
My idea for the file creation, is the following:
- You select some text in the Hub Document (for instance something you want to be a title for a new outline, which is already under a header you’d like it to be under), and hit
Control + N
. - This creates a file with that title, in the default location.
- The file gets opened in a new tab.
- And the selected text became a URL to the new file.
If you hit Control + N
without having any text selected, you could get a text box to add a title, and the title (and URL) would get added at the caret.
I also think the option could be accessed by hitting Command + E (and then perhaps the up arrow) or by right clicking.
I think it could be a good idea to add some visual clues (like a border around the window) to indicate to the user that they’re in the hub. And I think the ability to create files like this from other files should be turned off (at least as the default). Maybe the option should be turned off for some types of content, like headers, code and notes?
If Bike were to ship in this “Hub Mode”, the welcome document could also start as the hub - with a flow where the users gets asked to test the document creation flow.
More ideas
This idea can be expanded a whole lot. Here are some ideas I’ve had while working on this. I’ve tried to shown some of them in the mockup below the list!
- Bike could watch the Default File Location, and if it notices a file that doesn’t have a link in the Hub, it would create one under a header called “Unsorted outlines”. (An option to rename this could also be nice.)
- If you delete the last link to a file in the Hub, the user could get asked if they also want to delete the file. (This would also be nice to have as a part of the welcome flow. That the user then deletes the test file they’ve made.)
- Header lines (in all documents) could get a “Sorting” button, that could sort its children by name, etc.
- Here it would be very nice if Bike could remember the "unsorted” state, and hitting the sorting button again turns off the sorting.
- Would there be a way for Bike to know the date of creation/last edit of linkes files, so it could sort by this as well?
- I’ve used YAML front matter to make my Markdown documents get the same title and tags everywhere - but Bike currently doesn’t support this. If it got this support, not only would Bike play better with other apps. You could also make “Smart Headers”, where “Every file with #Tag” gets listed.
- In my mockup, you can see that I’ve added a special header called “Properties” at the top of the document. This is a bit hidden in the start (maybe it should be totally hidden if the user hasn’t turned it on) - but if you unfold it, you, as a start, get one “Title” field and one “Tags” field.
Thoughts?
Anyone else loving Bike, but missing a library?
Is the MVP as “easy” as I make it out to be, Jesse?
Is it just a terrible idea in general??