React and Next.js frontends
DEVNU / TECHNOLOGY / TYPESCRIPT
TypeScript is more than autocomplete. It is a contract between parts of the system.
When frontend, backend, data models and integrations evolve together, types expose mismatches before production. TypeScript creates the most value when types reflect the real domain instead of being bypassed with `any`.
What does TypeScript own in a project?
TypeScript is the primary language across many DEVNU layers: React and Next.js on the frontend, NestJS on the backend, DTOs, validation boundaries and tooling. The goal is a shared model of data shapes and API behaviour without pretending compile-time types replace runtime validation.
Where the technology should solve a specific problem.
NestJS backends
DTOs and API contracts
Data models and mapping
SDK and integration wrappers
Build tools and production scripts
When we reach for it
For modular codebases, collaborative teams and products expected to evolve for years, TypeScript usually repays its initial overhead quickly. It is particularly valuable in integration-heavy systems where contract changes need to be traceable.
When we leave it out
For a tiny one-off script or extremely short prototype, configuration and type design can outweigh the problem. If that script starts becoming production infrastructure, we move the boundary toward TypeScript early.
Using the tool is easy. Operating it well is the real work.
- 01Strict mode and deliberate removal of `any`
- 02Runtime validation at input boundaries
- 03Domain types instead of vague objects
- 04Prefer `unknown` to `any` for external data
- 05Generics only when a real shared pattern exists
- 06Refactors backed by typechecking in CI/build
The decisions matter more than the stack badge.
Type or interface?
There is no dogmatic rule; consistency matters more. Interfaces work well for extendable object contracts while type aliases are often clearer for unions and composition.
Shared frontend/backend types?
Only when package boundaries and versioning are explicit. Importing backend-internal types directly into a frontend creates hidden coupling.
Compile-time or runtime validation?
Both. TypeScript does not validate network or form data at runtime, so external input still needs validation at the boundary.
Projects where TypeScript is part of the recorded stack.
SUMY Website & Operations System
SUMY's bilingual industrial website, with an API, database and a dedicated admin area for pages, products, brands and incoming enquiries.
- React
- TypeScript
- NestJS
- PostgreSQL
- Prisma
- Docker
PasarGuard — Telegram commerce & operations
A personal product that brings ordering, wallet balance, service delivery and reseller operations into one Telegram bot and Mini App flow.
- Telegram
- React
- TypeScript
- FastAPI
- PostgreSQL
- Redis
- Docker
- Nginx
DEVNU Science — Scientific Research Workspace
A connected research workspace that moves from a gene, protein, variant, disease or sequence into evidence, 3D structure, analysis and repeatable workflows without aimless database hopping.
- Next.js
- React
- TypeScript
- PostgreSQL
- Drizzle
- Better Auth
- GSAP
- Nginx
Technology only matters inside a useful outcome.
Common questions about TypeScript
01Does TypeScript slow development down?+
It adds some upfront work, but in a growing codebase it reduces debugging, refactor and integration cost. Poor type design can of course create the opposite effect.
02Does TypeScript replace tests?+
No. Types remove one class of mistakes; behaviour, integrations and edge cases still need tests.
09 / NEXT STEP
Start with the problem. Choose the stack second.
If the project needs this technology, the reason should be visible in architecture, performance, user experience or maintenance cost.
Describe the project