I've mainly designed this for backend devs (i.e. rails, django people who just render plain html/css on the front-end), and we generally do HTML sanitization on the server side.
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.
You can consider Cami as the light dom sibling of Lit (which uses shadow dom).
Cami loses out on slots & style encapsulation, but you can style Cami components with normal / global css like it’s part of the normal dom. And since there’s no shadow dom overhead, it’s more performant and there is no FOUC if you load CSS in <head>.
Yes, Cami uses fine-grained reactivity, so it’s a cousin of similar solutions like Solid signals, Svelte runes, Knockout / and MobX observables.
It doesn’t support SSR as it aims to be backend-agnostic (i.e. you can use python/ruby/haskell, and you can copy+paste the Cami module with no build step and you can start using it).
If you want SSR for the SEO benefits, I think it’s better to render the text-heavy parts as normal HTML for indexing with Google, and then mount the interactive parts with Cami / web components (i.e. “islands architecture”: https://www.patterns.dev/posts/islands-architecture)
Have you actually done this approach? If so, I'd love to hear more.
I ask because I often see the advice that people should look in the Shopify/Hubspot app stores for paid apps with lots of users/ratings and a low score, and while this sounds good, I've found very, very few apps that actually match these criteria. Typically a low score indicates a complaint that is outside of the technical scope that the app owners could address, and ends up being a weak signal imo.
I don’t do what you mentioned (ie. look for paid apps with lots of ratings & a low score), I look for any app with at least one 1 star or 2 star reviews and I also look for any problem (doesn’t have to be related to an app) in reddit or any forum.
To be fair, it’s quite a numbers game to dig for useful problems or insights.
Marketer here. If I were to define the fundamental aspects of marketing, it would be as follows (I also have a note about feedback loops after):
1. Customer empathy: you need to know their pains, dreams, opinions, frustrations, and more. The first step of marketing is to always meet people where they are the most frustrated. Good resources for this are Amy Hoy’s Sales Safari [1], or Netnography [2]. I also like Sean D’Souzas Brain Audit [3]. Sean’s is the most accessible.
2. Copywriting: Once you can empathize with the persona / customer, you’ll need to learn how to relate your product or service to the person’s problems, needs, or dreams. There are many scammy resources out there, but the person who does his marketing in the most ethical way is again Sean D’souza [4]. Robert Bly is also good [5].
3. Distribution: once you solve for customer empathy and the right positioning (through compelling copywriting), the final step is to distribute your copies in various media. Weinberg’s Traction is a good starting point [6].
Some will recommend Russell Brunson, Sam Ovens, Gary Halbert, etc, but these folks are in the extreme end of marketing, and may not suit everyone. Their methods work for “get rich quick” online courses or coaching programs, but not for real products or services where you need to sustain a brand over time. The resources I mentioned are a good foundation for ethical marketing.
RE: Feedback loops - the fastest way to get a feedback loop is to start with content marketing. Your article must solve a tiny problem, then you distribute it. If you get good feedback, then make a longer article, then get feedback again. Then turn it into an ebook or small online tool, then get feedback. Keep increasing the size of your solution until you get to your desired goal (like a SaaS).
Another way to get a feedback loop is through ads: run multiple ads, compare their conversion rates, drop the worst ones, scale the best ones, then add more ad tests.
Example: https://api.rubyonrails.org/classes/ActionView/Helpers/Sanit...