looking at building a #fullstack web application and looking at my options for #rad #development of the frontend. I'm thinking of using #supabase for the #backend.

It's a fairly simple #CRUD app - or maybe a SCRUD or CRUDS app? The S being for #search

I'd pondering everything from a #lowcode tool to various #frameworks / #libraries - e.g. #react, #vue, #htmx, #materialui, etc.

Thoughts, recommendations?

#question

@davidshq I've built many such applications over the years. The ones built with #vue are still quite easy to maintain, even 5+ years later - Vue 3 + #typescipt + #vite is a great stack to work with.

If you must JSX, then use #preact. It's not a bad choice either, but maintaining the hook soup isn't fun in the long run.

@davidshq

  • axum for the backend
  • yew or dioxus for the frontend
@davidshq I am mostly a back-end person, and I have greatly enjoyed working with htmx in my single-dev small projects that need a SPA-ish web frontend.
@davidshq What is your background?
What languages are you comfortable with?
Is there a direction you want to do?
Is there anything in particular that seems attractive to you?

@_chrismay I've worked with a number of languages over the years (.NET [VB/C#], PHP), these days I've been primarily working in Python and TypeScript.

I've played around with others like Go and Ruby (/Rails)...

The UI is pretty straightforward CRUD + search/filter, so I'm looking for something that simplifies things on the frontend. I don't need a super fancy UI, it should be nice but not fantastic - when it comes to the trade-off between speed/simplicity and sparkly, I fall heavily on the former.

I'm torn between React, Vue, and htmx. React, in particular, adds complexity but also has some really nice pre-built component libraries etc. (Vue does too, htmx...not that I've found).

@davidshq Thanks for your thoughts!

With you falling heavily on the speed/simplicity side of the spectrum, I would suggest either unpoly or HTMX to power your front-end, unless you're using django, in which case, I'd suggest looking into django-unicorn.

They don't come with components, but there are component libraries out there. PicoCSS can help with a baseline that you can add to.

For detail: https://djangotv.com/videos/djangocon-us/2024/choosing-wisely-spa-vs-htmx-for-your-next-web-project-with-chris-may/

Choosing Wisely: SPA vs. HTMX for Your Next Web Project with Chris May

As web developers, we want to select the right architecture pattern for our projects. Web applications are inherently complex, and your choice will affect how you manage that complexity. Choosing a SPA pattern offers rich user experiences with rich interactivity and navigational transitions, but it also introduces complexity in state …

DjangoTV.com
@_chrismay thanks! I've used Django in the past, seems like there has been some hype about using it with htmx recently. Never heard of django-unicorn, will check it out!

@davidshq On the backend I like FastAPI with SQLModel (sqlite), and for my next website I'm using Bootstrap with an assist from ChatGPT to create my jinja templates. It actually works well and you can get a site up very quickly, but customize it as much as you want.

I'm moving away from mongoDB for the DB since it requires maintaining an extra bit of tech in the stack that I don't need. I'm trying Bootstrap instead of tailwind because it seems to be easier to get a site up and going.

@johnsturgeon Bootstrap is old school, but a good one. It just works in my experience.

Haven't spent much time with MongoDB...for this project I think I'm going relational, but might want to shift to NoSQL for future projects using the same underlying core application.

@davidshq @johnsturgeon This seems a good option too, especially if you're familiar with bootstrap.

I love that HTMX and unpoly are additive, enriching any application you create with better UX.

If you want more understanding of how they work, https://hypermedia.systems/ is a great resource.

Hypermedia Systems

The revolutionary ideas that empowered the Web. A simpler approach to building applications on the Web and beyond with htmx and Hyperview. Enhancing web applications without using SPA frameworks.