@Sebastian Thanks for sharing the example! I took the time to thoroughly review how the React sample editor works. I also skimmed through the Custom Editor documentation, and I believe/hope I now have a clearer understanding. I also believe I should take the take and write down everything that crossed my mind initially
A couple of questions for clarification:
- Is the custom editor intended for users to build their own editor, embedded in an iframe, based on the Squidex API?
- If that’s the case, does it mean that Squidex itself doesn’t include a built-in editor, but rather allows users to fully customize the editor’s appearance and functionality within the Squidex app?
I’d like to share my initial thoughts on the real-time visual composer concept I’m proposing. Here’s a quick disclaimer: The idea is inspired by the UX of Headless CMS’s like Storyblok and Builderio, which I believe are well-designed for users to achieve their goals without investing lots of time in configuration.
Concept Overview:
The idea is to have a built-in visual composer where users can define both content schemas and UI component definitions for various use cases (e.g., landing pages, UI elements). Here’s where the real-time communication comes in: data transfer would occur between the iframe and the Squidex app in real time while editing, adjusting, curating their content.
Users could leverage any front-end framework they prefer (Nuxt, Next.js, etc.), or use their existing setup, with the only requirement being an SDK to fetch the data and dynamically render the landing page or other UI elements, based on what they create in the visual composer.
Key Differences from the Existing Solution (As I Understand It):
- Current Custom Editor: Requires users to use an entire React SDK to build and render a landing page within Squidex.
- My Proposal: Offer an SDK to fetch Squidex data, allowing users to dynamically render their application using any tech stack (e.g., integrating with an existing e-commerce platform to dynamically create a landing page or add elements like a promotional teaser in a specific category).
Example API Response:
{ // <--- This is the starting of the content e.g. landing page
"id": 231231,
"title": "Hello world",
"component": "app-hello-world", // <-- used to dynamically render the ui components
"content": { /* any user-defined content */ }, // <-- you can define fields or place child elements in a body (array)
"path": "hello-world",
"fullPath": "/hello-world",
"translations": {
"de": "/hallo-welt",
},
/* ...could be more sophisticated... */
}
This tech-agnostic API approach would free users from needing to build custom editors themselves and, therefore, reducing development overhead. They can focus on defining UI component schemas (e.g., text fields, rich text, nested child elements), creating the content, and fetching it through the provided API.
Does This Mean Replacing the Custom Editor?
No, that’s not the intention! The goal is to complement the existing editor by providing an alternative solution that allows greater flexibility and less overhead for those who prefer to focus on rendering content dynamically, using their own technology stack.
I hope this clarifies my proposal, and I’d love to hear your thoughts!