Tech Stack
Maskr is built with modern, open-source tooling. The tables below list every major dependency by category.
Frontend
| Technology | Role |
|---|---|
| Next.js 16 | Framework (App Router, SSR, API routes) |
| React 19 | UI rendering |
| Tailwind CSS 4 | Utility-first styling |
| Zustand | Client-side state management |
| React Query | Server state, caching, and background refetching |
| Framer Motion | Animations and transitions |
| Lucide React | Icon library |
Nostr
| Technology | Role |
|---|---|
| nostr-tools | Nostr protocol utilities (event creation, relay pool, NIP helpers) |
| @noble/secp256k1 | secp256k1 elliptic curve cryptography for key generation and signing |
| @noble/hashes | SHA-256 and other hash functions used in event ID computation |
| Effect.js | Type-safe, composable signing pipeline with structured error handling |
Backend
| Technology | Role |
|---|---|
| Vercel | Hosting and serverless function deployment |
| LibSQL / Turso | Primary relational database |
| Drizzle ORM | Type-safe database access layer |
| Upstash Redis | Edge caching for relay queries and rate limiting |
| Blossom (NIP-based media) | Media storage for uploaded images and files via blossom.maskr.space |
| Maskr Hub (Rust) | Custom Nostr relay hub aggregating events from the wider network |
| Hono | Lightweight HTTP framework for API routes |
| @simplewebauthn | Passkey (WebAuthn) registration and authentication |
| NextAuth | OAuth session management (Google) |
Development
| Technology | Role |
|---|---|
| Bun | Package manager and runtime |
| TypeScript | Static typing across the entire codebase |
| Vitest | Unit and integration testing |
| Playwright | End-to-end browser testing |
| ESLint | Code linting and style enforcement |