Language
Tech Stack
Tech Stack
Section titled “Tech Stack”The Merq platform is built on a modern, carefully selected technology stack to ensure performance, scalability, and a great developer experience. This document provides a detailed breakdown of the technologies used in each part of the project.
Backend (merq-backend)
Section titled “Backend (merq-backend)”The backend is a Go-based REST API responsible for all business logic and data management.
Framework
Database ORM
Authentication
| Category | Technology / Library | Purpose |
|---|---|---|
| Database | PostgreSQL | Primary relational database for data persistence. |
| Cache | Redis | In-memory caching for performance optimization. |
| Search | Typesense | High-performance, typo-tolerant full-text search. |
| Push Notifications | Firebase Cloud Messaging | Sending real-time notifications to mobile devices. |
| File Storage | DigitalOcean Spaces (S3-Compatible) | Storing user-uploaded files like images. |
| Resend, Plunk, Mailersend | Transactional email delivery with failover. | |
| API Docs | Swaggo | Automatic generation of Swagger/OpenAPI docs. |
| Migrations | golang-migrate | Database schema migrations. |
| Validation | go-playground/validator | Struct validation for incoming requests. |
Web Dashboard (merq-web)
Section titled “Web Dashboard (merq-web)”The web dashboard is a React-based Single Page Application for platform administration.
Language
Framework
Build Tool
Styling
| Category | Technology / Library | Purpose |
|---|---|---|
| UI Components | shadcn/ui | Composable and accessible UI components. |
| Data Fetching | TanStack Query | Server state management, caching, and synchronization. |
| Global State | Jotai | Minimalist client-side state management. |
| Forms | React Hook Form + Zod | Performant and type-safe form creation and validation. |
| Tables | TanStack Table | Headless UI for building powerful data grids. |
| Routing | React Router | Client-side routing for the SPA. |
| Maps | @vis.gl/react-google-maps | Google Maps integration for data visualization. |
Mobile App (merq-mobile)
Section titled “Mobile App (merq-mobile)”The mobile app is a cross-platform tool for field agents, built with a strict focus on offline-first functionality.
Framework
Language
UI Library
Storage
| Category | Technology / Library | Purpose |
|---|---|---|
| Data & Offline | TanStack Query (offlineFirst mode) | Manages server data and offline synchronization. |
| Client State | Jotai | Global state management for UI and auth status. |
| Lists | FlashList | High-performance list rendering for large datasets. |
| Animations | Reanimated | High-performance, native-like animations. |
| Navigation | React Navigation 7 | Routing and navigation for the mobile app. |
| Camera | Vision Camera | Advanced and performant camera functionalities. |
| Push Notifications | Firebase FCM + Notifee | Receiving and displaying rich notifications. |
Infrastructure & Deployment
Section titled “Infrastructure & Deployment”The platform is containerized using Docker and is designed to be cloud-agnostic.
| Component | Technology | Purpose |
|---|---|---|
| Containerization | Docker & Docker Compose | Containerizing all services for consistent environments. |
| CI/CD | GitHub Actions | Continuous integration and deployment pipelines. |
| Web Server | Nginx | Serving the web dashboard static files. |