A free, once-weekly Scala news flash. Easy to unsubscribe. Goes out every Thursday.
October 20th, 2025, ISSUE 601

READING

An Omakase-style PlayFramework Template: PlayFast

I'm excited to share my opinionated PlayFramework Template, PlayFast. It has the needed components and code conventions that make you productive and ready for production. It would have taken days to weeks (depending on the expertise level), with a large amount of googling, to set up these components and code conventions.
Tanin Na Nakorn (@tanin)
incremental compilation of Scala 3

In this post, I want to look into the incremental compilation of Scala 3, or the apparent problem associated with it.
Eugene Yokota (@eed3si9n)
How to run sbt tasks with custom settings

When preparing build configuration in sbt, you might want to write custom sbt task. Task in sbt is like a function that can depend on other tasks and project settings.
Michał Pawlik

VIDEOS

Alexandru Nedelcu | Effects and concurrency in functional programming

Creating cloud services that are scalable, performant, and resilient in the face of failures and concurrency challenges is quite a challenge, and architectural and implementation decisions depend on the principles of the programming language, the paradigms and the libraries used. We'll explore managing effects and concurrency using functional programming principles and the Cats-Effect library in Scala, showcasing how that enforces actual best practices in your entire codebase that help in building anti-fragile, industrial strength applications.
Alexandru Nedelcu (@alexelcu)

RELEASES

besom 0.5.0

Besom is no longer in beta. 0.5.0 is considered stable-candidate and will be the last version before 1.0.0.
Besom contributors
sttp-ai 0.4.0

The project is now called sttp-ai, as it contains a client for both OpenAI and Claude APIs.
SoftwareMill (@softwaremill)
hearth 0.1.0

The first Scala macros' standard library.
Mateusz Kubuszok (@MateuszKubuszok)
Scala 2.13.17

JDK 25 LTS compatible, Support Scala 3.7 in the TASTy reader, new lints and improvements.
Scala contributors
Metals v1.6.3 - Osmium

MCP: Scalafix rule generation, Commands: Add a "copy fqn" command, Inlay hints: Add closing labels, Automatically add imports when copying between files, add cursor-based target discovery for running closest main or test, test discovery for Bazel, and many more updates!
Metals contributors

EVENTS

LLM4s Dev Hour – Sundays @ 9am London Time

Just finished another great hour of mob programming. We’re now doing this every Sunday — 60 minutes of live coding, debugging, and learning together in public.
LLM4s
DEVJVM, Oct 25th, Barranquilla, Colombia

A conference uniting Java, Kotlin, and Scala developers.
DEVJVM
Lambda World, Oct 23rd-25th, Cádiz, Spain

The Fun-Fun Functional Programming Experience! Use Sc4l4OTB for a 10% discount for Scala Times readers!
Lambda World (@lambda_world)
Designing Simpler Scala Build Tools with Object-Oriented Programming, Nov 17th, Boston, USA

This talk will explore why build tooling is fundamentally such a difficult domain to work in, and how common concepts from object-oriented programming have the potential to simplify the build tool experience. We will end with a demonstration of the Mill build tool that makes use of these ideas, proving out the idea that Scala build tooling has the potential to be much faster, safer, and easier than it is today.
Boston Area Scala Enthusiasts





  1. Scala Times Issue #601

    An Omakase-style PlayFramework Template: PlayFast. How to run sbt tasks with custom settings. Alexandru Nedelcu | Effects and concurrency in functional programming. Metals v1.6.3 - Osmium. LLM4s Dev Hour – Sundays @ 9am London Time.


  2. Scala Times Issue #600

    One Script, Many Styles - Exploring Scala’s Ecosystem with scala-cli. A simple tool to make illegal states unrepresentable. Exploring Neotype’s capabilities, pitfalls, and limitations in Scala 3. IntelliJ IDEA x Scala: The Debugger (Part 1). Announcing ZIO Test support in scalamock classic (released in 7.5.0).


  3. Scala Times Issue #599

    An old coding challenge I resolved with Scala. Controlling program flow with capabilities. A new repository for Scala nightlies. Effects and concurrency in functional programming. Meet new release of jsoniter-scala with much faster codec derivation.


  4. Scala Times Issue #598

    Effects as Capabilities. Claude Code, Metals, and NVIM. Integrate JobRunr into Play Framework [Update Sep 2025]. Random Scala Tip #534: Adopt an Error Handling Convention for `Future`. Announcing Scala.js 1.20.1.


  5. Scala Times Issue #597

    Understanding Match Types in Scala 3. Scala's Gamble with Direct Style. Custom Error Types Using Cats Effect and MTL. Dealing with Java builder's pattern. Implementing a JWT-based authorization for zio-http.


  6. Scala Times Issue #596

    The Rebirth of Tagless Final: An Ergonomic Approach in Kyo. Hands on Capture Checking. PRE-SIP: Dedented Multiline String Literals. Match Type simulator. LLM4s Dev Hour – Sundays @ 9am London Time.


  7. Scala Times Issue #595

    State of Scala 2025 Survey. Claude Code, Metals, and NVIM. Minimal Scala Container Images using Nix. IntelliJ Scala Plugin 2025.2. Release ducktape 0.2.10 · arainko/ducktape · GitHub.


  8. Scala Times Issue #594

    Golden Literal Testing in uTest 0.9.0. Nussknacker integration with Functional Programming. Type-safe vibe-coding a CRUD application. LLM4s Dev Hour – Sundays @ 9am London Time. Scala Days, Aug 19th - 21st, Lausanne, Switzerland.


  9. Scala Times Issue #593

    Understanding Scala Variance. LLM4s Dev Hour – Sundays @ 9am London Time. Scala Days, Aug 19th - 21st, Lausanne, Switzerland. The Scala Workshop, Oct 13th, Singapore. DEVJVM, Oct 25th, Barranquilla, Colombia.


  10. Scala Times Issue #592

    LLM4s Dev Hour – Sundays @ 9am London Time. Scala Days, Aug 19th - 21st, Lausanne, Switzerland. The Scala Workshop, Oct 13th, Singapore. DEVJVM, Oct 25th, Barranquilla, Colombia.


  11. Scala Times Issue #591

    Scala Days, Aug 19th - 21st, Lausanne, Switzerland. The Scala Workshop, Oct 13th, Singapore. DEVJVM, Oct 25th, Barranquilla, Colombia. Mill Build Tool v1.0.0 Release Highlights. Business4s H1 2025 Highlights.


  12. Scala Times Issue #590

    Scalator: Stream Composition with Kyo & Community Revival!, Jul 9th, Toronto. Scala Days, Aug 19th - 21st, Lausanne, Switzerland. The Scala Workshop, Oct 13th, Singapore. CFP for DEVJVM, Oct 25th, Barranquilla, Colombia. Anatomy of a Scala Game Server.


  13. Scala Times Issue #589

    Scala Highlights, June 2025 edition. ScalaWAW #35 - Summer hackathon, Jun 30th, Warsaw, Poland. Scala Days, Aug 19th - 21st, Lausanne, Switzerland. The Scala Workshop, Oct 13th, Singapore. Making Capabilities Safe and Convenient.


  14. Scala Times Issue #588

    Fundamental Concurrency Problems and Solutions. Scala Days, Aug 19th - 21st, Lausanne, Switzerland. The Scala Workshop, Oct 13th, Singapore. S2D migrated to Scala Native.


  15. Scala Times Issue #587

    First Make It Correct. Suspension: the magic behind composability (or: "The Kyo Monad"). My experience migrating a PlayFramework app to Scala 3. Yet Another Scala 3 Migration Story. The Elements of Kyo.


  16. Scala Times Issue #586

    Making ScalaSql boring again (with interesting new internals). Lambda World proposal online hack, Jun 12th, Online Event. 10% discount for Lambda Days, June 12th-13th, Kraków, Poland. Scala Days, Aug 19th - 21st, Lausanne, Switzerland. The Scala Workshop, Oct 13th, Singapore.


  17. Scala Times Issue #585

    IntelliJ IDEA x Scala: How to clone carets. Scala Days 2025 - Functional Programming And The Real World. Developer Ecosystem Survey 2025. ScalaWAW #34, May 26th, Warsaw. Scala Hamburg: Recursion Schemes & Mill, Jun 2nd, Hamburg, Germany.


  18. Scala Times Issue #584

    Scala 3 migration Tips and Tricks. Learn Scala with Alvin Alexander . A Distributed System from scratch, with Scala 3 - Part 3. Can we ScalaSQL on Duckdb?. Unison, from a Scala perspective.


  19. Scala Times Issue #583

    Workflows4s Finally Released - You Might Hate Your Business Processes a Little Less. Business4s & GSoC 2025: 3 Exciting Projects and Not-So-Usual Approach. Unison, Scala, Distributed Systems and Delightful Programming. ScalaWAW #34 May 26th, Warsaw. Scala Hamburg: Recursion Schemes & Mill, Jun 2nd, Hamburg, Germany.


  20. Scala Times Issue #582

    How Scala Ruined My Java (in a good way). IntelliJ IDEA x Scala: Named Tuples. Random Scala Tip #624: The Pitfalls of Option Blindness. From JavaScript to Scala. Scala 3: The Evolution of a Macro.


  21. Scala Times Issue #581

    WORKSHOP: Principled Metaprogramming in Scala 3. The Scala Workshop 2025 - The Scala Workshop 2025. Programming a Language by Nicolas Rinaudo | Scalar Conference 2025.


  22. Scala Times Issue #580

    On vibe coding. Composing Independent Instruction Sets with Free Monads in Scala 3. Announcing Scala.js 1.19.0. Tagless Final for Humans by Noel Welsh | Scalar Conference 2025. Release v1.0.0-RC19 · zio/zio-dynamodb · GitHub.


  23. Scala Times Issue #579

    Scalar Conference 2025 - Summary & Highlights. Experimental Capture Checking: New Syntax for Explicit Capture Polymorphism. Whiteboxish Macro Powers with Named Tuples. IntelliJ Scala Plugin 2025.1 Is Out!. J On the Beach, May 14th - 16th, Málaga, Spain.


  24. Scala Times Issue #578

    Sttp client 4: the Scala HTTP client you always wanted, released!. London Scala User Group Meetup, Apr 16th, London. J On the Beach, May 14th - 16th, Málaga, Spain. 10% discount for Lambda Days, June 12th-13th, Kraków, Poland. Scala Days 2025 CFP, Aug 19th - 21st, Lausanne, Switzerland.


  25. Scala Times Issue #577

    Tagged vs Untagged Unions (in Scala). -XX:+UseCompactObjectHeaders is your new TURBO button for JDK 24+ . Scala Days proposal online hack, Apr 3rd, 8PM CEST, online event. London Scala User Group Meetup, Apr 16th, London. J On the Beach, May 14th - 16th, Málaga, Spain.


Organizing an event?
Promote it with
Scala Times.
The Scala Times reader?
Get a banner!
Got a tip?Send it in!
Follow us onTwitter.
Curated by SoftwareMill.
We are hiring.
And taking on projects.