Notion Random Thought
An integration for the Notion note-taking app
Description
Notion has been my note-taking app of choice for some time now. In particular I find it's simple database functionality extremely useful. However I can be quite a forgetful person so I wanted a system by which I could randomly resurface ideas
My major issue here was that a view into a Notion database can only pull data from a single source but my ideas (or other data) may be spread across many databases with different schemas. Perhaps outside an existing application, a NoSQL database solution would be appropriate but I wanted to continue using Notion
Originally I created this with a proprietary serverless function service called Pipedream. I have since migrated the system over to AWS Lambda so it sits on a more standardised platform, there is more potential to expand, and I got to learn an industry standard cloud service
Via Notion's API I could now pull data from many sources, choose some entries at random, create some simple reference items, and push them to a new database
Source code available at the link below
Post-analysis
This project was a great success and has achieved the goal it was originally intended for. It has provided some fantastic learning for serverless functions, originally in a proprietary system (Pipedream) but also in a standard industrial product (AWS Lambda). Additional experience interacting with REST api is always useful also
Whilst the goal has been achieved there is always room for improvement. Testing is minimal and error handling has some blindspots. Now that this is on AWS I can begin to leverage its wealth of resources to stablise the system
Ultimately I think it would be good to release this as a public product but it requires a lot more tooling. As it currently stands the code can be shared and others can set this system up for themselves in their own Notion workspace but it isn't exactly user-friendly, especially to non-developers
This may involve setting up AWS Cognito so that users can configure their integration, a simple web page to log in and configure, and a lot more testing. Maybe I'll get round to this in the future