Skip to content

Improving public/web codebase #422

Open
@fraxken

Description

@fraxken

This project began as a small interface built with Vanilla JavaScript, with limited features and interactions. Over the past five years, the project has grown significantly, and attempts to completely rebuild it from scratch have failed due to the substantial effort required.

Moreover, we’ve been committed to maintaining an interface with minimal dependencies, in line with the project's image and goals. This approach has become increasingly important, especially with initiatives like e18e (we’ve even been criticized for shipping too many dependencies 😅).

To address these challenges, we've adopted a more pragmatic approach, focusing on incremental improvements rather than a full rebuild. Today, the project consists of a set of pseudo-components fully managed in Vanilla JavaScript without any external libraries, though it includes some legacy components like the search bar.


The purpose of this issue is not only to provide context but also to discuss our vision and share ideas on how to improve the project.

Here are my current ideas:

  • Implement Lit.js to maintain a primarily Vanilla approach while structuring our components more effectively.
  • Separate templates and allow them to reside in the components folder. This would require a build step, possibly using esbuild, or rendering the complete HTML with templates when the HTTP server starts.
  • Migrating to TS (could be quite difficult because of globals usage and things like that).

Metadata

Metadata

Assignees

No one assigned

    Labels

    InterfaceIssue/Task related to the Web Interfacehelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions