Vihita

How I Build Products and Systems

Technical, product-focused principles I use when designing and shipping features and systems.

UI principles

System principles

Tradeoffs and design decisions

I treat every non-trivial choice as a tradeoff: consistency vs. flexibility, speed to ship vs. long-term maintainability, build vs. buy, and so on. I document the decision, the alternatives considered, and what would make us revisit it. That keeps the “why” visible and makes it easier to change course when constraints change.

I prefer boring tech where it fits—proven patterns, well-understood stacks—and reach for newer tools only when the problem clearly benefits. I’d rather ship a simple, readable solution and iterate than over-engineer up front.

Simple architecture and component shapes

How I conceptually group frontend and backend.

High-level system shape

┌─────────────┐     ┌─────────────┐     ┌─────────────────┐
│   Clients    │────▶│  API / GW  │────▶│  Services       │
│  (Web, etc.) │     │  (REST)    │     │  (domain logic) │
└─────────────┘     └─────────────┘     └────────┬────────┘
                                                  │
       ┌──────────────────────────────────────────┼──────────┐
       ▼                  ▼                       ▼          ▼
┌────────────┐    ┌────────────┐    ┌────────────┐   ┌────────────┐
│  Database  │    │   Cache    │    │  Queues /   │   │  External  │
│            │    │  (Redis)   │    │  Events     │   │  APIs      │
└────────────┘    └────────────┘    └────────────┘   └────────────┘

Frontend component layering

┌───────────────────────────────────────────────────┐
│  Pages / Routes (composition, data loading)   │
└─────────────────────────┬───────────────────┘
                          │
┌─────────────────────────▼───────────────────┐
│  Features (domain-specific components +     │
│  hooks, orchestration)                       │
└─────────────────────────┬───────────────────┘
                          │
┌─────────────────────────▼───────────────────┐
│  Shared UI (design system, primitives,      │
│  layout)                                     │
└─────────────────────────────────────────────┘

← Back to home