Technology
What Play the Event is built with
What Play the Event is built with, where your data runs and how we protect it. Everything here is true today; providers and data transfers are described in the privacy policy.
What it is made of
The tools we use
Widely used, well-documented software, chosen because it can keep a service running every day.
- Interface
Angular 19
The pages you see. Public pages are prepared on the server, so they open quickly and search engines can read them in full.
- Interface
TypeScript 5.6
The language of the interface: type checks catch many mistakes before they reach you.
- Server
Spring Boot 3.4.5
The heart of the service: it receives requests, applies the rules for events, invitations and expenses and checks who can do what.
- Server
Java 21 LTS
The long-term support version of Java that the server runs on.
- Server
PostgreSQL 18
The open source relational database that holds the service data, with transactions that never leave a save half done.
- Analytics and AI
Python 3.13 + FastAPI
The service that runs the analytics calculations and answers part of the free tools.
- Analytics and AI
Ollama
Open-weight language models running on our own server with Ollama: no external AI provider receives your data.
Where your data lives
One server, in Europe
Website, application, database and AI models all run on the same virtual server; every night an encrypted copy of the database is sent to a mailbox for recovery.
In Germany, in the European Union
The server sits in a data center in Germany. The contract is with OVHcloud US, a company based in the United States: this is why the privacy policy treats it as a data transfer.
An encrypted copy every night
Every night we make an encrypted backup of the database and check that it can be restored.
AI on our own server
When one of our tools uses artificial intelligence, the model runs on our server: your requests do not go to external AI providers.
Protections in place
How we protect access
Four protections in place today, described as they are, with no labels we could not back up.
Encrypted connection
All traffic between your device and the server travels over HTTPS.
Passwords never stored in clear
Passwords are saved only as a BCrypt hash: not even we can read them.
Sign-in with protected cookies
Your session lives in HttpOnly cookies, which scripts on the page cannot read.
A brake on repeated attempts
A limit on the number of requests slows down anyone trying to guess a password or overload the service.
How the code is organized
Order inside, simplicity outside
The code is split so that each rule lives in one place: a mistake can be found and fixed without breaking the rest.
Domain models
Events, invitations, expenses and trips each have their own rules, written once in the code.
Hexagonal architecture
The rules do not depend on the database or on email: external connections can change without touching them.
Reads and writes kept apart
Changing data and showing data follow separate paths, which are simpler to check.
Accessibility checks
Accessibility rules in the code checks and automated tests on the pages: the most common problems are stopped before they go live.
What you get
What changes for you
Technology only matters if you can feel it while using the product.
From phone to computer
Pages adapt to your screen, with buttons large enough to tap with a finger.
Light pages
Each section of the web application downloads only when you open it, and public pages arrive ready from the server.
Easy to find
Every public page has its own title and description, which search engines read without running any code.
Italian and English
The website and the web application are in Italian and English, with addresses translated in both languages.
Try it
See how it works from the inside
Create your account and choose the plan you need: prices and limits are on the Pricing page.