Overview
The Wiringbits Web Application Template is a skeleton used by Wiringbits to create new web applications in Scala/Scala.js. It provides all the necessary boilerplate to quickly start building a traditional web application. The template aims to simplify the technical choices involved in building a Scala web application and make it easier for engineers, even those without previous Scala experience, to start contributing and developing.
Features
- User registration and authentication, including email verification, profile updates, password recovery, and captcha for spam prevention.
- Integration with the React ecosystem, allowing most libraries and components to work seamlessly.
- PostgreSQL as the data store layer, a sensible choice for most web applications.
- Practical components for testing server-side code, making it simple to write tests for the Data/Api layer.
- Practical frontend utilities, such as easily testing frontend forms and ensuring a consistent UI during asynchronous actions.
- Typed data inputs, eliminating the need to manually validate form data on the backend.
- Reasonable Continuous-Integration workflows using Github Actions.
- Simple and easy-to-follow architecture with short guides for common tasks.
- Deployment scripts for cloud instances, promoting simplicity with managed servers instead of containers or Kubernetes.
Installation
- Read the documentation or watch the onboarding videos for a detailed guide on using the template.
- To install the Wiringbits Web Application Template, follow these steps:
// Add this line to your build.sbt file
libraryDependencies += "com.wiringbits" %%% "webapp-template" % "1.0.0"
// Import the necessary classes and utilities
import com.wiringbits.webapp.template._
// Use the template to create your web application
val app = WebAppTemplate.create()
// Start building your web application using the provided boilerplate
Summary
The Wiringbits Web Application Template is a Scala/Scala.js web application skeleton that streamlines the development process for building traditional web applications. It provides essential features such as user registration and authentication, integration with React, a PostgreSQL data store, testing components for server-side code, practical frontend utilities, and more. The template aims to simplify the technical choices involved in building a Scala web application, making it accessible for engineers with no prior Scala experience to contribute and develop efficiently. It also offers reasonable Continuous-Integration workflows and deployment scripts for cloud instances.