Spas Were a Mistake

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • htmx

    </> htmx - high power tools for HTML

    Did you have a look at https://htmx.org/ ? I think it solves the "just a tiny bit of interactivity on a MPA" kind of thing.

  • live

    Live views and components for golang (by jfyne)

    I hate SPAs. I would never do another SPA again if it were up to me. It just adds too much mental context switching and overhead. I can develop fully server-side apps that are lighter, run faster, and at least 20% less development effort (I actually compared that for the same task: https://medium.com/@mustwin/is-react-fast-enough-bca6bef89a6). So why would I ever do an SPA again if it were up to me. I would use https://github.com/jfyne/live which is inspired by Phoenix LiveViews. This is my professional opinion having many years of experience in both kinds of web apps.

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

  • sanity

    Sanity Studio – Rapidly configure content workspaces powered by structured content

    Use them where they make sense, and don't get religious about it.

    I recently wrote a site to track Apple-silicon-native audio software. It works great as an MPA. It's fast, organized, and easy to use.

    And the first thing someone offered as a suggestion was: "Why don't use https://www.sanity.io/ for the content and nextjs or gatsbyjs for the front end?"

    I can't even.

  • yeti

    I agree. I've been thinking about this lately, and have implemented something I think is interesting in Haskell.

    https://github.com/seanhess/juniper

    It's an implementation of Elm (imagine React if you're a JS dev), but all logic is executed on the server. State is passed back to the server whenever you choose to listen to an event. The view is then re-rendered and virtual dom diffed on the client. Non-interactive pages are just views. If you want them to be interactive, you add a Message an update function.

    I used it on a client project and it was pretty delightful.

    It probably isn't documented well enough yet to make total sense, but I think it's a step in the right direction.

  • inertia

    Inertia.js lets you quickly build modern single-page React, Vue and Svelte apps using classic server-side routing and controllers.

    Inertia [1] is an interesting project in this space that might solve some of your problems. I haven't used it, but I believe the general goal is to make it easy to "plug in" client-side frameworks (React, Vue, Svelte) into server-side views.

    [1] https://inertiajs.com/

  • handbook

    Basecamp Employee Handbook

    That's definitely true at the organizational level, and it's an argument with some merits.

    In practice though, I've seen this backfire. You end up with the frontend team blocked because the API they need isn't available yet, and then the backend team gets blocked because they shipped the API but they can't use it to deliver value because the frontend team don't have the capacity to build the interface for it!

    My preference is to work on mixed-skll teams that can ship a feature independently of any other team. I really like the way Basecamp describe this in their handbook: https://github.com/basecamp/handbook/blob/master/how-we-work... - "In self-sufficient, independent teams".

  • react-rails

    Integrate React.js with Rails views and controllers, the asset pipeline, or webpacker.

    I feel like react-rails (https://github.com/reactjs/react-rails) is basically perfect for this. You just make the photo upload its own react component and render it as normal from your rails view. You basically encapsulate the small bit of complex state into a component and it doesn't infect the rest of your app with SPA.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • Novo-Cantico

    Discontinued New kind of web development framework

    Traditional dynamic web servers can solve a lot of the same problems that SPAs and event front-end frameworks like React solve, by just applying software engineering principles to the whole stack. That's what Novo Cantico[1] does, and a lot of what I've been trying to say in my blog posts[2] that explain Novo Cantico.

    [1] https://github.com/sdegutis/Novo-Cantico

  • Apache Wicket

    Apache Wicket - Component-based Java web framework

    Is this the Wicket you're referring to? https://wicket.apache.org/

    What's the best intro you know to how it's components work, and the benefits and tradeoffs over other approaches?

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts