My client is used to Wordpress and I want to give him a similar experience of creating content using Strapi.
I’d like him to have a wysiwyg that gives him the flexibility of:
- Layout flexibility
- Styling
- Social network embedding
CKEditor plugin seems to do it but it’s a little bit expensive for what it gives.
This topic has been created from a Discord post (1283624900908683305) to give it more visibility.
It will be on Read-Only mode here.
Join the conversation on Discord
Thats probably not Strapi is made for. You can get very good layout flexibility, but personally, styling and such is nothing you should do within a headless CMS. A headless CMS should contain clean content data only and any styling should be done in the frontend render layer. Not a huge fan, that clients can do whatever they like regarding styling, since this was carefully done and outlined by us beforehand. However, you can give lots of freedom regarding the layout via Dynamic zones.
I agree with you and that’s one of the reasons I convinced my client to go away from Wordpress. Anyway, I’m looking for a middle point: I want to give flexibility to some content managers (that are able to follow design guidelines) to build pages that doesn’t look just like a blog post.
I haven’t understand very well how Dynamic Zones work, but I will surely give it a try. Thanks!
Following up on <@125038622289166336> if you want to offer some styling capabilities I advise you create dedicated component for them that you can add where you need to to avoid “pollulting” the rest of the content data 
Overall for dynamic pages building dynamic zones is the way to go 
Checkout this repo for an example of using dynamic zones, I am using it to generate the landing page. My Strpai components have a Next js equivalent.
Based on what component the editor chooses in Strapi, that will be rendered in the Next js frontend.
If you have any other questions feel free to stop by during open office hours here on Discord.
Morning Session:
4 AM CST (9:00 AM GMT)
Afternoon Session:
12:30 PM CST (6:30 PM GMT)