I Migrated from Notion, Which I Used for About Five Years, to Obsidian to Make Better Use of Codex CLI

Notion has helped me a great deal. After using it for nearly five years, it had become like air, naturally sitting at the center of my life to the point that opening Notion was the first thing I did after waking up. So why did I decide to migrate? A major reason was the change happening in my own environment.
There is Notion AI. It is excellent in its own right, but a little while ago I subscribed to ChatGPT Pro. In addition to strengthening ChatGPT itself, this plan also strengthens Codex CLI, which can be used for coding, and it costs $200 per month. It is a fairly large expense, but I agree with OpenAI's direction, so I want to put serious money there.
However, once that happens, using Notion AI for things starts to feel like subscribing to something twice. On top of that, the $200 ChatGPT Pro is impressive, so I want to do as many things as possible with it. That led me to the conclusion that it might be better if note and task management could also be done in a local environment.
As for the migration from Notion itself, there are already quite a few predecessors on the internet, so I expected that although there would be difficult parts, the migration itself would be possible. The problem is migrating the habit.
Can a tool that I had come to interact with so naturally that I opened Notion immediately after waking up preserve the same habit even after the environment changes? No matter how good a tool is, if you stop using it, it has no meaning. On that point, I can only hope it continues, but for now I placed the Obsidian icon in the most frequently used position in the Dock. So far, it is continuing.
Importing from Notion
For importing notes from Notion, I used the official Importer plugin. The details are described in the link below, but the procedure I chose was a file-based migration: export from Notion, then import that into Obsidian. I did not use the API route because if everything is exported as files, I can retry as many times as I want if something goes wrong, but with the API route I would lose access after cancelling.
Broadly speaking, the import had no major problems, but there were about three troublesome areas during the migration.
Migrating Daily Notes
I have been writing Daily notes since February 3, 2021, so I have continued for about five years. However, when I looked back, there were some days in the first half of 2021 when I did not write, so it seems it had not yet become a complete habit. By the second half of 2021, daily tasks and similar things were written every day, confirming that it had become a habit. I think this is a valuable asset, and I would like to analyze it with AI someday.
These Daily notes are deeply related to habit formation. In Notion, I prepared something like a one-week template, and it already contained rough standardized weekly plans. On Sunday night, I would create the next week's pages and write in the detailed plans unique to that week. However, Notion's default functionality does not automatically generate standardized plans for each weekday. So I decided to use Templater to change the inserted content depending on the day of the week when it is generated. I hope to explain this somewhere.
Migrating Study Notes
Another difficult migration item was the learning logs I managed under the name Study. These were used to keep writing down things I did not know and learned through search, books, and so on, with notes separated by category. When I counted them, there were 216 categories. For example, categories continued with names like "visionOS," "A11y," "Figma," and "Rust," and there were even notes like "Japanese language education" and "My Number."
This became a bit of a problem during migration. Notion can create nested notes, and for categories that had grown too numerous, I had created nested archives. But when imported simply, these did not become folders; each became a Markdown file. This is where Codex CLI comes in. Because the files are local, I can ask it in natural language to generate folder names by removing the extension from each filename and move each file into its folder, applying that to everything under Study. That was a moment when I was glad I had moved to Obsidian.
Migrating the URL Database
Notion has database functionality, and I used it too. The main use was as a web bookmark feature. I recorded sites I wanted to note from a browser extension into a Notion database and managed that information inside Notion. Migrating this required a small workaround in Obsidian. Obsidian also has a feature called Base, which reads metadata from Markdown files under a specific folder and treats it like a database. By integrating with that, I was able to maintain a database in Obsidian.
Other Small Details
In Notion, I heavily used collapsible lists, written as "> ". Obsidian has no corresponding element. Since it is Markdown, that cannot be helped. These are imported as ordinary lists, but when a code block existed inside a collapsible list, it could not be displayed properly in Obsidian. The indentation count seems to become strange. I had to fix those parts manually, but going forward, even when using tools like these, I want to create content based on how it can be expressed in plain Markdown as much as possible. As long as it is in a file format, it has many kinds of versatility.