Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

headless-framework is a modern, open-source headless framework for .NET developers who want full control with zero constraints.

Notifications You must be signed in to change notification settings

xshaheen/headless-framework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

1,115 Commits

Repository files navigation

.NET Headless Framework

GitHub Stars

headless-framework is a modern, open-source headless framework for .NET developers who want full control with zero constraints.

Key Features

  • Unopinionated Design — Use your own patterns and architectures; the framework stays out of your way.
  • Supports Most Flows — Built to integrate seamlessly with real-world use cases: CRUD, CQRS, messaging, file uploads, and more.
  • Composable & Modular — Pick only what you need. Each piece is a standalone NuGet package.
  • Zero Lock-in — Use with any storage, any frontend, any transport (REST, gRPC, GraphQL, etc.).
  • Developer-Centric — Designed with clean architecture support, vertical slice support, CQRS, extensibility, and performance in mind.
  • No Magic, Just Code — Everything is explicit. No hidden conventions or forced scaffolding.

Ideal For .NET Developers Who:

  • Prefer flexibility to convention
  • Want to bootstrap quickly but scale cleanly
  • Care about performance, testability, and maintainability

Installation

All packages are available on NuGet. Install only what you need:

dotnet add package Headless.Api
dotnet add package Headless.Orm.EntityFramework
dotnet add package Headless.Caching.Redis
# ... and many more

LLms

Packages

API & Web

Package Description
Headless.Api ASP.NET Core API utilities and conventions
Headless.Api.Abstractions API abstractions and contracts
Headless.Api.DataProtection Data protection key storage
Headless.Api.FluentValidation FluentValidation integration for APIs
Headless.Api.Logging.Serilog Serilog logging integration
Headless.Api.MinimalApi Minimal API utilities
Headless.Api.Mvc MVC-specific utilities

Core

Package Description
Headless.Base Core primitives and utilities
Headless.BuildingBlocks Domain-Driven Design building blocks
Headless.Checks Guard clauses and argument validation
Headless.Domain Domain entities and events
Headless.Specifications Specification pattern implementation

Blob Storage

Package Description
Headless.Blobs.Abstractions Blob storage interfaces
Headless.Blobs.Aws AWS S3 blob storage
Headless.Blobs.Azure Azure Blob storage
Headless.Blobs.FileSystem Local filesystem storage
Headless.Blobs.Redis Redis blob storage
Headless.Blobs.SshNet SFTP blob storage

Caching

Package Description
Headless.Caching.Abstractions Caching interfaces
Headless.Caching.Foundatio.Memory In-memory caching
Headless.Caching.Foundatio.Redis Redis caching

Email

Package Description
Headless.Emails.Abstractions Email sending interfaces
Headless.Emails.Core Core email implementation
Headless.Emails.Aws AWS SES email provider
Headless.Emails.Dev Development email provider
Headless.Emails.Mailkit MailKit SMTP provider

Feature Management

Package Description
Headless.Features.Abstractions Feature flag interfaces
Headless.Features.Core Feature management implementation
Headless.Features.Storage.EntityFramework EF Core feature storage

Identity

Package Description
Headless.Identity.Storage.EntityFramework EF Core identity storage

Imaging

Package Description
Headless.Imaging.Abstractions Image processing interfaces
Headless.Imaging.Core Core image processing
Headless.Imaging.ImageSharp ImageSharp implementation

Logging

Package Description
Headless.Logging.Serilog Serilog logging utilities

Media

Package Description
Headless.Media.Indexing.Abstractions Media indexing interfaces
Headless.Media.Indexing Media indexing implementation

Messaging

Package Description
Headless.Domain.LocalPublisher In-process messaging

OpenAPI

Package Description
Headless.OpenApi.Nswag NSwag OpenAPI generation
Headless.OpenApi.Nswag.OData NSwag OData support
Headless.OpenApi.Scalar Scalar API documentation

ORM

Package Description
Headless.Orm.EntityFramework Entity Framework Core utilities
Headless.Orm.Couchbase Couchbase ORM utilities

Payments

Package Description
Headless.Payments.Paymob.CashIn Paymob cash-in payments
Headless.Payments.Paymob.CashOut Paymob cash-out payments
Headless.Payments.Paymob.Services Paymob shared services

Permissions

Package Description
Headless.Permissions.Abstractions Permission system interfaces
Headless.Permissions.Core Permission system implementation
Headless.Permissions.Storage.EntityFramework EF Core permission storage

Push Notifications

Package Description
Headless.PushNotifications.Abstractions Push notification interfaces
Headless.PushNotifications.Dev Development push provider
Headless.PushNotifications.Firebase Firebase Cloud Messaging

Resource Locking

Package Description
Headless.DistributedLocks.Abstractions Distributed locking interfaces
Headless.DistributedLocks.Core Distributed locking implementation
Headless.DistributedLocks.Cache Cache-based locking
Headless.DistributedLocks.Redis Redis-based locking

Serialization

Package Description
Headless.Serializer.Abstractions Serialization interfaces
Headless.Serializer.Json System.Text.Json serializer
Headless.Serializer.MessagePack MessagePack serializer

Settings

Package Description
Headless.Settings.Abstractions Dynamic settings interfaces
Headless.Settings.Core Settings management implementation
Headless.Settings.Storage.EntityFramework EF Core settings storage

SMS

Package Description
Headless.Sms.Abstractions SMS sending interfaces
Headless.Sms.Aws AWS SNS SMS provider
Headless.Sms.Cequens Cequens SMS provider
Headless.Sms.Connekio Connekio SMS provider
Headless.Sms.Dev Development SMS provider
Headless.Sms.Infobip Infobip SMS provider
Headless.Sms.Twilio Twilio SMS provider
Headless.Sms.VictoryLink VictoryLink SMS provider
Headless.Sms.Vodafone Vodafone SMS provider

SQL

Package Description
Headless.Sql.Abstractions SQL connection interfaces
Headless.Sql.PostgreSql PostgreSQL connection factory
Headless.Sql.SqlServer SQL Server connection factory
Headless.Sql.Sqlite SQLite connection factory

Testing

Package Description
Headless.Testing Testing utilities and base classes
Headless.Testing.Testcontainers Testcontainers fixtures

TUS (Resumable Uploads)

Package Description
Headless.Tus TUS protocol utilities
Headless.Tus.Azure Azure Blob TUS store
Headless.Tus.DistributedLock TUS file locking

Utilities

Package Description
Headless.FluentValidation FluentValidation extensions
Headless.Generator.Primitives Primitive types source generator
Headless.Generator.Primitives.Abstractions Generator abstractions
Headless.Hosting .NET hosting utilities
Headless.NetTopologySuite Geospatial utilities
Headless.Recaptcha Google reCAPTCHA integration
Headless.Redis Redis utilities
Headless.Sitemaps XML sitemap generation
Headless.Slugs URL slug generation

Quick Start

var builder = WebApplication.CreateBuilder(args);
// Add API infrastructure
builder.Services.AddHeadlessApi();
// Add caching
builder.Services.AddHeadlessRedisCache(options =>
{
 options.ConnectionString = "localhost:6379";
});
// Add blob storage
builder.Services.AddAzureBlobStorage(options =>
{
 options.ConnectionString = "your-connection-string";
 options.ContainerName = "uploads";
});
// Add email
builder.Services.AddAwsSesEmail(options =>
{
 options.FromEmail = "noreply@example.com";
});
var app = builder.Build();
app.UseHeadlessApi();
app.Run();

Architecture Pattern

Each feature follows the abstraction + provider pattern:

  • Headless.*.Abstractions — Interfaces and contracts
  • Headless.*.<Provider> — Concrete implementation

This enables easy swapping of implementations and testing with mocks.

Contributing

Feel free to submit issues, feature requests, or PRs. Let's build the ultimate headless .NET foundation together!

About

headless-framework is a modern, open-source headless framework for .NET developers who want full control with zero constraints.

Resources

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 6

AltStyle によって変換されたページ (->オリジナル) /