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

#42 replace React with SolidJs #66

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

Technologeek
Copy link

@Technologeek Technologeek commented Oct 9, 2024

Implements FLASH as SPA with SolidJS #42

Summary:

This PR introduces a basic migration from React to SolidJS, aiming to explore potential performance improvements. This is an early implementation and not yet production-ready. If there's sufficient interest, I will continue to fully migrate the app to a proper SolidJS ecosystem, including linting, testing, and other essential tools.

Notes:

  • This is an experimental implementation and not production ready!
  • Certain features, such as Flash functionality, may not work as expected, as I'm still exploring SolidJS's behavior in those areas.

Architectural Decision: SPA vs SSR vs SSG

I opted for a **Single Page Application ** architecture in SolidJS, and here's the rationale behind this decision:

  1. Performance:
    Since Flash is not content-heavy, an SPA provides better performance after the initial load.

  2. SEO Not a Priority:
    Given that SEO isn't a major concern for this project, we don't require the potential SEO benefits of SSR.

  3. Dynamic Content:
    Flash seems largely dynamic and user-specific, such as device connection statuses and flashing progress, which aligns well with the SPA model.

  4. Offline Capabilities (Future Consideration as there seems to be an ongoing Bounty as well):
    Should we need PWA features in the future, the SPA architecture simplifies the process.

Benchmarks:

  • ReactJS Performance:

    ReactJS Benchmark

  • SolidJS Performance:

    SolidJS Benchmark


Let me know if you'd like any further tweaks!

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

Successfully merging this pull request may close these issues.

1 participant