Keiyomi
//The next generation of light novel tracking. Dive into a vast library, track, review, and connect with fellow enthusiasts.
Keiyomi: The Next Generation of Light Novel Tracking
Keiyomi is a comprehensive platform designed to help users dive into a vast library of light novels. Built to be more than just a reading tool, it serves as a central hub for enthusiasts to track their progress, review their favorite series, and connect with a dedicated community.
Core Features
- Vast Library: Explore and track hundres of light novels across various genres and categories.
- Community Hub: Engage in discussions, share thoughts, and connect with other light novel enthusiasts.
- Rate & Review: Leave detailed reviews, rate series, and help others discover their next favorite read.
- Smart Recommendations: Get personalized, curated suggestions tailored specifically to your reading history and interests.
The Architecture
Under the hood, Keiyomi is powered by a bleeding-edge, full-stack TypeScript ecosystem designed for maximum performance and developer velocity.
- Frontend: SvelteKit 5 provides the reactivity and server-side rendering required for instant page loads.
- Backend: Built on Bun and ElysiaJS, the API handles thousands of simultaneous requests with sub-millisecond latency.
- Database: PostgreSQL paired with Drizzle ORM ensures type-safe schema management and lightning-fast complex queries for content filtering and user libraries.
const app = new Elysia({ prefix: '/api' })
.use(
openapi({
documentation: {
info: {
title: 'Keiyomi API Documentation',
version: '1.0.0'
},
tags: [{ name: 'Series', description: 'Series endpoints' }],
// eslint-disable-next-line @typescript-eslint/no-explicit-any
components: (await OpenAPI.getComponents()) as any,
// eslint-disable-next-line @typescript-eslint/no-explicit-any
paths: (await OpenAPI.getPaths()) as any
}
})
)
.use(betterAuth)
.use(seriesRoute)
.use(profileRoute)
.use(libraryRoute)
.use(reviewsRoute)
.use(recommendationsRoute)
.use(reportsRoute)
.use(activitiesRoute)
.use(statsRoute)
.get('/', () => 'ok')
.post('/', ({ body }) => body, {
body: t.Object({
name: t.String()
})
});
export type App = typeof app;Design Philosophy
The application’s interface is built on standard Tailwind CSS and shadcn-svelte, adhering to a strict “content-first” methodology.
“Keiyomi proves that utility-first web applications can be blazing fast and visually striking, ensuring the reading experience always takes precedence.”