Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFC: Roadmap for React-ESI #62

Open
J3m5 opened this issue Mar 8, 2024 · 1 comment
Open

RFC: Roadmap for React-ESI #62

J3m5 opened this issue Mar 8, 2024 · 1 comment

Comments

@J3m5
Copy link
Collaborator

J3m5 commented Mar 8, 2024

RFC: Roadmap for React-ESI

We are seeking feedback on the proposed roadmap for React-ESI and welcome your suggestions to refine it. The items listed below are not ranked in any particular order, and we're open to removing, adding or rearranging them based on priority and community feedback.

  • Dual ESM/CJS Build or ESM Only: Consider publishing react-esi with support for both module systems or transition fully to ESM to align with modern JavaScript standards.

  • Improve ESM Compatibility: Explore various strategies to enhance ESM compatibility, including:

    • Replacing dynamic require in the WithESI component with dynamic import, noting the shift to asynchronous code.
    • Making server-side code isomorphic and potentially leverage code splitting, thereby minimizing or eliminating the need for server-side bundling.
    • Investigating alternative solutions that could offer a balanced approach without significant trade-offs.
  • Function Component for WithESI: Propose a redesign of the WithESI component as a function component, embracing React's modern features and hooks.

  • NextJS-Specific Component: If necessary, introduce a component tailored for NextJS, especially considering the new App Router setup. This would avoid mixing NextJS-specific code into the base component and ensure a clean separation of concerns.

  • Simplify ESI Fragments Distribution in NextJS: Explore NextJS's App Router and API Routes for ESI Fragments, eliminating the need for a custom server. This simplifies deployment and removes the necessity for users to bundle Fragment components in a separate build step, streamlining the development process.

  • Development Dockerfile: Add a Dockerfile designed for development purposes. This would facilitate real-time testing of React-ESI integration and modifications directly within the examples, enhancing the development workflow.

  • E2E Testing: Implement end-to-end (E2E) tests based on the examples. These tests should be configured to run in continuous integration (CI) environments to ensure that new changes do not break existing functionalities, specially in production builds.

  • React/Vite Example: Update our examples to include a React/Vite setup. This reflects current trends in development practices and could simplify the build and bundling process, providing a more streamlined and efficient development experience.

  • Enhance Code Coverage Reporting: Switch to Codecov GitHub Action for uploading code coverage reports. This update replaces the outdated Coveralls integration, providing more accurate and up-to-date coverage analysis directly within our CI/CD pipeline.

  • Expand Ecosystem with Vue-ESI for Vue3 and NuxtJS: Develop a Vue3 and NuxtJS compatible version of React-ESI. This extension aims to bring the benefits of ESI to the Vue community, enhancing server-side rendering capabilities and component caching. Additionally, create an example project to demonstrate Vue-ESI's integration and usage, serving as a reference and starting point for developers.

Your input is invaluable to us as we aim to make React-ESI more robust and aligned with the needs of the developer community. Please share your thoughts, suggestions, or any additional items you believe should be considered for the roadmap.

@samriley
Copy link

samriley commented Sep 3, 2024

Hi, it looks good. I see that last commit to enable react 18 support never made it to npm - It would be good to publish that too. The last commit to this project is a few months ago now, is this project still under development? I've recently been looking at possible frameworks to replace our existing Nuxt2 framework and would love to find one that works with ESI's - we implemented something to support ESI's in Nuxt2... but it was a little ugly. Many JS frameworks seem to make working with ESI's painful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants