A modern, cloud-ready Q&A platform inspired by Stack Overflow
Designed to demonstrate real-world distributed systems, event-driven communication, and production-grade architecture using .NET and React with Next.js.
@NotNull is a full-stack, distributed Q&A platform inspired by Stack Overflow, built from the ground up to showcase how modern backend and frontend architectures are designed, deployed, and scaled in real production environments.
The project serves as both a learning reference and a production-grade architectural showcase, focusing on modularity, scalability, security, and cloud-native practices.
- Independently deployable services
- Clear domain boundaries
- HTTP-based communication combined with asynchronous events
- WolverineFx used as the internal messaging and workflow engine
- RabbitMQ as the message broker
- Loose coupling, fault tolerance, and horizontal scalability
- YARP used as an internal reverse proxy and API Gateway
- NGINX Proxy Manager used as the external HTTPS reverse proxy in production
- Centralized routing, SSL termination, and service isolation
- Typesense for fast, typo-tolerant search
- Real-time indexing of questions and answers
- Faceted search and filtering capabilities
- Keycloak running in Docker
- OAuth2 and OpenID Connect
- Authentication fully decoupled from business logic
- .NET Aspire used exclusively in development
- Service discovery, metrics, logs, and traces
- Removed from production to keep the runtime lean and explicit
- .NET 9
- WolverineFx (Messaging and event-driven workflows)
- RabbitMQ
- PostgreSQL
- Typesense (Search engine)
- YARP (Reverse proxy / API Gateway)
- Docker (Development and production)
- React with Next.js (App Router)
- HeroUI
- Tailwind CSS
- Zustand (State management)
- Keycloak (Dockerized)
- OAuth2 / OpenID Connect
- JWT-based authentication
- NGINX Proxy Manager (HTTPS reverse proxy)
- Docker and Docker Compose
- Cloud-agnostic deployment
The application is fully containerized and designed to be cloud-agnostic.
- DigitalOcean (Linux server)
- Microsoft Azure
- NGINX Proxy Manager as HTTPS reverse proxy
- Docker-based deployment strategy
- Docker Compose for infrastructure
- .NET Aspire for local orchestration and observability
git clone https://github.com/net0well/notnull.git
cd notnull
docker compose up -d
dotnet run- Microservices-oriented architecture with clear domain boundaries
- Event-driven communication using WolverineFx and RabbitMQ
- Fast, typo-tolerant search powered by Typesense
- Centralized authentication with Keycloak
- Reverse proxy and API Gateway using YARP
- Production-ready HTTPS setup with NGINX Proxy Manager
- Modern React frontend with Next.js App Router
- Containerized deployment for local and cloud environments
Detailed documentation covering architecture decisions, messaging patterns, security, and deployment strategies is available in the project Wiki.
Contributions are welcome! Please read the Contributing Guide before submitting pull requests.
This project is licensed under the MIT License. See the LICENSE file for details.
Built with .NET 9, WolverineFx, RabbitMQ, Typesense, Next.js, and PostgreSQL
⭐ If you find this project useful, consider giving it a star!