cami.js
marimo
cami.js | marimo | |
---|---|---|
8 | 13 | |
366 | 4,050 | |
- | 6.2% | |
9.5 | 9.9 | |
10 days ago | 5 days ago | |
HTML | Python | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
cami.js
-
HTML Web Components
Preact requires a build step otherwise you don't get JSX and you have to build applications a la mithril.js mode:
> const app = h('h1', null, 'Hello World!');
With Web Components no build step is required and you're still able to build JSX'ish code. See the code below this section: https://github.com/kennyfrc/cami.js#key-concepts--api
- Cami.js - A No Build, Web Component Based UI Framework
-
Show HN: Cami.js – A No Build, Web Component Based Reactive Framework
Yes, the lib's great!
Unfortunately I haven't thought much yet about interoperability with other web components libraries like lit. I imagined folks would choose just one web component library over the other.
That said, you can initialize reactive properties(1), but property bindings won't work if there's a parent LitElement (as my reactive properties need to be called with either a .value method or an .update method for getting and setting respectively).
As of the moment, what's possible is interop with other cami elements using a store, and in a future version, i'm considering a richer event system for external javascript code to listen to.
---
(1) Initializing is possible with observerableAttr: https://github.com/kennyfrc/cami.js/blob/master/examples/008...
-
Leaders Are Tool Builders: Why I Wrote My Own JavaScript UI Framework
The author is getting a bit of heat, and I think rightfully so. Here is the "tool" he's all bragging about: https://github.com/kennyfrc/cami.js/blob/master/src/cami.js
The whole thing is 250 Loc half of which is comments. And not to discount on that (Redux itself is not that big, though the ecosystem is). But this tool/project could be just a few blog posts where the author explains the patterns/libraries he is using.
It also doesn't help that his blog post/tool has the highest concentration of buzzword language you can expect. Please don't do that.
marimo
-
Show HN: Marimo – open-source reactive Python notebook – running in WASM
We do support GitHub Copilot in the pip/conda installable version that you can run locally on your computer. (https://github.com/marimo-team/marimo)
We have considered adding more copilot features for refactoring or text-to-cell.
-
Show HN: Privacy-first cross platform spreadsheet pipeline app
i use marimo for this sort of stuff. Its a jupyter alike, but can be used to make simple internal apps
https://github.com/marimo-team/marimo
- FLaNK 15 Jan 2024
-
Show HN: Marimo – an open-source reactive notebook for Python
He is an example: https://marimo.io/@public/signal-decomposition
- Marimo – a fresh take at reactive Python notebooks
-
HTML Web Components
We use web components in our project (a reactive Python notebook that, among other things, lets users build simple web apps [1]) to make it easy for the user to instantiate and compose our UI elements. Users can easily interpolate these elements into markdown, for example, since their representation is just HTML.
[1] https://github.com/marimo-team/marimo
-
Marimo: Next-Generation Python Notebook
Thanks for sharing! marimo is free and open source (Apache 2.0): https://github.com/marimo-team/marimo
It's been under development for over a year and is used in research, science, and education across a number of labs and companies. We'll have lots more to share soon!
What are some alternatives?
select2 - Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.
jupyter-vim-binding - Jupyter meets Vim. Vimmer will fall in love.
ElementsJS - A lightweight DOM Manipulation library for VanillaJS
vscode-dvc - Machine learning experiment tracking and data versioning with DVC extension for VS Code
formio - A Form and Data Management Platform for Progressive Web Applications.
hal9 - Hal9 — Create and Deploy GenAI Chatbots
mini-van - Mini-Van: A minimalist template engine for DOM generation and manipulation, working for both client-side and server-side rendering (SSR)
htm - Hyperscript Tagged Markup: JSX alternative using standard tagged templates, with compiler support.
Immer - Create the next immutable state by mutating the current one
webcomponents - Web Components specifications
webcomponents-blog-examples
htmx - </> htmx - high power tools for HTML