Notion as a bookmarks app
Using Notion as a powerful bookmarks manager and CMS
I have been using Notion for about 2 years now and I really like it. I started using it with the Weekly to-do list and Reading list templates to manage a my weekly tasks and reading lists. I also introduced Notion to the team at Cryptlex to manage projects, and other internal documentation.
After implementing the Tasks and Projects templates at work, I wanted to do the same for my personal tasks and reading list databases.
I was documenting research programs and jobs I wanted to apply to, interesting products I came across, articles I have read, personal projects, and a lot more in separate databases and pages on Notion. Toward the end of December 2023, I migrated all these databases to the new Tasks and Projects templates to have a single source of truth for planning my productivity.
A structured record of things that I have done helps me reflect better on the work I have done similar to a calendar, allows me find links from the past, and share what I have been learning with my colleagues and friends.
At first, I thought of using an automation to set the Completion Date on my Tasks but the ‘Automations’ feature is only available on paid plans. Thankfully, using the new database buttons feature allowed me to achieve the workflow I needed.
Automated publishing
I’ve been curating a weekly learning list to share with my friends and colleagues for a while now and I wanted to automate publishing this information. I added a “Publish” checkbox property to the Tasks database to mark pages I will publish to my website and started working on an integration. The @notionhq/client for JavaScript made it easy to make this integration.
return notion.databases.query({
database_id: TASK_DATABASE_ID,
page_size: 200,
filter: {
and: [
{
property: "Status",
status: {
equals: "Done",
},
},
{
property: "Publish",
checkbox: {
equals: true,
},
},
],
},
sorts: [
{
property: COMPLETION_TIME_PROPERTY_NAME,
direction: "descending",
},
],
});
Combined with Astro’s static-site generation using the getStaticPaths()
function, the end result is the Library page on this website.
Next steps
- How would I optimize the build process? Currently, in the getStaticPaths() function, I run a loop to get all publishable entries from every month since December 01, 2023. However, this will slow down the build process as the number of tasks increases and I expect it to break the build at some point.
- As an extension of the previous, how would I optimize cost if the API calls were paid? This is often a constraint in projects that have a larger scale than my personal website.
Update: 18 Apr 2025
I migrated this content over to plain Markdown and closed my Notion account. You can read about it here.