Client-Side Renderer Web Engine
ProposeJS is a client-side renderer web engine designed to help developers create single-page websites without relying on server-side programming languages. It offers a maintainable, search engine indexable, and valid URL single-page experience using pure HTML, CSS, and JavaScript. No need to learn any new syntax!
The Foundation of ProposeJS
Effectiveness of Existing Tools
While tools like React and Vue are incredible and advanced for creating single-page applications (SPAs), they may not be suitable for every type of website. Here are some critical considerations:
- Effectiveness for All Websites: Are these tools effective for all kinds of websites?
- Justification for Use: Do these tools justify their use for every website?
Choosing the Right Approach
Consider a documentation website that requires maintenance and an SPA experience but does not need login or security checks. Should you choose a static website or a dynamic one like a React or Vue app?
- Static Website: You might face maintenance issues, and achieving an SPA experience is challenging.
- Dynamic Website: You could encounter SEO problems since dynamically generated content is not indexed by many search engines. Although using a backend like Node.js and Next.js can solve SEO issues, it introduces other complexities. You would need to learn multiple technologies, including Vue or React, Node.js, Next.js, and MongoDB, to build a simple, maintainable SPA.
Does this approach make sense? Should you focus on your project or invest time in learning these backend technologies?
Introducing ProposeJS
What if you could create a single-page website that is maintainable, offers an SPA experience, is SEO-friendly, and requires no new syntax learning?
ProposeJS is the solution. With just some basic configuration, your static website becomes dynamic and maintainable. There's no need to build any logic or programming, allowing you to focus on your project and scale up. You can build your application using the HTML, CSS, and JavaScript you already know and love.
ProposeJS Process
Target
ProposeJS is a client-side rendering engine designed to efficiently manage state changes and content manipulation without reloading the page. This approach enhances user experience and reduces developer effort. ProposeJS ensures that the default behavior of a website is maintained after state changes, allowing developers to work with HTML, CSS, and JavaScript without confusion.
Cleaning
ProposeJS automatically clears events, intervals, timers, ongoing requests, and previous content on state changes, and reinitializes them according to the state URL. All tasks are managed by ProposeJS, requiring developers to simply configure the system through what we call "proposals."
Proposals can include HTML content, CSS, and JavaScript data. ProposeJS is based on a text-based architecture, unlike virtual DOM or modular systems. It can execute any CSS and JavaScript library or framework in your project, though it is not compatible with JavaScript modules.
Strategy
ProposeJS fetches HTML, CSS, and JavaScript as text. The HTML text is converted into DOM nodes using a DocumentFragment, which is fast and efficient, providing significant performance benefits regardless of the complexity of the HTML structure. JavaScript code is executed using the Function constructor, ensuring that no files or data are included in memory or source, allowing ProposeJS applications to perform well over the long term without losing performance.
All tasks in ProposeJS are completed asynchronously, ensuring that users do not experience any blocking.