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

Roadmap #3

Open
32 tasks
drinking-code opened this issue Oct 26, 2022 · 1 comment
Open
32 tasks

Roadmap #3

drinking-code opened this issue Oct 26, 2022 · 1 comment
Labels
tracking Issues for planning & tracking or aggregate related issues.

Comments

@drinking-code
Copy link
Owner

drinking-code commented Oct 26, 2022

Tracking plans for cherry-cola.

Stability & Flexibility

Cherry-cola has to become stable with all the current features.

  • Dynamic code synchronisation (DOM)
    • Text content
    • Attributes
    • Element types
    • Wrapping / unwrapping elements (moving the other elements horizontally)
    • Appending / prepending elements (moving the other elements vertically)
  • Stable client side element finder (DOM tracking) [low priority]
  • Assigning multiple elements to a single ref [testing]
  • Lexical scope extraction as a function, give file and target position, and (target) function with lexical scope is extracted and bundled
    • For doSomething() callbacks
    • For state .use() callbacks
  • Complete document elements (html (?), head, body) components
  • Full CLI (dev, build, start)

Performance

  • Leverage Bun's APIs (instead of relying on the polyfills)
  • Analyse and optimise compiler timeline and communication between different components of the compiler
  • Optimise the style plugin for imports to compile css (and scss, sass) module names without using sass
  • Test for rendering performance
  • Focus on page load (perceived) performance

Features

  • Deferring sideEffect() results
  • Routing (and location, response codes)
  • CSS splitting and deferring
  • Islands
    • Island priority
    • Scrollable islands (infinite scrolling with predefined content)
  • Component / module lazy loading (code splitting)
  • Images
    • Image component (automatic responsive images)
    • Image generation (favicon, thumbnails / rich link image)
  • Static site generation
  • Tool for analysing site load performance
  • Full client site automatic app version manager
  • Boilerplate generator
@drinking-code drinking-code pinned this issue Oct 26, 2022
@drinking-code drinking-code added the tracking Issues for planning & tracking or aggregate related issues. label Oct 26, 2022
@drinking-code
Copy link
Owner Author

Edit to list after reimplementation:

  • States are not bound to types anymore, to type switching is not a problem anymore
  • Dynamic code synchronisation implementation was thrown out; has to be reimplemented
  • Refs fundamentally have the ability to store multiple elements → mature this feature
  • doSomething() works differently now; it is compiled by going through files; should be rewritten so that the lexical scope of the function is extracted with babel when it is called and compiled into a callable module, similar to state usage callbacks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tracking Issues for planning & tracking or aggregate related issues.
Projects
None yet
Development

No branches or pull requests

1 participant