Ask HN: What stack would you use to build a CRUD web app on the JVM today?

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

Our great sponsors
  • SonarLint - Clean code begins in your IDE with SonarLint
  • CodiumAI - TestGPT | Generating meaningful tests for busy devs
  • InfluxDB - Access the most powerful time series database as a service
  • ONLYOFFICE ONLYOFFICE Docs — document collaboration in your environment
  • cask

    Cask: a Scala HTTP micro-framework (by lihaoyi)

    I would use it at work because I know it. There are a LOT of libraries in Scala for HTTP up to database stuff, and it really depends on what kind of ecosystem you're walking into:

    * Scala as Python: https://github.com/com-lihaoyi/cask, maybe https://github.com/getquill/quill

    * Scala as Haskell: HTTP4s, https://tpolecat.github.io/doobie/

    * Scala as Rails: Play

    Play is the closest thing to Rails-like CRUD productivity IMO, and honestly for CRUD most times I would like to write as little code as possible and just get it done, even using low/no-code solutions (postgrest, hasura, htmx), but that wasn't the question :)

  • Quill

    Compile-time Language Integrated Queries for Scala

    I would use it at work because I know it. There are a LOT of libraries in Scala for HTTP up to database stuff, and it really depends on what kind of ecosystem you're walking into:

    * Scala as Python: https://github.com/com-lihaoyi/cask, maybe https://github.com/getquill/quill

    * Scala as Haskell: HTTP4s, https://tpolecat.github.io/doobie/

    * Scala as Rails: Play

    Play is the closest thing to Rails-like CRUD productivity IMO, and honestly for CRUD most times I would like to write as little code as possible and just get it done, even using low/no-code solutions (postgrest, hasura, htmx), but that wasn't the question :)

  • SonarLint

    Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.

  • JDBI

    jdbi is designed to provide convenient tabular data access in Java; including templated SQL, parameterized and strongly typed queries, and Streams integration

    I highly recommend the following stack:

    JVM Language: Java 11+

    Webserver: https://javalin.io/

    Templating: https://j2html.com/

    Enhanced html attributes: https://htmx.org/

    Database helper: http://jdbi.org/

    Sqlite or Postgres depending on the expected scale.

    The startup time is very fast. I usually see times under a second, which makes iterative changes significantly less painful than something like Spring.

    Also setup is ridiculously simple, just throw those libraries in a pom file and use a CDN for htmx. No front end build tools needed since htmx removes the need for most if not all of your javascript.

    The whole setup feels kind of old school, but man it makes developing CRUD apps dead simple again.

    Lastly, project onboarding is as simple as having someone download intelij and pulling the project. The built in maven and jdk to intelij is all they need. That is as long as you don't need them to run their own Dev database instance, but that's not the end of the world if you utilize docker.

    Even if you decide on something else take a look at the above libraries, they're all pretty fantastic.

  • javalin

    A simple and modern Java and Kotlin web framework [Moved to: https://github.com/javalin/javalin]

    I highly recommend the following stack:

    JVM Language: Java 11+

    Webserver: https://javalin.io/

    Templating: https://j2html.com/

    Enhanced html attributes: https://htmx.org/

    Database helper: http://jdbi.org/

    Sqlite or Postgres depending on the expected scale.

    The startup time is very fast. I usually see times under a second, which makes iterative changes significantly less painful than something like Spring.

    Also setup is ridiculously simple, just throw those libraries in a pom file and use a CDN for htmx. No front end build tools needed since htmx removes the need for most if not all of your javascript.

    The whole setup feels kind of old school, but man it makes developing CRUD apps dead simple again.

    Lastly, project onboarding is as simple as having someone download intelij and pulling the project. The built in maven and jdk to intelij is all they need. That is as long as you don't need them to run their own Dev database instance, but that's not the end of the world if you utilize docker.

    Even if you decide on something else take a look at the above libraries, they're all pretty fantastic.

  • htmx

    </> htmx - high power tools for HTML

    I highly recommend the following stack:

    JVM Language: Java 11+

    Webserver: https://javalin.io/

    Templating: https://j2html.com/

    Enhanced html attributes: https://htmx.org/

    Database helper: http://jdbi.org/

    Sqlite or Postgres depending on the expected scale.

    The startup time is very fast. I usually see times under a second, which makes iterative changes significantly less painful than something like Spring.

    Also setup is ridiculously simple, just throw those libraries in a pom file and use a CDN for htmx. No front end build tools needed since htmx removes the need for most if not all of your javascript.

    The whole setup feels kind of old school, but man it makes developing CRUD apps dead simple again.

    Lastly, project onboarding is as simple as having someone download intelij and pulling the project. The built in maven and jdk to intelij is all they need. That is as long as you don't need them to run their own Dev database instance, but that's not the end of the world if you utilize docker.

    Even if you decide on something else take a look at the above libraries, they're all pretty fantastic.

  • CodiumAI

    TestGPT | Generating meaningful tests for busy devs. Get non-trivial tests (and trivial, too!) suggested right inside your IDE, so you can code smart, create more value, and stay confident when you push.

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