Monorepo: seeking for an advice for bi-lang project

This page summarizes the projects mentioned and recommended in the original post on /r/scala

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • orval

    orval is able to generate client with appropriate type-signatures (TypeScript) from any valid OpenAPI v3 or Swagger v2 specification, either in yaml or json formats. 🍺

  • Backend is source of truth for types on frontend (backend generated OpenAPI definition with tapir, frontend takes it with orval)

  • tapir

    Declarative, type-safe web endpoints library

  • Backend is source of truth for types on frontend (backend generated OpenAPI definition with tapir, frontend takes it with orval)

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • scalajs-react

    Facebook's React on Scala.JS

  • Then there's scalajs-react, which can be integrated with existing React ecosystem, but it's just sooo compex: macros, 5-6 type parameters, hundreds and hundreds of cryptic types. We decided to stick with TypeScript instead.

  • tyrian

    Elm-inspired Scala UI library.

  • Yes, I have. It didn't work out. There are quite neat libs like Tyrian, but they lack any ecosystem and I struggled to integrate it with pure JS libs - yet our app has a lot of very common components/widgets that we're really hesitating to write ourselves.

  • sbt-npm

    Run npm tasks as part of an sbt build

  • I’ve used sbt-npm for exactly this case without issue. FWIW, I would generate both your Scala routes and TypeScript front ends from an OpenAPI spec rather than making the front end “see what the back end does today” with Tapir.

  • Laminar

    Simple, expressive, and safe UI library for Scala.js (by raquo)

  • Maybe Laminar?

  • crystal

    Functional, tagless and lens-based, global state management. With scalajs-react fs2.Stream integrations. (by gemini-hlsw)

  • In this case, maybe Crystal?

  • 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.

    InfluxDB logo
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