Part 1: Determining What to Build
Introduction This is the first post of a series that documents the whole journey of my third major production-grade project. It is going to contain the whole process from an idea in my mind to a fully deployed web application . Determining What I'm Going to Build I wanted to tackle a new challenge centered around real-time systems and complex state management. I also wanted to explore caching…
This is the first part of a series documenting the journey of a third major production-grade project. The focus is on the process of determining what to build, from an initial idea to a fully deployed web application. The author wanted to tackle a new challenge in real-time systems, complex state management, caching strategies, and infrastructure concerns like event-driven architecture.
The first idea, a live collaborative text editor, was rejected due to specialized engineering challenges that were already solved by mature libraries like Yjs and editor frameworks like Lexical or Monaco. The primary distinguishing feature of these editors would be provided by third-party software, leaving limited room for learning and growth in backend engineering, system design, and architectural decision-making.
The second choice, a collaborative project management platform, was selected as it introduces a wide range of engineering challenges found in production backend systems. These challenges include caching, event-driven workflows, notifications, background processing, authorization, audit logging, search, and real-time synchronization.
The domain itself demands diverse architectural decisions and production-grade engineering, providing far more opportunities to learn than a project centered around a single specialized problem.
The choice of web framework was also discussed. The author, who had previously built projects using ASP.NET Core, decided to broaden their technical perspective by using Python. FastAPI was chosen for its modern, asynchronous nature and first-class WebSocket support, making it a natural fit for building real-time applications. The framework's lightweight configuration model allowed the author to focus more on implementing application logic rather than infrastructure setup.
Additionally, FastAPI's capabilities such as dependency injection, automatic request validation, and OpenAPI documentation out of the box provided a high-performance web framework experience.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.