The Regira packages offer a focused set of .NET libraries whose main job is to put a clean abstraction layer over existing libraries: same interface, different implementation. Pick the provider that fits, swap it later, leave the calling code untouched.
Declare the contract once, ship one or more providers behind it, swap them without rewriting your callers. IO is the cleanest case — one IFileService, five backends. Office follows the same idea where the underlying libraries allow it: the contract covers the common ground and providers add the rest.
Register an entity once and get a complete CRUD/REST API — filtering, sorting, paging, related data, DTO mapping — over generic repositories, with extension points for custom logic. No hand-written controllers; what remains is just your domain.
Shared contracts over PDF, Excel, Word, CSV, vCards, Mail, OCR and Barcodes — plus the Drawing API. Providers vary in capability; the abstraction covers what they share.
The textbook abstraction-layer case. One IFileService over FileSystem, Azure Blob, GitHub and SSH/FTP — same calls, different backend.
Hierarchical List<TreeNode<T>> with parent/child links and depth-first traversal. Pairs naturally with recursive entities — nest a self-referencing table into a tree, mutate it, flatten it back.
Packages are published on nuget.org — install the libraries you want and go. Free tier included.
# Install the packages you need — straight from nuget.org
dotnet add package Regira.Entities.Web
dotnet add package Regira.Drawing.SkiaSharp
dotnet add package Regira.IO.StorageMany of the same building blocks are exposed at services.regira.com behind a Scalar-powered API explorer. Try them with a single HTTP call — no .NET project required.
Drawing, Office (PDF, Excel, Word, Barcodes, OCR), Mail, vCards and more — interactive docs, ready to call from any language.
Start free, no key — just a small rate limit. Request a free trial or commercial license to remove it.
Four ideas the whole codebase tries to hold to.
Sane defaults. Short DI registration. No mandatory generators or attributes.
Every package is wired through dependency injection. Interfaces over implementations — swap a provider without rewriting consumers.
A CRUD entity is a registration line and a search object; the diff a reviewer reads is your domain logic, not the code around it.
Predictable contracts and JSON-shaped inputs that play well with LLMs and tools.
Try out our MCP server! The Regira-Samples repo was scaffolded with it.
The libraries are how we keep our own builds tidy. When clients need more than building blocks, we take on the whole thing — custom web applications, designed and built end-to-end.
From a single internal tool to a full B2B portal. We scope, design, build and ship.
A short brief is enough to start. We'll reply with questions, a rough shape, and whether we're a good fit.