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.