I'm looking for some advice as my team transitions into developing a reactive web component for a project that needs to integrate with various web platforms like Laravel and Typo3. We usually work with PHP systems and have mainly used Laravel for larger projects, alongside WordPress or Typo3 for CMS. While I'm familiar with Vue and Svelte, the rest of my team is not as experienced with modern JavaScript frameworks.
Our goal is to create a component that pulls data from API endpoints, ensuring it's safe and fast while fitting into our existing setups (like Tailwind). Although this won't be a massive web app, it's not a quick task either. We need something that will work across different environments since the component might end up on multiple sites.
I've narrowed down our options to React, Vue, Svelte, or Lit. I think Lit could be an attractive choice due to its clean integration with HTML and the fact that it doesn't require compilation for simpler use cases. However, I haven't heard much about Lit before, so I'm curious if anyone has experience with it. What are the pros and cons? I'm keen to hear any recommendations!
2 Answers
Lit is fantastic for creating web components—it’s lightweight and integrates well. It's important to note that it's not exactly a full-fledged framework like React or Vue, so depending on your requirements, you might want something widely adopted and easier to learn. React or Vue might be more mainstream choices, while Svelte could be a bit niche.
Building a reusable widget is a good approach, and using web components could simplify that process. Lit is definitely a solid choice if you're looking for something to work seamlessly across different platforms. I once created a similar setup and found that web components offered great reusability and compatibility. Depending on your specific needs, though, customizing around Lit is worth considering if the complexity rises.

Thanks! I see your point—Vue might work best for us, and perhaps we can still implement Lit alongside it for simplicity.