Split the "View Mode" into a separate project to improve rendering performance #2069
tungth1501-cmd
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Hi team 👋,
First of all, thank you for your amazing work on Lowcoder — it’s an incredible project with great potential.
I’d like to propose an architectural idea that could help improve performance and scalability for end users.
Currently, both the editor mode (where users build apps) and the view mode (where end users interact with the published app) are handled within the same project. This is convenient for development but may add unnecessary overhead for the view-only experience.
💡 Idea
I’m considering splitting the “View Mode” into a standalone project — for example, a lightweight runtime client that only handles rendering the published app.
This runtime could:
Render UI components directly using React.createElement or a lightweight virtual DOM.
Only include the minimal dependencies required for rendering.
Fetch the app schema/config from the backend and dynamically render components.
Exclude all the editor-related logic, libraries, and dependencies.
🎯 Goals
Improve initial load time and runtime performance for end users.
Reduce bundle size and memory footprint.
Allow independent deployment and caching for the viewer app.
🔍 Example Approach
The editor builds and publishes a JSON schema describing the app.
The “viewer project” consumes this schema and renders it dynamically.
We can still share common packages (like component libraries or hooks) between the two via a shared workspace.
❓Questions
Would this kind of separation align with the current Lowcoder architecture?
Are there any known limitations that would make this approach difficult (e.g., dependency injection, dynamic components, etc.)?
Would the team be open to exploring or discussing a possible “view-only runtime” version of Lowcoder?
Thank you for reading — I’d love to hear your thoughts or feedback on this idea.
Beta Was this translation helpful? Give feedback.
All reactions