WhatsApp-style chat + Notion-style document collaboration mobile app.
- Backend: Go 1.23+ (Chi, pgx, Redis, WebSocket, JWT, zerolog)
- Frontend: React Native / Expo (TypeScript, Zustand, React Navigation)
- Database: PostgreSQL 16, Redis 7
- Infrastructure: Docker Compose
- Go 1.23+
- Node.js 20+
- Docker & Docker Compose
- Xcode (for iOS)
- Android Studio (for Android)
git clone https://github.com/otoritech/chatat.git
cd chatatmake db-upThis starts PostgreSQL (port 5433) and Redis (port 6380) via Docker Compose.
cp server/.env.example server/.env
make devServer runs at http://localhost:8080. Health check: GET /health.
cd mobile
npm install
npx expo start# Backend health check
curl http://localhost:8080/health
# Run tests
make test
# Run linter
make lint
# TypeScript check
make mobile-typecheck| Command | Description |
|---|---|
make dev |
Start Go server |
make build |
Build Go binary |
make test |
Run Go tests |
make lint |
Run golangci-lint |
make vet |
Run go vet |
make fmt |
Format Go code |
make db-up |
Start PostgreSQL + Redis |
make db-down |
Stop PostgreSQL + Redis |
make db-reset |
Reset database (drop + recreate) |
make mobile-start |
Start Expo dev server |
make mobile-typecheck |
TypeScript type check |
make check |
Run all checks (vet + lint + test + typecheck) |
chatat/
├── server/ # Go backend (API + WebSocket)
├── mobile/ # React Native / Expo frontend
├── docs/ # Development documentation
├── plan/ # Implementation plan (27 phases)
└── docker-compose.yml
See docs/project-structure.md for detailed structure.
- Project Structure
- Naming Conventions
- Error Handling
- Design Patterns
- Git Workflow
- Testing Strategy
- Go Style Guide
- React Native Style Guide
Private - All rights reserved.