/uses
What I reach for daily.
The tools, libraries, and patterns I actually use to ship production software. Not aspirational — what's in the terminal history.
Last updated: June 2026 · Inspired by uses.tech
◈Daily Driver
- HardwareHP EliteBook 840 G8 Notebook PC + 11th Gen Intel(R) Core(TM) i5-1145G7 @ 2.60GHz (2.61 GHz)/16 GB RAM
- Display4K UHD IPS Display + 1920x1080 external monitor
- KeyboardMechanical / laptop keyboard hybrid — the built-in keyboard for portability, and a Keychron K2 for long coding sessions at my desk.
- OSWindows 11 Pro
▦Editor & Terminal
- EditorVS CodePlus the obvious extensions: ESLint, Prettier, GitLens, Error Lens, Pretty TypeScript Errors
- AI assistClaude Code / GitHub Copilot / CodexFor boilerplate, refactors, and rubber-ducking
- ThemeDracula Official
- TerminalWindows Terminal
- Shellpwsh (PowerShell Core)
▲Frontend
- FrameworkNext.js 16 (App Router)Server Components by default, client components only when needed. Turbopack for dev.
- LanguageTypeScriptStrict mode. No implicit any. No untyped boundaries.
- StylingTailwind CSS 4With CSS variables for theming. Occasional inline styles for one-offs.
- State (when needed)Zustand · React Context · URL stateMost pages need less state than people reach for. URL state and Server Components do a lot of the work.
- Formsreact-hook-form + ZodType-safe end to end. Same Zod schema runs client and server.
- AnimationCSS transitions · IntersectionObserver · Motion (when justified)
⚡Backend
- RuntimeNode.js (Express 5 for dedicated services)Express for stateful real-time services like chat servers. Next.js route handlers for everything else.
- ValidationZodOn every API boundary. No untrusted data reaches business logic.
- API docsSwagger / OpenAPIGenerated from the same schemas. Clients always have a contract.
- Real-timeSocket.ioWith JWT-over-socket auth and smart fan-out (dedup window per room).
- AuthAuth.js v5 (NextAuth) · JWT for Express services
- Background jobsCron via Vercel / route handlers · BullMQ for heavier queues
⚛Mobile
- FrameworkReact Native + Expo (managed workflow)EAS Build for production. No ejecting unless absolutely needed.
- NavigationExpo Router (file-based)
- Native APIsexpo-notifications · expo-location · expo-file-system
◆Data
- Primary databaseMongoDB / MongooseDefault choice for document-shaped data (bookings, multi-tenant tenants, chat messages).
- RelationalPostgreSQLWhen the data is genuinely tabular and joins are central.
- Cache / pub-subRedisSessions, rate limits, transient state. Upstash for serverless deploys.
- Real-time DBFirestore · SupabaseFor projects where the client wants a managed real-time backend.
- File storageDigitalOcean Spaces · AWS S3
$Payments & Integrations
- StripeSubscriptions, webhooks, ConnectAlways verify webhook signatures. Always idempotency-key your event handlers (stripeEventId).
- Local payments (BD)bKash · Nagad · Cash on deliveryFor Bangladesh-market projects.
- EmailNodemailer (SMTP) · Resend (managed)
- MapsMapbox GLGeospatial queries via MongoDB 2dsphere indexes.
▣Deployment & DevOps
- HostingVercel · DigitalOcean App PlatformVercel for Next.js. DO for Express services that need persistent processes (Socket.io).
- CI/CDGitHub Actions
- MonitoringVercel Analytics · Sentry
- DNS / CDNCloudflare
✓Working Style
- CommitsConventional commitsfeat:, fix:, refactor:, chore:. Makes changelogs free.
- Branchingtrunk-based with short-lived feature branches
- ReviewsPRs even for solo work — leaves an audit trail
- Testing philosophyIntegration > unit for backend; visual + e2e for frontendI write tests where the cost of a bug is high — payment flows, auth, data migrations.
Want to see this stack in production?
I'm taking on new freelance and contract projects.