Documentation

§Play Tutorials

Play’s documentation shows the available features and how to use them, but the documentation will not show how to create an application from start to finish. This is where tutorials and examples come in.

Tutorials and examples are useful for showing a single application at work, especially when it comes to integrating with other systems such as databases or Javascript frameworks.

The Play team uses Lightbend Tech Hub to publish tutorials that cover a huge number of cases. There you can find projects in Java, Scala and for multiple versions of Play. You can pick one that demonstrates functionality of interest to you. The examples you can download cover the following topics:

§Java

Example Download Repository
Play Java gRPC Example Download (zip) [Github](https://github.com/playframework/play-samples/tree/2.7.x/play-java-grpc-example
REST API Example Download (zip) [Github](https://github.com/playframework/play-samples/tree/2.7.x/play-java-rest-api-example
File Upload Example Download (zip) [Github](https://github.com/playframework/play-samples/tree/2.7.x/play-java-fileupload-example
Forms Example Download (zip) [Github](https://github.com/playframework/play-samples/tree/2.7.x/play-java-forms-example
JPA Example Download (zip) [Github](https://github.com/playframework/play-samples/tree/2.7.x/play-java-jpa-example
Ebean Example Download (zip) [Github](https://github.com/playframework/play-samples/tree/2.7.x/play-java-ebean-example
Websocket Example Download (zip) [Github](https://github.com/playframework/play-samples/tree/2.7.x/play-java-websocket-example
Chatroom using Websockets Example Download (zip) [Github](https://github.com/playframework/play-samples/tree/2.7.x/play-java-chatroom-example
Streaming Example Download (zip) [Github](https://github.com/playframework/play-samples/tree/2.7.x/play-java-streaming-example
Compile Time Dependency Injection Example Download (zip) [Github](https://github.com/playframework/play-samples/tree/2.7.x/play-java-compile-di-example
Using Dagger 2 for Compile Time DI Download (zip) [Github](https://github.com/playframework/play-samples/tree/2.7.x/play-java-dagger2-example

§Scala

Example Download Repository
Play Scala gRPC Example Download (zip) [Github](https://github.com/playframework/play-samples/tree/2.7.x/play-scala-grpc-example
REST API Example Download (zip) [Github](https://github.com/playframework/play-samples/tree/2.7.x/play-scala-rest-api-example
File Upload Example Download (zip) [Github](https://github.com/playframework/play-samples/tree/2.7.x/play-scala-fileupload-example
Forms Example Download (zip) [Github](https://github.com/playframework/play-samples/tree/2.7.x/play-scala-forms-example
Anorm Example Download (zip) [Github](https://github.com/playframework/play-samples/tree/2.7.x/play-scala-anorm-example
Integrated Slick Example Download (zip) [Github](https://github.com/playframework/play-samples/tree/2.7.x/play-scala-slick-example
Isolated Slick Example Download (zip) [Github](https://github.com/playframework/play-samples/tree/2.7.x/play-scala-isolated-slick-example
Websocket Example Download (zip) [Github](https://github.com/playframework/play-samples/tree/2.7.x/play-scala-websocket-example
Chatroom using Websockets Example Download (zip) [Github](https://github.com/playframework/play-samples/tree/2.7.x/play-scala-chatroom-example
Streaming Example Download (zip) [Github](https://github.com/playframework/play-samples/tree/2.7.x/play-scala-streaming-example
Compile Time Dependency Injection Example Download (zip) [Github](https://github.com/playframework/play-samples/tree/2.7.x/play-scala-compile-di-example
Dependency Injection using Macwire Example Download (zip) [Github](https://github.com/playframework/play-samples/tree/2.7.x/play-scala-macwire-di-example
Secure Session Example Download (zip) [Github](https://github.com/playframework/play-samples/tree/2.7.x/play-scala-secure-session-example

§Third Party Tutorials and Templates

The Play community also has a number of tutorials and templates that cover aspects of Play than the documentation can, or has a different angle. Templates listed here are not maintained by the Play team, and so may be out of date.

This is an incomplete list of several helpful blog posts, and because some of the blog posts have been written a while ago, this section is organized by Play version.

§2.6.x

§Play Framework Tutorials and other contents

§2.5.x

§Play Framework Tutorial Video Series

A tutorial video series by Radix Code provides an initial overview to Play, walking through initial IDE setup, defining routes, creating a CRUD application, enabling ORM support, and customizing the views with bootstrap.

§Dependency Injection

§Akka Streams

§Database

§Forms and Validators

§REST APIs

§Sub-projects

§Upgrading

§2.4.x

§Semisafe

Semisafe has an excellent series on Play in general:

§Minimal Play

§Dependency Injection

§REST APIs

Justin Rodenbostel of SPR Consulting also has two blog posts on building REST APIs in Play:

§Slick

§RethinkDB

§Forms

§AngularJS, RequireJS and sbt-web

Marius Soutier has an excellent series on setting up a Javascript interface using AngularJS with Play and sbt-web. It was originally written for Play 2.1.x, but has been updated for Play 2.4.x.

§React JS

§2.3.x

§REST APIs

§Anorm

Knoldus has a nice series of blog posts on Anorm:

§Forms

§2.2.x

§Advanced Routing

§Path Bindables

§Templates

§User Interface

§Play in Practice

Next: Working with Play


Found an error in this documentation? The source code for this page can be found here. After reading the documentation guidelines, please feel free to contribute a pull request. Have questions or advice to share? Go to our community forums to start a conversation with the community.