Frameworks and libraries
What gets built on top of each language, grouped by the platform it belongs to.
.NET platform
.NET
Cross-platform development platform with its runtime, its libraries and its SDK.
ProficientASP.NET Core
Cross-platform .NET web framework for APIs and server-side applications.
ProficientMinimal APIs
A lightweight way to declare endpoints in ASP.NET Core, with no controllers in between.
Used in projectsLINQ
Queries built into the language, so collections, SQL and XML share the same syntax.
Used in projectsBlazor
Web UI framework in C#, running on the server or in the browser via WebAssembly.
Used in projectsMAUI
.NET framework for native cross-platform apps from a single codebase.
Used in projectsWPF
Windows desktop UI framework, with XAML and data binding.
Used in projectsWorker Services
Long-running .NET processes for consuming queues or running background jobs.
Used in projectsgRPC
Service-to-service communication with binary contracts, faster and stricter than REST.
Learning.NET libraries
Entity Framework Core
The official .NET ORM: maps classes to tables and translates LINQ into SQL.
Used in projectsDapper
Micro-ORM that maps the result of hand-written SQL, with performance as the priority.
Used in projectsSignalR
.NET library for real-time communication between server and client.
Used in projectsMediatR
Mediator pattern for .NET, commonly used to separate commands from queries.
Used in projectsMassTransit
An abstraction over message queues in .NET, supporting RabbitMQ and Azure Service Bus.
Used in projectsHangfire
Background tasks and scheduled jobs inside .NET applications.
Used in projectsFluentValidation
Validation rules in .NET written with a fluent API, kept outside the entities themselves.
Used in projectsPolly
Resilience policies for .NET: retries, circuit breaker, timeouts and fallback.
Used in projectsSystem.Text.Json
The .NET JSON serialiser, designed for throughput and low allocation.
Used in projectsSwagger / OpenAPI
Browsable API documentation generated from the code and its contract.
Used in projectsAutoMapper
Convention-based mapping between entities and DTOs, to avoid repetitive conversion code.
LearningSerilog
Structured logging in .NET: logs come out as queryable data, not as text.
LearningRefit
Declarative HTTP client: you define an interface and the library generates the calls.
LearningNode.js platform
Node.js
Runtime that executes JavaScript outside the browser, the basis of JS on the backend.
LearningNestJS
Node framework with modules, dependency injection and decorators, very close to ASP.NET Core.
LearningExpress
Node's minimalist HTTP framework, everywhere and the foundation of many others.
LearningFastify
An alternative to Express focused on throughput and JSON schema validation.
LearningJavaScript frameworks
React
Library for building interfaces out of components and declarative state.
ProficientNext.js
Framework on top of React with routing, server rendering and static generation.
Used in projectsAngular
Google's full framework, with dependency injection and a module-based structure.
Used in projectsVue.js
Progressive UI framework, usable from a single page up to a full SPA.
Used in projectsSvelte
Framework that compiles components away and drops the virtual DOM at runtime.
LearningAstro
Framework for content-driven sites, shipping zero JavaScript by default.
LearningJavaScript libraries
Redux Toolkit
The recommended way to use Redux for global state, with far less boilerplate.
Used in projectsReact Query
Server state in React: caching, revalidation and request synchronisation.
Used in projectsMaterial-UI
React component library implementing the Material Design system.
Used in projectsAxios
HTTP client with interceptors, cancellation and friendlier error handling than fetch.
Used in projectsZod
Schema validation in TypeScript that also infers the types from the schema.
LearningZustand
Global state in React with a minimal API, a lighter alternative to Redux.
LearningReact Hook Form
Form handling in React with validation and very few re-renders.
LearningSocket.IO
Real-time two-way communication over WebSockets, with automatic reconnection.
LearningStyling frameworks
Tailwind
Utility-first CSS framework: styles are composed from small classes in the markup.
Used in projectsBootstrap
The classic CSS framework, with its grid and its catalogue of components.
Used in projectsCSS Modules
Local scope for CSS classes, avoiding name collisions between components.
Used in projectsstyled-components
CSS written inside the React component, with styles generated at runtime.
LearningBuild tooling
Vite
Build tool and dev server with very fast startup and hot reload.
Used in projectsWebpack
The classic module bundler, highly configurable and still common in large projects.
Used in projectsESLint
Static analyser for JavaScript and TypeScript that catches errors and settles style.
Used in projectsPrettier
Automatic code formatter: takes style arguments out of code review entirely.
Used in projectsesbuild
Bundler written in Go, orders of magnitude faster than the classics.
Learning