Source: https://seerepo.com/r/Kareadita/Kavita/built
Markdown source: https://seerepo.com/r/Kareadita/Kavita/built.md
Description: Kavita is a C# repo built with ASP.NET Core, Microsoft.Extensions.Hosting, Microsoft.AspNetCore.StaticFiles, and Angular. It stores its data in SQLite.

# What is Kavita built with?

Kavita is a C# repo built with ASP.NET Core, Microsoft.Extensions.Hosting, Microsoft.AspNetCore.StaticFiles, and Angular. It stores its data in SQLite, reaches it with Microsoft.EntityFrameworkCore.Design and Microsoft.EntityFrameworkCore, signs people in with Microsoft.Extensions.Identity.Stores, System.IdentityModel.Tokens.Jwt, Microsoft.AspNetCore.Authentication.JwtBearer, Microsoft.AspNetCore.Authentication.OpenIdConnect, and Microsoft.AspNetCore.Identity.EntityFrameworkCore, makes its content with HtmlAgilityPack, CsvHelper, YamlDotNet, Markdig, and MailKit, is tested with coverlet.collector, Microsoft.NET.Test.Sdk, xunit.assert, xunit.runner.visualstudio, NSubstitute, and 2 more, deploys with Serilog.AspNetCore, Serilog.Enrichers.Thread, Serilog.Extensions.Hosting, Serilog.Settings.Configuration, Serilog.Sinks.Console, and 2 more, and uses Microsoft.Data.Sqlite and Microsoft.EntityFrameworkCore.Sqlite. It has 278,372 written lines, with 175 test files.

Read on November 11, 2026, at commit a9cdf1c.

Repository: https://github.com/Kareadita/Kavita

## Backend (/)

### The base

- **[ASP.NET Core](https://seerepo.com/uses/aspnet-core)**

### Data

- **Microsoft.Data.Sqlite**
- **Microsoft.EntityFrameworkCore.Sqlite**
- **[SQLite](https://seerepo.com/uses/sqlite)**: 2 files · [Kavita.Services/DebugExport/ExportDatabaseScrubService.cs, line 24](https://github.com/Kareadita/Kavita/blob/a9cdf1cad9ae14f88a295c3a6fc7993f9823d59d/Kavita.Services/DebugExport/ExportDatabaseScrubService.cs#L24)

### Data access

- **Microsoft.EntityFrameworkCore.Design**
- **Microsoft.EntityFrameworkCore**: 386 files

### Sign-in

- **Microsoft.Extensions.Identity.Stores**
- **System.IdentityModel.Tokens.Jwt**: 7 files
- **Microsoft.AspNetCore.Authentication.JwtBearer**: 1 file
- **Microsoft.AspNetCore.Authentication.OpenIdConnect**: 1 file
- **Microsoft.AspNetCore.Identity.EntityFrameworkCore**: 1 file

## Support (/)

### The base

- **[Microsoft.Extensions.Hosting](https://seerepo.com/uses/microsoftextensionshosting)**: 16 files
- **Microsoft.AspNetCore.StaticFiles**: 3 files

### Content

- **HtmlAgilityPack**: 11 files
- **CsvHelper**: 6 files
- **[YamlDotNet](https://seerepo.com/uses/yamldotnet)**: 5 files
- **Markdig**: 4 files
- **MailKit**: 1 file

### Testing

- **coverlet.collector**
- **Microsoft.NET.Test.Sdk**
- **xunit.assert**
- **xunit.runner.visualstudio**
- **NSubstitute**: 75 files
- **xunit**: 75 files
- **[Microsoft.Extensions.Logging.Abstractions](https://seerepo.com/uses/microsoftextensionsloggingabstractions)**: 6 files

### Deploy

- **Serilog.AspNetCore**
- **Serilog.Enrichers.Thread**
- **Serilog.Extensions.Hosting**
- **Serilog.Settings.Configuration**
- **Serilog.Sinks.Console**
- **Serilog.Sinks.File**
- **Serilog**: 8 files

### Tools

- **BenchmarkDotNet**
- **BenchmarkDotNet.Annotations**

### Other

- **DotNet.Glob**
- **Microsoft.Extensions.Configuration.Abstractions**
- **Newtonsoft.Json**
- **System.Drawing.Common**
- **AutoMapper.Extensions.Microsoft.DependencyInjection**: 57 files
- **SharpCompress**: 2 files
- **Microsoft.Extensions.FileProviders.Physical**: 1 file
- **Microsoft.IO.RecyclableMemoryStream**: 1 file
- **Polly**: 1 file
- **Swashbuckle.AspNetCore**: 1 file

## Frontend (UI/Web)

### The base

- **[Angular](https://seerepo.com/uses/angular)**: 585 files · [in UI/Web/package.json](https://github.com/Kareadita/Kavita/blob/a9cdf1cad9ae14f88a295c3a6fc7993f9823d59d/UI/Web/package.json)

### Styles

- **[Bootstrap](https://seerepo.com/uses/bootstrap)**: 1 file

### Interface

- **@ng-bootstrap/ng-bootstrap**: 123 files
- **@angular/cdk**: 6 files
- **[echarts](https://seerepo.com/uses/echarts)**: 4 files
- **@iplab/ngx-color-picker**: 2 files
- **ngx-infinite-scroll**: 1 file
- **quill**: 1 file
- **[screenfull](https://seerepo.com/uses/screenfull)**: 1 file
- **[Swiper](https://seerepo.com/uses/swiper)**: 1 file

## Support (UI/Web)

### Tools

- **jsonminify**: 1 file

### Other

- **rxjs**: 171 files
- **luxon**: 7 files
- **nosleep.js**: 2 files
- **@microsoft/signalr**: 1 file
- **file-saver**: 1 file

## Other repos with a similar stack

- [jellyfin/jellyfin](https://seerepo.com/r/jellyfin/jellyfin/built): ASP.NET Core, Microsoft.Data.Sqlite, Microsoft.EntityFrameworkCore.Sqlite, SQLite, Microsoft.EntityFrameworkCore.Design, Serilog.AspNetCore, Serilog.Enrichers.Thread, Serilog.Settings.Configuration, Serilog.Sinks.Console, Serilog.Sinks.File · [Compare](https://seerepo.com/compare/jellyfin/jellyfin/vs/Kareadita/Kavita)
- [dotnet/aspnetcore](https://seerepo.com/r/dotnet/aspnetcore/built): ASP.NET Core, Microsoft.EntityFrameworkCore.Sqlite, Microsoft.Extensions.Hosting, Microsoft.EntityFrameworkCore.Design, Microsoft.EntityFrameworkCore, System.IdentityModel.Tokens.Jwt, Serilog.Sinks.File · [Compare](https://seerepo.com/compare/dotnet/aspnetcore/vs/Kareadita/Kavita)
- [paperless-ngx/paperless-ngx](https://seerepo.com/r/paperless-ngx/paperless-ngx/built): Angular, Bootstrap, @ng-bootstrap/ng-bootstrap, @angular/cdk · [Compare](https://seerepo.com/compare/Kareadita/Kavita/vs/paperless-ngx/paperless-ngx)
- [microsoft/semantic-kernel](https://seerepo.com/r/microsoft/semantic-kernel/built): Microsoft.Extensions.Hosting, System.IdentityModel.Tokens.Jwt, YamlDotNet, Markdig · [Compare](https://seerepo.com/compare/Kareadita/Kavita/vs/microsoft/semantic-kernel)
- [CopilotKit/CopilotKit](https://seerepo.com/r/CopilotKit/CopilotKit/built): SQLite, Angular, @angular/cdk · [Compare](https://seerepo.com/compare/CopilotKit/CopilotKit/vs/Kareadita/Kavita)
- [langgenius/dify](https://seerepo.com/r/langgenius/dify/built): SQLite, echarts

## Frequently asked questions

### What language is Kavita written in?

Kavita is written in C#, with 278,372 written lines.

### What framework does Kavita use?

Kavita is built with ASP.NET Core, Microsoft.Extensions.Hosting, Microsoft.AspNetCore.StaticFiles, and Angular.

### What database does Kavita use?

Kavita stores its data in SQLite and reaches it with Microsoft.EntityFrameworkCore.Design and Microsoft.EntityFrameworkCore.

The proof: [Kavita.Services/DebugExport/ExportDatabaseScrubService.cs, line 24](https://github.com/Kareadita/Kavita/blob/a9cdf1cad9ae14f88a295c3a6fc7993f9823d59d/Kavita.Services/DebugExport/ExportDatabaseScrubService.cs#L24)

### What does Kavita sign people in with?

Kavita signs people in with Microsoft.Extensions.Identity.Stores, System.IdentityModel.Tokens.Jwt, Microsoft.AspNetCore.Authentication.JwtBearer, Microsoft.AspNetCore.Authentication.OpenIdConnect, and Microsoft.AspNetCore.Identity.EntityFrameworkCore.

### What services does Kavita use?

Kavita uses Microsoft.Data.Sqlite and Microsoft.EntityFrameworkCore.Sqlite.

### Does Kavita have tests?

Yes. Kavita has 175 test files and is tested with coverlet.collector, Microsoft.NET.Test.Sdk, xunit.assert, xunit.runner.visualstudio, NSubstitute, xunit, and Microsoft.Extensions.Logging.Abstractions.

### Which repos have a stack like Kavita's?

The ones that share most of its stack: jellyfin/jellyfin, dotnet/aspnetcore, and paperless-ngx/paperless-ngx.

## What is your repo built with?

Any public repo, with no account: https://seerepo.com/r/owner/repo/built, with the owner and name it has on GitHub.
