Skip to content
Slicekit

Launch price for the first 100 buyers: €149, then €279.

Stop rebuilding the same .NET plumbing. Ship your SaaS instead.

The full source of a .NET 10 API and a React 19 app with passkeys, an audited admin, invitations, Stripe billing, GDPR export and erasure, an MCP server for AI apps, and Grafana dashboards already built and tested.

Get Slicekit

Running in production on 5+ projects · one-time license · lifetime updates · 14-day refund

From purchase to running stack4 commands
# clone, rename everything, fresh secrets
$ curl -fsSL https://slicekit.dev/scripts/new.sh | bash -s -- --name Acme
# postgres, redis, rabbitmq, minio, mailpit, grafana
$ cd acme && docker compose up -d
# the API, on localhost:5076
$ dotnet run --project api/src/Acme.Api
# the app, on localhost:3003
$ cd frontend && pnpm dev

Not every product needs every module. Add --no-billing, --no-mcp or --no-notifications and it is removed cleanly.

app.slicekit.dev/admin/users/u_8f2c1a
The Slicekit admin user detail page: profile, roles, sessions and audit historyThe Slicekit admin user detail page: profile, roles, sessions and audit history

The admin user page as it ships, captured from the running template.Sign in to the live demo and open it yourself.

Backend
.NET 10 · EF Core · PostgreSQL · Wolverine · RabbitMQ · Redis
Frontend
React 19 · Vite · TanStack Router + Query · Tailwind v4 · shadcn/ui
In production
5+ projects run on it today
Counted in the source
119 handlers · 947 .NET tests · 108 frontend tests

Already running 5+ projects in production. Check the rest yourself.

There are no public testimonials yet. Instead, you can look at all of it before paying: the running app, every doc, the live API and the libraries it's built on.

Each feature lives in one folder, from the button to the database.

Slicekit uses vertical slices on both sides of the wire. To add a feature you copy a slice and rename it; to remove one you delete a folder. This is the real "Create API key" slice.

  1. form
  2. api.ts
  3. CreateApiKeyEndpoint
  4. Validator → Handler
  5. EF Core · Postgres
  6. ApiKeyCreatedEvent

Slicekit.Core/Features/ApiKeys/CreateApiKey/

  • Command.csrequest
  • Validator.csrules
  • Handler.cslogic
  • Result.csanswer
  • ApiKeyCreatedHandler.csevent

Slicekit.Api/Endpoints/v1/ApiKeys/

  • CreateApiKeyEndpoint.csHTTP

frontend/src/features/api-keys/

  • api.tstyped client
  • hooks.tsquery
  • schemas.tszod
Handler.cs · from the repository, trimmed
public async Task<(Result<CreateApiKeyResult>, OutgoingMessages)> HandleAsync(
CreateApiKeyCommand command, CancellationToken ct = default)
{
// An API key is a bearer credential that a password change does not invalidate,
// so a stolen session must re-prove the account before minting one.
var verified = await stepUp.VerifyAsync(command.UserId, command.Password, command.ReauthToken, ct);
if (verified.IsFailure) return (Result<CreateApiKeyResult>.Fail(verified.Error), messages);
var activeCount = await db.ApiKeys.CountAsync(k => k.UserId == command.UserId, ct);
var withinLimit = await entitlements.RequireWithinLimitAsync(
command.UserId, FeatureKeys.ApiKeyLimit, activeCount, ct);
if (withinLimit.IsFailure) return (Result<CreateApiKeyResult>.Fail(withinLimit.Error), messages);
var plainKey = generator.Generate();
var entity = ApiKey.Create(plainKey, command.UserId, command.Name, command.ExpiresAtUtc);
// ... resolve the scoped permissions, grant them, save
}

The endpoint is a thin adapter. A CLI, a worker or a scheduled job can send the same command without a web server.

Errors have one shape. The validator's error codes come back as problem details, and the form puts each on its field.

Boundaries are tested. Architecture tests fail the build when a slice reaches where it shouldn't.

Everything you'd otherwise build before your first feature.

63 parts in 11 areas, each one shipped working and covered by tests. Pick an area to see what's in it. The docs explain how every part works.

Sign-in & sessions

Built on ASP.NET Core Identity, hardened, and finished down to the emails it sends.

app.slicekit.dev/settings/securityOpen in the live demo ↗
Security settings with password, passkeys, two-factor and linked accountsSecurity settings with password, passkeys, two-factor and linked accounts
  • Cookie sessions, hardened

    Tokens live in HttpOnly cookies with CSRF protection on every state-changing request. Refresh tokens rotate in families, and reuse of an old one revokes the whole chain.

  • Passkeys and TOTP

    WebAuthn passkeys for passwordless sign-in, plus TOTP with QR enrollment and downloadable recovery codes. Both managed by the user.

  • Google and GitHub sign-in

    OAuth providers that link to an existing account and can be unlinked again from settings.

  • Sessions per device

    Every active session is listed by device and can be revoked on its own or all at once. Revoking is real because it sits on the token families.

  • Single-use tokens

    Email verification, password reset and email change run on single-use, time-boxed tokens. Recovery codes are one-time and regenerable.

  • The unglamorous rest

    Breach-checked passwords via Have I Been Pwned, lockout with admin unlock, Redis-backed rate limits, security headers and reverse-proxy trust.

  • Account emails, ready to send

    Welcome, verification, password reset and changed, email change, a sign-up attempt on a known address and a session-theft alert. One responsive Razor layout over any SMTP.

Permissions & admin

Who may do what, how they got in, and a record of everything they did.

app.slicekit.dev/admin/rolesOpen in the live demo ↗
Role preset editor with grouped permission togglesRole preset editor with grouped permission toggles
  • Granular permissions

    Endpoints and UI check the same permission catalog, in three tiers: self-service, assignable staff grants and superadmin operations.

  • Role presets

    Named presets copy grants onto users or invitations. An explicit apply action pushes role edits to existing users.

  • Invite-only onboarding

    Invite by email with a permission snapshot or preset. Resend, revoke or update pending invitations, and switch public sign-up off entirely.

  • Accountable impersonation

    Support acts as a user only with a logged reason. The original admin stays in the token, and both identities land in the audit trail.

  • Hash-chained audit trail

    Actor, resource, outcome and sequence number for every security action. Each entry carries the hash of the previous one, so tampering shows.

  • Scoped API keys

    Users mint keys with a subset of their own permissions, an expiry and rotation. The plain key is shown once and never stored.

Privacy & GDPR

The parts an EU product needs before launch, enforced by the build instead of by memory.

app.slicekit.dev/settings/privacyOpen in the live demo ↗
Privacy settings with data export and account deletionPrivacy settings with data export and account deletion
  • Self-service data export

    Users download everything held about them from the privacy settings, without a support ticket.

  • Erasure with anonymization

    Deletion soft-deletes the user and anonymizes personal fields, so foreign keys and audit history stay intact.

  • Export and erasure cannot drift

    An architecture test fails the build if a personal field is exported but not erased, or erased but not exported.

  • Versioned consent

    Registration records which version of the terms and privacy policy was accepted, and when.

  • PII encrypted and redacted

    Personal fields are encrypted at rest with ASP.NET Data Protection, and a Sensitive attribute keeps them out of logs and audit payloads.

  • Your infrastructure

    Postgres, Redis, RabbitMQ, MinIO and the Grafana stack are open source and self-hosted. You pick the external providers.

Stripe billing

Optional module · remove with --no-billing

Subscriptions that work against Stripe on day one, with Stripe as the source of truth.

app.slicekit.dev/billingOpen in the live demo ↗
Plan selection page with tiers and a free trialPlan selection page with tiers and a free trial
  • Subscriptions end to end

    Checkout, configurable trials and the Customer Portal, with confirmation and paid-invoice emails that attach the PDF.

  • No parallel price table

    Products and prices live in your Stripe dashboard. A metadata marker keeps test and unrelated products out of the catalog.

  • Feature-key entitlements

    Gate features with boolean flags and numeric limits, enforced in the API slice that acts and mirrored in the UI.

  • Plan limits from the admin panel

    Map feature keys to products and tune limits, like 10 API keys on Starter and 100 on Pro, without a deploy.

  • Webhooks that never double-process

    An idempotency ledger keyed on the Stripe event id, durable retries for transient faults, and PII payloads redacted on a schedule.

  • Inside the GDPR flows

    Export includes subscription state. Deletion cancels live subscriptions while Stripe keeps the invoices tax law requires.

MCP server

Optional module · remove with --no-mcp

Your users work with your product from Claude, ChatGPT, Claude Code, Codex, Cursor or VS Code.

See it in the live demo ↗

  • Server and setup guides

    Streamable HTTP at /mcp on the official C# SDK. Settings show the server URL and a setup guide per client.

  • OAuth consent, wired

    PKCE, client discovery and registration. Users approve read-only, read-and-write or custom permissions.

  • Sign up while connecting

    New users register with email, Google or GitHub mid-flow, and the pending request brings them back to consent.

  • Access the user controls

    Connected apps are listed in settings with editable permissions, and disconnecting cuts off tokens already issued.

  • Accountable tool calls

    Every call records the tool, client and outcome in the audit trail, under the same permission rules as the API.

  • Your tools, same handlers

    Add product tools beside the account tools; they call the same handlers as the API. Scoped API keys for agents are opt-in.

Notifications

Optional module · remove with --no-notifications

Know what happens in your product as it happens, and tell the right people.

app.slicekit.dev/admin/notificationsOpen in the live demo ↗
Notification message builder previewing an event payloadNotification message builder previewing an event payload
  • Know when someone signs up

    Twenty catalogued events, from a registration to a failed payment, fan out to Slack, Discord, Apprise or email.

  • A message builder per event

    Choose which events reach which target and rewrite each message, with a preview of the real payload before saving.

  • An admin inbox that misses nothing

    Every event is recorded in-app even with no target subscribed. Repeats collapse into one row and link to the user behind them.

  • A personal inbox for users

    Live unread counts and localized messages. This part is the optional module; admin alerts always stay.

  • Email, digests, quiet hours

    Users choose immediate email or a daily digest, set quiet hours and manage delivery preferences.

  • Your own events

    A test event ships with the pattern for adding notifications for your product.

Frontend

The account and admin UI, already built, in English and Dutch, light and dark.

app.slicekit.dev/Open in the live demo ↗
The signed-in dashboard with shortcuts to settings and adminThe signed-in dashboard with shortcuts to settings and admin
  • Full settings area

    Profile and avatars, security, sessions, API keys and privacy.

  • Finished admin panel

    Users, role presets, invitations, impersonation, the audit log and cache controls.

  • English and Dutch

    i18next, with validation and API errors localized too. The pattern takes more languages.

  • Light, dark and system

    OKLch design tokens and no flash of the wrong theme on load.

  • One typed API client

    CSRF header and silent refresh-retry built in, with TanStack Query for server state.

  • Forms that speak API

    React Hook Form and Zod. Server errors map to the field that caused them.

  • Permission-gated UI

    The API permission catalog decides what renders, so the UI never shows what the API would refuse.

  • Typed file-based routing

    TanStack Router with automatic code splitting.

Backend architecture

A mainstream .NET 10 stack, organised by feature, with no framework of its own.

Browse every endpoint in the live API reference ↗

  • Vertical slices and DDD

    Code grouped by feature. Aggregates guard their own rules and raise domain events.

  • Wolverine CQRS

    Commands and queries are plain handler classes, discovered by convention and checked by tests.

  • Transactional outbox

    Integration events leave through an outbox to RabbitMQ, so a crash between save and publish loses nothing.

  • EF Core on PostgreSQL

    Migrations with bundles in the image, a readable .slnx and central package management.

  • OpenAPI with Scalar

    Versioned endpoints, health checks and a live reference with request and response schemas.

  • Caching, storage, jobs

    FusionCache with a Redis backplane, S3-compatible storage on MinIO and TickerQ background jobs.

Observability & ops

You can see what it is doing in production from the first deploy.

  • Three signals, one pipeline

    OpenTelemetry traces, metrics and logs through the collector to Tempo, Prometheus and Loki. One click is one span tree.

  • Dashboards and alerts

    Four Grafana dashboards and six Prometheus alert rules ship provisioned, with Alertmanager routing.

  • Local stack in one command

    docker compose up -d starts Postgres, Redis, RabbitMQ, MinIO, Mailpit and the observability stack.

  • Migrations before rollout

    The API image includes EF migration bundles. Startup migrations are a configuration switch.

  • CI from the first push

    Pull requests build both apps, run the tests and scan packages. Main pushes an image with SBOM and provenance to GHCR.

  • Production compose file

    A production Docker Compose stack that builds and runs the API image beside its services.

Tests & AI tooling

Guardrails that keep the codebase honest, whether a person or an agent makes the change.

  • Four test projects

    Unit, architecture, feature tests against real Postgres via Testcontainers, and API tests.

  • Architecture tests

    Layer boundaries, encapsulation, endpoint access, handler discovery and personal-data completeness all fail the build when broken.

  • AGENTS.md routers

    Per-side instructions point Claude Code, Codex, Copilot and Cursor at the right conventions first.

  • One shape per feature

    Every slice has the same files in the same place, so an agent copies one and renames it.

  • Docs as Markdown

    Every docs page is also served as raw Markdown, ready to paste into a model.

  • Types end to end

    C# and TypeScript catch a wrong guess at compile time instead of in production.

Open-source stack

Every library is mainstream, documented upstream and replaceable. Each name links to its own project.

Gerwin Kuijntjes
"On project after project I rebuilt the same foundation. Every time, the first month went to plumbing instead of the product. Slicekit is the foundation I wish I'd had."

I designed the architecture and review every line that ships. Architecture tests enforce the boundaries, feature tests run against a real database, and AI tools only do mechanical work.

Gerwin Kuijntjes · Certified Software Engineer · gerwinkuijntjes.nl

Pay once and the source is yours.

No subscription and no per-seat fees on what you ship. Early-bird pricing for the first 100 customers. The price rises after that. Prices are excl. VAT; VAT is added at checkout.

14-day money-back guarantee.
Email within 14 days for a full refund, no questions asked.
Lifetime updates.
Add Slicekit as an upstream remote and merge when you choose.
Nothing to keep online.
No runtime, hosted service or license server.

Solo

One developer

€149€279one-time

One developer, unlimited products of your own (including paid client work).

  • Full source: .NET 10 API, React 19 SPA, landing page
  • Auth: passkeys, TOTP, OAuth, sessions, granular permissions
  • Finished admin: users, roles, invitations, impersonation, audit log
  • MCP server: OAuth consent, scoped access, connected apps
  • User inbox: live updates, email, digests, quiet hours
  • Admin alerts: Slack, Discord, Apprise, email + inbox
  • Stripe billing: subscriptions, trials, plan entitlements
  • Event-driven core: CQRS, outbox, RabbitMQ
  • Observability: OpenTelemetry, Grafana, alerts
  • Infra & CI: Docker Compose, GitHub Actions, tests
  • Lifetime updates and full documentation

Team

Up to 5 developers

€399€749one-time

Your whole team. Built to resell client work on.

  • Everything in Solo, for up to 5 developers
  • Use across unlimited client and internal projects
  • Priority email support from the author

Neither license lets you resell Slicekit itself as a template. More than five seats? Email me.

Questions before you buy

Something not covered? Mail [email protected].

Can I evaluate it before I buy?

Yes, and you should. The live demo lets you sign in and explore the real admin and account surface: user management, impersonation, audit logs, sessions, passkeys and all the settings screens. The full documentation is public and searchable. The OpenAPI reference lists every endpoint with request and response schemas, and you can run calls against the live demo API. The landing site and the docs you are reading now ship in the box as a static Astro project, so you can judge the code approach from what is already in front of you. Buy when you are confident.

What exactly do I get when I buy?

Access to the private Git repository with the full source: the .NET 10 API, the React 19 SPA, this marketing site and the documentation. You clone it, run scripts/new.sh to rename everything to your product, and it is yours to build on.

Is this production-ready or a proof of concept?

It is a starting point for a production system, not a toy, and it already runs 5+ projects in production. The stack is standard and deliberately boring: .NET 10, EF Core on PostgreSQL, RabbitMQ for messaging. The auth surface ships with breach-checked passwords, rotating refresh tokens, CSRF protection and a hash-chained audit trail. Four test projects cover unit logic, architecture boundaries, feature tests against a real database via Testcontainers and API contracts. GitHub Actions builds a Docker image with an SBOM and a vulnerability scan on every push to main. Nothing in here is a shortcut you will regret at scale.

Is the code AI-generated?

No. Every architectural decision was made by an engineer, every pattern has a reason, and every line was reviewed before it shipped. AI tools are used the way any working developer uses them today: for speed on mechanical tasks. The design, the trade-offs and the accountability are human. The AGENTS.md files and the docs explain the reasoning behind each pattern. The architecture tests enforce the boundaries so the codebase stays honest as it grows.

How is this different from ABP Framework or other .NET boilerplates?

ABP is a framework you build on: it has a proprietary runtime, its own abstractions and an upgrade path you must follow. Slicekit is source code you own. No framework to depend on, no SDK to call, no license server that needs to stay online. You get standard .NET 10, standard EF Core, standard ASP.NET Core Identity. Read it, rename it, delete what you do not need. From that point it is just your code. The patterns are documented and enforced by tests, not locked behind a library.

Do I need to be a .NET expert to use it?

No. Every feature follows the same vertical-slice shape in the same place, the docs walk through adding one, and the per-side AGENTS.md files orient new engineers and AI agents alike. If you know C# and TypeScript, you will be productive quickly.

Can my AI coding assistant work in this codebase?

Yes, by design. Per-side AGENTS.md routers, predictable slices, end-to-end types and architecture tests give tools like Claude Code, Codex, Copilot and Cursor the structure they need to land working changes instead of guessing.

Can users connect AI apps to my product through MCP?

Yes. The template ships a Streamable HTTP MCP server, OAuth consent with PKCE, client setup guides and connected-app management. Users choose read-only, read-and-write or custom access, then can edit permissions or disconnect in settings. New users can sign up during the connection flow. Account tools are included; add your product tools using the same handlers as your API. Production MCP is opt-in, and --no-mcp removes the feature when scaffolding.

Can I run an invite-only product with staff roles?

Yes. Disable public registration and invite users by email with a permission snapshot or a named role preset. Admins can resend or revoke invitations, edit role presets and explicitly apply role changes to existing users. Authorization continues to check individual permissions.

Are personal notifications included as well as admin alerts?

Yes. Users get a personal inbox with live unread counts, localized messages, immediate email or daily digests, quiet hours and delivery preferences. It ships a test event and the pattern for adding your own product events. Operator alerts remain a separate system. Scaffold with --no-notifications to omit personal notifications.

What does the Solo license allow, and when do I need Team?

The Solo license lets one developer build on unlimited products of your own, including paid client work. You cannot resell or redistribute Slicekit itself as a template or starter kit. The Team license covers up to five developers. Need more than five seats or something custom? Email me.

Is it really one-time? Any subscription or per-seat fees?

One-time. No subscription, no recurring fee, and no per-seat metering on the users or revenue of what you ship. You buy the source once and own your copy.

What do 'lifetime updates' include, and how do I pull them in?

You keep access to the repository and every update pushed to it: dependency bumps, new slices, security fixes. Because it is plain Git, you add Slicekit as an upstream remote and merge updates on your own schedule, resolving against your changes like any other branch.

What if Slicekit shuts down or stops being maintained?

Nothing changes for your product. You have the full source: there is no runtime to depend on, no hosted service your app calls, nothing that needs to stay online for your product to work. If updates stop arriving tomorrow, your codebase is unchanged. Even in the worst case you already have everything you bought on your own machine from the first clone.

Does it handle payments and subscriptions?

Yes. Slicekit ships Stripe billing end to end: recurring subscriptions through Stripe Checkout and the Customer Portal, a free trial per plan, and subscription state kept in sync through signed, idempotent webhooks. Plans live in your Stripe dashboard (Stripe is the source of truth), and you map feature keys onto them, boolean flags and numeric limits like "10 API keys on Starter, 100 on Pro", from the admin panel without a deploy. The app resolves and enforces the right entitlement per user. It is also removable as a unit: scaffold with --no-billing (or run scripts/remove-billing.sh) if your product does not charge.

How does billing fit GDPR and tax-retention obligations?

Cleanly, because Stripe is the system of record for invoices and payments, not the app. The export includes a user's subscription state, and account deletion cancels any live Stripe subscription and removes the local billing rows. The Stripe customer and its invoices are deliberately kept: tax and accounting law commonly requires keeping financial records for several years, and GDPR Article 17(3)(b) permits retention where it is a legal obligation. So erasure and your bookkeeping obligations do not conflict, by design.

What if it is not for me?

There is a 14-day money-back guarantee, no questions asked. If Slicekit does not fit your project, email within 14 days of purchase and I refund you in full. The demo, the docs and this page are all public so you can judge most of it before you ever pay.

Start on the part that is actually your product.

Get Slicekit · €149

Checkout

Get Slicekit

Tell us where to grant access. After payment we add your GitHub account to the private repository and email your license details.

We grant repository access to this account.

Your receipt and license details go here.

By purchasing you agree to the commercial license.

Payment handled by Stripe. 14-day money-back guarantee.

Live demo

Explore the running app

No sign-up. Pick an account to open the demo with its credentials prefilled, or open it and sign in yourself.

Open without signing in

Credentials are prefilled. Shared password Slicekit-Demo-2026!.