# Decisions This document outlines the decisions made during the development of the Ledgerrz application. ## Core Concepts * **Dynamic:** A relationship between two or more users. This will be the core container for interactions. * **Ledger:** A score-tracking entity within a Dynamic. The name "Ledger" will be used instead of "Score" to establish a more distinct domain language. * **Mutation:** An event that modifies a Ledger. It can be a direct modification or a suggestion requiring approval. * **Participant:** A user's role within a Dynamic. This will be used to manage permissions. ## Technology Stack * **Backend:** Laravel * **Frontend:** Vue.js with Inertia.js * **Real-time:** Laravel Echo via `@laravel/echo-vue` for notifications and real-time updates. * **Testing:** Pest for PHP tests. * **Styling:** **BEM (Block, Element, Modifier)** methodology. Replaced verbose inline Tailwind classes in custom HTML templates with semantic BEM classes (e.g., `.c-chat`, `.user-info__avatar`), and mapped them to CSS rules using Tailwind v4's `@apply` directive inside scoped `