https://www.maalik.dev/projects/onroad
Our application adopts a monorepo architecture, consolidating backend and frontend code within a single repository. This streamlined approach facilitates efficient codebase management and simplifies the deployment process.
Leveraging React.js and TypeScript, our frontend is engineered for speed and efficiency, ensuring an exceptional user experience. Fully responsive and optimized for all devices, it features Gzip-compressed static assets for enhanced transfer speeds.
Built on a foundation of independent microservices, our application architecture allows for scalable components. Complete dockerization enables seamless operation across any environment with a simple docker-compose up
command.
Utilizing Hasura, we generate GraphQL APIs that streamline API creation and management. Hasura enriches our application with role-based access control, real-time updates, and event triggers.
Our authentication framework employs JWT tokens and supports diverse methods such as username-password, magic-link, Google login, and PassKeys (WebAuthn API). It ensures security with long-lived refresh tokens and short-lived access tokens.
Incorporating PassKeys, based on the WebAuthn API, offers a phishing-resistant authentication method. This innovation enhances user security and provides a seamless login experience.
Our application maximizes database utilization for optimal performance, leveraging triggers, defaults, constraints, and indexes. This approach enhances scalability and framework agnosticism.
Regular database backups are automated via a cron job, ensuring data integrity and recoverability in any eventuality.
Dedicated to user privacy and security, our application implements robust measures like CSRF, XSS protection, and CORS. Tight API security through RBACs and network isolation safeguards against unauthorized access.
API rate limiting, enforced at the API gateway level (Caddy), prevents misuse and ensures stable application performance.
Asynchronous tasks such as email sending and future image processing are efficiently managed via RabbitMQ and the DramatiQ library, maintaining uninterrupted user experience.
Our deployment process is automated through GitLab CI/CD, facilitating seamless transitions from staging to production on DigitalOcean Droplets.
Employing Plausible for user analytics allows us to understand user behaviors and make informed decisions, prioritizing privacy.
AWS S3 is our choice for secure and accessible user file storage, ensuring data safety and availability.
Sentry aids in identifying and resolving application errors, offering valuable insights into performance metrics.
ChatGPT has played a significant role in developing our application, demonstrating the power of precise prompts in achieving desired outcomes and fostering a deeper understanding of our technology stack.