Skip to content

Instantly share code, notes, and snippets.

@pathikrit
Last active April 24, 2021 17:36
Show Gist options
  • Save pathikrit/892a3a254c84f274a007ef9d763e11dd to your computer and use it in GitHub Desktop.
Save pathikrit/892a3a254c84f274a007ef9d763e11dd to your computer and use it in GitHub Desktop.
My highly opinionated list of things needed to build an app in Scala

If you are using Play, these are reasonable alternatives to above since these have better out-of-the-box Play support:

Code Quality

sbt plugins

See also: https://github.com/lauris/awesome-scala

@pathikrit
Copy link
Author

@mdedetrich - Yes, quill is cool but I prefer writing vanilla SQL because:

  1. I can copy paste the SQL from my Scala code into my DB console or into other parts of my company's codebase which maybe written in Python or Java.
  2. What if I need to use something not in the ORM (e.g. some PostgreSQL features like CAST or functions)?

I still want static checking of my vanilla SQL queries so I use this

@yawaramin, @mdedetrich, @denisftw - Thanks for the suggestions. I added scalacache, log4s, monix

@rtfpessoa: What are the benefits of sbt-coursirer besides faster downloads? I personally don't care about my download speed because I have pretty good internet and most of my jars are in my ivy cache anyway.

@wsargent - I am yet to find something regarding authorization and authentication that I like - I always have to do something custom so far. I will give Silhouette and Deadbolt one more try :)

@guersam
Copy link

guersam commented Sep 10, 2016

A nitpick: none of doobie, slick or quill is an ORM and they emphasize not being ORMs actually. How about just DB?

@fanf
Copy link

fanf commented Jun 14, 2017

For configuration, there is a new project which seems very good if you are in the "toward pure software" mood: https://cir.is/
From the site:

Lightweight, extensible, and validated configuration loading in Scala and Scala.js.
The core library is dependency-free, while modules provide library integrations.
"Ciris encourages compile-time safety by defining as much as possible of your configurations in Scala"

Documentation seems to be quite good, to!

@fanf
Copy link

fanf commented Jun 15, 2017

And if you spend a lot of time and boilerplate copying things between case class, there is that little lib built on top of shapeless: https://github.com/scalalandio/chimney

@slouc
Copy link

slouc commented Jul 7, 2017

Saw Play, stopped reading

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment