Convert Figma logo to code with AI

Kareadita logoKavita

Kavita is a fast, feature rich, cross platform reading server. Built with the goal of being a full solution for all your reading needs. Setup your own server and share your reading collection with your friends and family.

5,893
300
5,893
149

Top Related Projects

3,846

Media server for comics/mangas/BDs/magazines/eBooks with API, OPDS and Kobo Sync support

Self hosted Spotify tracking dashboard

A rewrite of Tachiyomi for the Desktop

Quick Overview

Kavita is an open-source, cross-platform digital library manager for comics, manga, books, and magazines. It offers a user-friendly web interface for organizing and reading various digital media formats, supporting multiple users and devices.

Pros

  • Supports a wide range of file formats, including CBZ, CBR, PDF, EPUB, and more
  • Features a responsive web interface accessible from any device
  • Offers advanced metadata management and customizable reading experience
  • Provides user management with role-based access control

Cons

  • Requires self-hosting, which may be challenging for less tech-savvy users
  • Limited integration with external services compared to some commercial alternatives
  • May have performance issues with very large libraries on lower-end hardware
  • Still in active development, so some features may be unstable or incomplete

Getting Started

To get started with Kavita:

  1. Download the latest release for your platform from the GitHub releases page.
  2. Extract the downloaded archive to a suitable location.
  3. Run the Kavita executable (e.g., Kavita.exe on Windows).
  4. Access the web interface by navigating to http://localhost:5000 in your browser.
  5. Follow the setup wizard to create an admin account and configure your library.
# Example Docker installation (if Docker is installed)
docker run -d \
  --name kavita \
  -p 5000:5000 \
  -v /path/to/your/books:/books \
  -v /path/to/your/config:/config \
  --restart unless-stopped \
  kizaing/kavita:latest

After installation, add your media files to the configured library folders and scan your library through the web interface to start using Kavita.

Competitor Comparisons

3,846

Media server for comics/mangas/BDs/magazines/eBooks with API, OPDS and Kobo Sync support

Pros of Komga

  • Built with Spring Boot, offering robust backend architecture and scalability
  • Supports OPDS protocol for remote access and syncing with e-readers
  • Provides a more extensive API for third-party integrations

Cons of Komga

  • Less focus on manga-specific features compared to Kavita
  • User interface may be less intuitive for some users
  • Slower development pace and smaller community compared to Kavita

Code Comparison

Kavita (TypeScript):

export class BookService {
  async getBooks(libraryId: number): Promise<Book[]> {
    return this.bookRepository.findByLibraryId(libraryId);
  }
}

Komga (Kotlin):

@Service
class BookService(private val bookRepository: BookRepository) {
  fun getBooks(libraryId: Long): List<Book> {
    return bookRepository.findByLibraryId(libraryId)
  }
}

Both projects use similar service-based architectures, but Kavita is built with TypeScript and Angular, while Komga uses Kotlin and Spring Boot. This difference in tech stack influences the overall structure and performance characteristics of each application.

Self hosted Spotify tracking dashboard

Pros of your_spotify

  • Focuses specifically on Spotify data analysis and visualization
  • Provides a personal music dashboard with detailed listening statistics
  • Offers a modern, responsive web interface for easy access

Cons of your_spotify

  • Limited to Spotify data only, not a general-purpose media server
  • Requires Spotify account and API access for functionality
  • Less comprehensive in terms of media management features

Code Comparison

your_spotify (JavaScript):

const getTopTracks = async (time_range) => {
  const response = await spotifyApi.getMyTopTracks({ time_range, limit: 50 });
  return response.items;
};

Kavita (C#):

public async Task<IEnumerable<SeriesDto>> GetSeriesDtoForLibraryIdAsync(int libraryId, UserParams userParams)
{
    return await _unitOfWork.SeriesRepository.GetSeriesDtoForLibraryIdAsync(libraryId, userParams);
}

Summary

your_spotify is a specialized tool for Spotify users to analyze their listening habits, while Kavita is a more comprehensive digital library manager for various media types. your_spotify offers a focused, user-friendly experience for music enthusiasts, but lacks the broader media management capabilities of Kavita. The code snippets highlight the different focus areas, with your_spotify dealing with Spotify API interactions and Kavita handling general media library operations.

A rewrite of Tachiyomi for the Desktop

Pros of Suwayomi-Server

  • Specifically designed for manga and comic reading
  • Supports multiple sources for manga/comic downloads
  • Lightweight and can run on low-end devices

Cons of Suwayomi-Server

  • Limited file format support (mainly focuses on image-based content)
  • Less comprehensive metadata management
  • Narrower scope of features compared to Kavita's broader media library approach

Code Comparison

Kavita (C#):

public async Task<bool> DirectoryContainsFile(string path, string fileName)
{
    return await _directoryService.GetFiles(path).AnyAsync(file => 
        file.Name.Equals(fileName, StringComparison.InvariantCultureIgnoreCase));
}

Suwayomi-Server (Kotlin):

suspend fun getChapterContent(chapterId: Long): List<String> = withContext(Dispatchers.IO) {
    val chapter = getChapter(chapterId)
    return@withContext chapter.getContent()
}

The code snippets show different approaches to file handling and content retrieval. Kavita's example demonstrates file checking within directories, while Suwayomi-Server's code focuses on retrieving chapter content, reflecting their respective focuses on general media management and manga-specific functionality.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

# Kavita

new_github_preview_stills

Kavita is a fast, feature rich, cross platform reading server. Built with a focus for being a full solution for all your reading needs. Setup your own server and share your reading collection with your friends and family!

Release License Downloads Docker Pulls Maintainability Rating Security Rating Backers on Open Collective Sponsors on Open Collective Translation status

What Kavita Provides

  • Serve up Manga/Webtoons/Comics (cbr, cbz, zip/rar/rar5, 7zip, raw images) and Books (epub, pdf)
  • First class responsive readers that work great on any device (phone, tablet, desktop)
  • Dark mode and customizable theming support
  • External metadata integration and scrobbling for read status, ratings, and reviews (available via Kavita+)
  • Rich Metadata support with filtering and searching
  • Ways to group reading material: Collections, Reading Lists (CBL Import), Want to Read
  • Ability to manage users with rich Role-based management for age restrictions, abilities within the app, etc
  • Rich web readers supporting webtoon, continuous reading mode (continue without leaving the reader), virtual pages (epub), etc
  • Full Localization Support
  • Ability to customize your dashboard and side nav with smart filters, custom order and visibility toggles.

Support

Discord GitHub - Bugs Only

Demo

If you want to try out Kavita, a demo is available: https://demo.kavitareader.com/

Username: demouser
Password: Demouser64

Setup

The easiest way to get started is to visit our Wiki which has up-to-date information on a variety of install methods and platforms. https://wiki.kavitareader.com/installation/getting-started

Feature Requests

Got a great idea? Throw it up on Discussions or vote on another idea. Please check the Project Board first for a list of planned features before you submit an idea.

Notice

Kavita is being actively developed and should be considered beta software until the 1.0 release. Kavita may be subject to changes in how the platform functions as it is being built out toward the vision. You may lose data and have to restart. The Kavita team strives to avoid any data loss.

Donate

If you like Kavita, have gotten good use out of it, or feel like you want to say thanks with a few bucks, feel free to donate. Money will go towards expenses related to Kavita. Back us through OpenCollective. You can also use Paypal, however your name will not show below. Kavita+ is also an option which provides funding and you get a benefit.

Kavita+

Kavita+ is a paid subscription that offers premium features that otherwise wouldn't be feasible to include in Kavita. It is ran and operated by majora2007, the creator and developer of Kavita.

If you are interested, you can use the promo code FIRSTTIME for your initial signup for a 50% discount on the first month (2$). This can be thought of as donating to Kavita's development and getting some sweet features out of it.

If you already contribute via OpenCollective, please reach out to majora2007 for a provisioned license.

Localization

Thank you to Weblate who hosts our localization infrastructure pro-bono. If you want to see Kavita in your language, please help us localize.

Translation status

PikaPods

If you are looking to try your hand at self-hosting but lack the machine, PikaPods is a great service that allows you to easily spin up a server. 20% of app revenues are contributed back to Kavita via OpenCollective.

Contributors

This project exists thanks to all the people who contribute and downstream library maintainers. Contribute.

Backers

Thank you to all our backers! 🙏 Become a backer

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. Become a sponsor

Mega Sponsors

JetBrains

Thank you to JetBrains for providing us with free licenses to their great tools.

License