Worked at a place that was doing this (creating a notion clone with some specific functionalities).
The hardest/most unstable part was getting a solid WYSIWYG editor experience with a bunch of different media handling.
The backend part seemed fairly trivial in comparison, so I'm not sure why would this be used to showcase strapi.
The one thing I'd warn about Strapi is they seem to be okay completely breaking everything in major versions. V3 to V4 has been quite frankly a total disaster - especially around handling deprecating mongodb support. They have some alpha & beta scripts which kind of work but require tweaks to work correctly for more complex data structures.
Every time someone says "Notion clone". I'm like, oh boy, that's a bold statement. I experimented with it a couple of times and its _a lot_ and a serious challenge.
In order to make a notion clone one would need an huge amount of GraphQL types. Notion has many different content blocks text, callout, tables, images, etc. And those types also have configurations i.e (table calendar, board, timeline). Additionally there are field types with individual configuration as well. These all need to be expressed trough the API, and graphql's interface system might be a candidate for it. But it will be a _lot_ of models.
On top of that you need to create the most flexible editor in existence in regarding editing these content blocks.
The easy part is storing though so that's good. For a small sized setup. You can just jam it in a postgres jsonb table make some materialised views and indexes and be done with it.
8 comments
[ 14.5 ms ] story [ 222 ms ] threadThe hardest/most unstable part was getting a solid WYSIWYG editor experience with a bunch of different media handling. The backend part seemed fairly trivial in comparison, so I'm not sure why would this be used to showcase strapi.
https://docs.strapi.io/developer-docs/latest/setup-deploymen...
https://forum.strapi.io/t/discussion-regarding-the-complex-r...
In order to make a notion clone one would need an huge amount of GraphQL types. Notion has many different content blocks text, callout, tables, images, etc. And those types also have configurations i.e (table calendar, board, timeline). Additionally there are field types with individual configuration as well. These all need to be expressed trough the API, and graphql's interface system might be a candidate for it. But it will be a _lot_ of models.
On top of that you need to create the most flexible editor in existence in regarding editing these content blocks.
The easy part is storing though so that's good. For a small sized setup. You can just jam it in a postgres jsonb table make some materialised views and indexes and be done with it.