Skip to content

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.

The backend is a Go-based REST API responsible for all business logic and data management.

Language

Go 1.24

Framework

Gin

Database ORM

GORM

Authentication

JWT
CategoryTechnology / LibraryPurpose
DatabasePostgreSQLPrimary relational database for data persistence.
CacheRedisIn-memory caching for performance optimization.
SearchTypesenseHigh-performance, typo-tolerant full-text search.
Push NotificationsFirebase Cloud MessagingSending real-time notifications to mobile devices.
File StorageDigitalOcean Spaces (S3-Compatible)Storing user-uploaded files like images.
EmailResend, Plunk, MailersendTransactional email delivery with failover.
API DocsSwaggoAutomatic generation of Swagger/OpenAPI docs.
Migrationsgolang-migrateDatabase schema migrations.
Validationgo-playground/validatorStruct validation for incoming requests.

The web dashboard is a React-based Single Page Application for platform administration.

Language

TypeScript 5.5

Framework

React 18

Build Tool

Vite

Styling

Tailwind CSS
CategoryTechnology / LibraryPurpose
UI Componentsshadcn/uiComposable and accessible UI components.
Data FetchingTanStack QueryServer state management, caching, and synchronization.
Global StateJotaiMinimalist client-side state management.
FormsReact Hook Form + ZodPerformant and type-safe form creation and validation.
TablesTanStack TableHeadless UI for building powerful data grids.
RoutingReact RouterClient-side routing for the SPA.
Maps@vis.gl/react-google-mapsGoogle Maps integration for data visualization.

The mobile app is a cross-platform tool for field agents, built with a strict focus on offline-first functionality.

Framework

React Native 0.80

Language

TypeScript

UI Library

React Native Paper MD3

Storage

MMKV
CategoryTechnology / LibraryPurpose
Data & OfflineTanStack Query (offlineFirst mode)Manages server data and offline synchronization.
Client StateJotaiGlobal state management for UI and auth status.
ListsFlashListHigh-performance list rendering for large datasets.
AnimationsReanimatedHigh-performance, native-like animations.
NavigationReact Navigation 7Routing and navigation for the mobile app.
CameraVision CameraAdvanced and performant camera functionalities.
Push NotificationsFirebase FCM + NotifeeReceiving and displaying rich notifications.

The platform is containerized using Docker and is designed to be cloud-agnostic.

ComponentTechnologyPurpose
ContainerizationDocker & Docker ComposeContainerizing all services for consistent environments.
CI/CDGitHub ActionsContinuous integration and deployment pipelines.
Web ServerNginxServing the web dashboard static files.