# Org-roam major redesign

**URL:** <https://org-roam.discourse.group/t/org-roam-major-redesign/1198>\
**Category:** Development\
**Created:** [January 23, 2021, 1:17pm UTC](https://org-roam.discourse.group/t/org-roam-major-redesign/1198 "2021-01-23T13:17:57Z")\
**Posts on this page:** 20\
**Page:** 4

<div class="post-metadata">

**Author:** ![jethro](https://avatars.discourse-cdn.com/v4/letter/j/b5a626/32.png) [@jethro](https://org-roam.discourse.group/u/jethro)\
**Post date:** [February 14, 2021, 10:34am UTC](https://org-roam.discourse.group/t/org-roam-major-redesign/1198/62 "2021-02-14T10:34:48Z")

</div>

> [@Gustav](#):
>
> Oh, btw - you say “use UUIDs”. Do you mean Org Roam v2 is limited to the UUID implementation in Org ID, or did you mean the regular Org ID functionality, also ID’s based on timestamps or whatever the user chooses?

I meant just Org IDs.

---

<div class="post-metadata">

**Author:** ![nobiot](https://yyz2.discourse-cdn.com/free1/user_avatar/org-roam.discourse.group/nobiot/32/159_2.png) [@nobiot](https://org-roam.discourse.group/u/nobiot)\
**Post date:** [February 14, 2021, 6:13pm UTC](https://org-roam.discourse.group/t/org-roam-major-redesign/1198/63 "2021-02-14T18:13:48Z")

</div>

Oh, yeah, it feels like a whole new world, @jethro.  
Just tried with test files for now to get used to it.

I like it 🙂

- It looks better  
`org-roam-buffer` looks more inviting and functional. With widgets, I believe it will be easier to invite tinkerers to contribute their own ones. You and project can focus on the core; the community can tinker and share extensions.
- It feels a lot more streamlined  
Not just about going all in with Org-id. By the looks of it, `org-roam-setup` can be put into the `after-save` hook, which I think I would do, or be added to another more sophisticated chain of functions. I guess this will save a lot of questions around 2-second waiting, or immediate DB update, and so on  
[**EDIT** : nope. Apparently, that’s not what I will do 😉 `org-roam-setup` is for initial setup to add hooks and advice that Org-roam requires; `org-roam-teardown` seems be used to deactivate all this]
- Personalizing `org-roam-buffer` placement looks easier  
It looks to be just another window (no longer a buffer in a side window) by default… I imagine that personalizing where and how it gets displayed can be easier with `display-buffer-alist` and other built-in facilities.

Very open and frank feedback. As I find V2 encouragingly good, I think it deserves some plans or even just anticipation of how users might respond to it when it finally launches.

I could anticipate a lot of “migration” queries from V1 users, and even with new users starting directly with V2, as all the YouTube, blogs, and other instructions that community has put together so far will need to be revised. There will be void of community-based knowledge base for new users to fall back on, at least in the initial phase.

All this means there will likely be a lot of backlog questions to answer, leaving little breathing space for you and the project to keep going with V2.

Maybe I am thinking too much, and you can just swim through the new water with no problem, knocking off questions as they come. But I will be happy to do some early documentation of some sort, if it helps, of course (I cannot do this until at least end of March in the current plan of my other pressing engagements).

As an idea… We could start a wiki that collects V1 → V2 migration issues and solutions. It could be in this forum, or the wiki page in GitHub repo. It does not have to be a long-term thing, so just something that can be quickly put together would be good enough. Just a thought.

My personal example of an issue just to illustrate my point. This is not a problem for me, and certainly not something I am requesting for change. But these things will likely pop up, and I think it would be better if we had some documentation to point people to.

`org-roam-open-id-at-point` seems to have been removed. This means my manually typed/generated ID won’t work as a link `[[id:123]]` as it won’t be recognized by `org-id-find` even when Org-roam has no issue in finding it as a backlink. My custom timestamp ID won’t work. Not an issue; I just need to think this through.

---

<div class="post-metadata">

**Author:** ![Gustav](https://yyz2.discourse-cdn.com/free1/user_avatar/org-roam.discourse.group/gustav/32/511_2.png) [@Gustav](https://org-roam.discourse.group/u/Gustav)\
**Post date:** [February 14, 2021, 7:01pm UTC](https://org-roam.discourse.group/t/org-roam-major-redesign/1198/64 "2021-02-14T19:01:28Z")

</div>

> [@nobiot](#):
>
> `org-roam-open-id-at-point` seems to have been removed. This means my manually typed/generated ID won’t work as a link `[[id:123]]` as it won’t be recognized by `org-id-find` even when Org-roam has no issue in finding it as a backlink. My custom timestamp ID won’t work. Not an issue; I just need to think this through.

Hmm, what issues do you see with your manually typed ID’s? I seem to have no issues on my side. Guessing a bit: Maybe you need to trigger `org-id-update-id-locations` after you’ve created the ID’s for Org mode to recognize them?

---

<div class="post-metadata">

**Author:** ![nobiot](https://yyz2.discourse-cdn.com/free1/user_avatar/org-roam.discourse.group/nobiot/32/159_2.png) [@nobiot](https://org-roam.discourse.group/u/nobiot)\
**Post date:** [February 14, 2021, 9:13pm UTC](https://org-roam.discourse.group/t/org-roam-major-redesign/1198/66 "2021-02-14T21:13:03Z")

</div>

> [@Gustav](#):
>
> `org-id-update-id-locations` after you’ve created the ID’s for Org mode to recognize them?

Oh I see. That may be the solution. I’ll try (away from PC now). Good to know. Thank you.

I think my point about need for documentation still stands. There needs to be additional knowledge to be learned. I take it as a positive challenge, but some people would need a bit easier transition.

Edit: Great. It works. I need to specifically call the command with the file as an element of the FILES list argument… Really good to know. I was going to do some research to see if there was a way. Thank you. Need to find a good spot to call this 😉

---

<div class="post-metadata">

**Author:** ![jethro](https://avatars.discourse-cdn.com/v4/letter/j/b5a626/32.png) [@jethro](https://org-roam.discourse.group/u/jethro)\
**Post date:** [February 15, 2021, 4:45am UTC](https://org-roam.discourse.group/t/org-roam-major-redesign/1198/67 "2021-02-15T04:45:19Z")

</div>

> [@nobiot](#):
>
> `org-roam-open-id-at-point` seems to have been removed. This means my manually typed/generated ID won’t work as a link `[[id:123]]` as it won’t be recognized by `org-id-find` even when Org-roam has no issue in finding it as a backlink. My custom timestamp ID won’t work. Not an issue; I just need to think this through.

This is something I am considering adding back though, I just deleted a lot of non-core stuff, to add back later if necessary.

---

<div class="post-metadata">

**Author:** ![jethro](https://avatars.discourse-cdn.com/v4/letter/j/b5a626/32.png) [@jethro](https://org-roam.discourse.group/u/jethro)\
**Post date:** [February 15, 2021, 10:57am UTC](https://org-roam.discourse.group/t/org-roam-major-redesign/1198/68 "2021-02-15T10:57:34Z")

</div>

> [@nobiot](#):
>
> Very open and frank feedback. As I find V2 encouragingly good, I think it deserves some plans or even just anticipation of how users might respond to it when it finally launches.
> 
> I could anticipate a lot of “migration” queries from V1 users, and even with new users starting directly with V2, as all the YouTube, blogs, and other instructions that community has put together so far will need to be revised. There will be void of community-based knowledge base for new users to fall back on, at least in the initial phase.
> 
> All this means there will likely be a lot of backlog questions to answer, leaving little breathing space for you and the project to keep going with V2.
> 
> Maybe I am thinking too much, and you can just swim through the new water with no problem, knocking off questions as they come. But I will be happy to do some early documentation of some sort, if it helps, of course (I cannot do this until at least end of March in the current plan of my other pressing engagements).

I think it would be much easier to forget that v1 exists, and learn v2 on its own. Those currently using file links will have all their org-roam files create org-ids for each file on first cache build. Migration is just a matter of looping through all files and replacing file links with id links where possible.

Now that Org-roam is much simpler, documentation should also be easier. This is something I will get right before releasing v2.

---

<div class="post-metadata">

**Author:** ![nobiot](https://yyz2.discourse-cdn.com/free1/user_avatar/org-roam.discourse.group/nobiot/32/159_2.png) [@nobiot](https://org-roam.discourse.group/u/nobiot)\
**Post date:** [February 15, 2021, 11:08am UTC](https://org-roam.discourse.group/t/org-roam-major-redesign/1198/69 "2021-02-15T11:08:01Z")

</div>

Sure. Technical moving and changing the file links will be easy enough. I’m looking forward to using V2 more, and for your documentation.

My “migration” point is that Org-roam never exists in a pure Emacs environment - always used in conjunction with other distro and packages. Many of the troubleshooting and queries I have had a chance to interact with are related to actual usage in the wild where Org-roam used in combination with something else.

Maybe it’s just me over thinking. The “in the wild” issue is not unique to V2. It’s just that I can anticipate many questions in the from of “I was doing X with V1; how do I it with V2?”. Perhaps it’s a matter of unlearning V1 and learning V2 anew.

---

<div class="post-metadata">

**Author:** ![Memex](https://avatars.discourse-cdn.com/v4/letter/m/5e9695/32.png) [@Memex](https://org-roam.discourse.group/u/Memex)\
**Post date:** [February 15, 2021, 6:52pm UTC](https://org-roam.discourse.group/t/org-roam-major-redesign/1198/70 "2021-02-15T18:52:29Z")

</div>

> You can jump to node, preview, olp, and unlinked reference. Preview UX is still WIP, but I don’t think it’s essential for v2.

I am curious, by preview do you mean just the text around the link reference or something else?

---

<div class="post-metadata">

**Author:** ![rakoenig](https://yyz2.discourse-cdn.com/free1/user_avatar/org-roam.discourse.group/rakoenig/32/579_2.png) [@rakoenig](https://org-roam.discourse.group/u/rakoenig)\
**Post date:** [February 16, 2021, 6:32pm UTC](https://org-roam.discourse.group/t/org-roam-major-redesign/1198/71 "2021-02-16T18:32:45Z")

</div>

> [@jethro](#):
>
> Basically everything else will break: org-roam-bibtex, org-roam-server included.

That is kind of sad news because especially org-roam-server is a nice way to navigate through the graph. Filed an issue about the v2 plans on the org-roam-server GitHub site, but no reaction so far. ☹

Nevertheless, thanks for all the work you’re putting into the project.

---

<div class="post-metadata">

**Author:** ![konubinix](https://yyz2.discourse-cdn.com/free1/user_avatar/org-roam.discourse.group/konubinix/32/519_2.png) [@konubinix](https://org-roam.discourse.group/u/konubinix)\
**Post date:** [February 17, 2021, 9:47am UTC](https://org-roam.discourse.group/t/org-roam-major-redesign/1198/72 "2021-02-17T09:47:40Z")

</div>

Rainer Koenig via Org-roam [orgroam@discoursemail.com](mailto:orgroam@discoursemail.com) writes:

> > [@jethro](#):
> >
> > Basically everything else will break: org-roam-bibtex, org-roam-server included.
> 
> That is kind of sad news because especially org-roam-server is a nice way to navigate through the graph. Filed an issue about the v2 plans on the org-roam-server GitHub site, but no reaction so far. ☹

It will break, but I have no doubt it will be fixed. You can still stay  
on the v1 while the org-roam ecosystem stabilizes :-).

---

<div class="post-metadata">

**Author:** ![rodelrod](https://yyz2.discourse-cdn.com/free1/user_avatar/org-roam.discourse.group/rodelrod/32/184_2.png) [@rodelrod](https://org-roam.discourse.group/u/rodelrod)\
**Post date:** [February 22, 2021, 12:04pm UTC](https://org-roam.discourse.group/t/org-roam-major-redesign/1198/73 "2021-02-22T12:04:18Z")

</div>

This is looking beautiful, thanks for the hard work!

---

<div class="post-metadata">

**Author:** ![bbigras](https://avatars.discourse-cdn.com/v4/letter/b/9d8465/32.png) [@bbigras](https://org-roam.discourse.group/u/bbigras)\
**Post date:** [February 27, 2021, 7:25pm UTC](https://org-roam.discourse.group/t/org-roam-major-redesign/1198/74 "2021-02-27T19:25:14Z")

</div>

Does `org-roam-insert` work with the v2 branch? I’m not sure how to build links with the new branch.

---

<div class="post-metadata">

**Author:** ![jethro](https://avatars.discourse-cdn.com/v4/letter/j/b5a626/32.png) [@jethro](https://org-roam.discourse.group/u/jethro)\
**Post date:** [February 28, 2021, 6:43am UTC](https://org-roam.discourse.group/t/org-roam-major-redesign/1198/75 "2021-02-28T06:43:14Z")

</div>

`org-roam-node-insert`

---

<div class="post-metadata">

**Author:** ![bbigras](https://avatars.discourse-cdn.com/v4/letter/b/9d8465/32.png) [@bbigras](https://org-roam.discourse.group/u/bbigras)\
**Post date:** [March 3, 2021, 3:25am UTC](https://org-roam.discourse.group/t/org-roam-major-redesign/1198/76 "2021-03-03T03:25:16Z")

</div>

Thanks, I was using `org-roam-insert`.

---

<div class="post-metadata">

**Author:** ![savnk](https://avatars.discourse-cdn.com/v4/letter/s/3ec8ea/32.png) [@savnk](https://org-roam.discourse.group/u/savnk)\
**Post date:** [March 4, 2021, 8:12pm UTC](https://org-roam.discourse.group/t/org-roam-major-redesign/1198/77 "2021-03-04T20:12:11Z")

</div>

For v2, What do you think about adding “file creation time” to [file meta data](https://github.com/org-roam/org-roam/blob/3d1a9cb40969e7ac6d3a0c409d69a276b4108ddd/org-roam-db.el#L132-L136). It is useful to view files that have been created within a range of days.  
I currently use ‘#+created:’ keyword to manage this (I believe the default templates populate it), I would like this to reside in the database as well so that the script I use doesn’t need to parse my whole org-roam directory and only needs to query the database.  
It would be parsed like org-tags keyword and placed in the database.

---

<div class="post-metadata">

**Author:** ![jethro](https://avatars.discourse-cdn.com/v4/letter/j/b5a626/32.png) [@jethro](https://org-roam.discourse.group/u/jethro)\
**Post date:** [March 6, 2021, 5:31am UTC](https://org-roam.discourse.group/t/org-roam-major-redesign/1198/78 "2021-03-06T05:31:44Z")

</div>

I’ve thought about it before, but file creation time is not part of the Unix API, and any other way of tracking created time would be non-standard. Org-roam stores atime and mtime but actually doesn’t do anything meaningful with it now (used to be for sorting, but not anymore, at least not yet)

One way is to use some form of VCS, and use the VCS stats instead. I think this sort of versioning plain text files makes a lot of sense, but I haven’t really thought deeply about how to enhance their interactions.

---

<div class="post-metadata">

**Author:** ![arozbiz](https://avatars.discourse-cdn.com/v4/letter/a/898d66/32.png) [@arozbiz](https://org-roam.discourse.group/u/arozbiz)\
**Post date:** [March 6, 2021, 11:41pm UTC](https://org-roam.discourse.group/t/org-roam-major-redesign/1198/79 "2021-03-06T23:41:38Z")

</div>

Will the v2 changes make it possible to filter backlinks? E.g., in my workflow it would be very useful to hide all the backlinks that originate from daily notes and only see those backlinks that originate from ordinary notes.

---

<div class="post-metadata">

**Author:** ![jethro](https://avatars.discourse-cdn.com/v4/letter/j/b5a626/32.png) [@jethro](https://org-roam.discourse.group/u/jethro)\
**Post date:** [March 7, 2021, 3:11pm UTC](https://org-roam.discourse.group/t/org-roam-major-redesign/1198/80 "2021-03-07T15:11:35Z")

</div>

> [@arozbiz](#):
>
> Will the v2 changes make it possible to filter backlinks?

Not in the initial release, but is trivial to add.

---

<div class="post-metadata">

**Author:** ![cool\_ran](https://yyz2.discourse-cdn.com/free1/user_avatar/org-roam.discourse.group/cool_ran/32/130_2.png) [@cool\_ran](https://org-roam.discourse.group/u/cool_ran)\
**Post date:** [March 7, 2021, 3:23pm UTC](https://org-roam.discourse.group/t/org-roam-major-redesign/1198/81 "2021-03-07T15:23:49Z")

</div>

> [@jethro](#):
>
> VCS

Does it mean a version control system?

> [@jethro](#):
>
> but file creation time is not part of the Unix API, and any other way of tracking created time would be non-standard.

How about leaving an abstraction here and let the end-users build their own? For example, making a variable

- default not saving file/headline creating time
- UNIX system
- other systems

---

<div class="post-metadata">

**Author:** ![savnk](https://avatars.discourse-cdn.com/v4/letter/s/3ec8ea/32.png) [@savnk](https://org-roam.discourse.group/u/savnk)\
**Post date:** [March 8, 2021, 10:06pm UTC](https://org-roam.discourse.group/t/org-roam-major-redesign/1198/82 "2021-03-08T22:06:19Z")

</div>

> [@jethro](#):
>
> org-roam stores atime and mtime but actually doesn’t do anything meaningful with it now (used to be for sorting, but not anymore, at least not yet)

Although it is not part of the UNIX api, ext4 file system supports it. `stat` command returns creation date among other things.  
I don’t know about windows or mac.

I think the easiest way is to use the keyword `created` much like `roam_tag` and `roam_alias` because, this way, org roam can support this feature with minimal change to file parsing, capture template and database update. It would also lend it self to custom workflows because it makes it easy to implement personal timestamp across files that is supported by org roam (for example if one wants to track something else than creation time).

In the future, filesystem and os centric methods can be implemented to augment this feature.

I started tracking created time along with last\_updated within the file through recommended templates I found online (either in the docs, this discourse group or github issues). I don’t know if it is well spread (maybe we can do a poll). The default capture template is bare because it doesn’t use supported keywords. It can be updated to include this keyword among others for future files.

> [@jethro](#):
>
> Org-roam stores atime and mtime but actually doesn’t do anything meaningful with it now (used to be for sorting, but not anymore, at least not yet)

why was this discontinued? It sounds useful and it is possible to place sort over title length with it (either sort by date then by title length or the opposite).

[Previous page](https://org-roam.discourse.group/t/org-roam-major-redesign/1198.md?page=3)

[Next page](https://org-roam.discourse.group/t/org-roam-major-redesign/1198.md?page=5)
