Skip to content
Library

Library

Library (hereinafter the “Application”) is Naomi’s personal library tracking application for cataloguing and engaging with media collections.

The live instance is available at https://library.spellware.dev.

The application is presented as Naomi’s curated collection of media and includes books, games, music, shows, manga, and art.

Core user-facing capabilities include:

  1. Browsing library entries by media type.
  2. Engaging with content through comments and likes.
  3. Submitting suggestions for new additions.
  4. Viewing activity and leaderboard-style participation features.

The project is an Nx monorepo with a frontend app and a Fastify API.

Runtime and build scripts are managed from the repository root:

  1. pnpm dev builds and runs the production-style API process with development environment values.
  2. pnpm build generates Prisma client artifacts and builds all projects.
  3. pnpm test runs configured test targets across the workspace.
  4. pnpm lint runs lint targets across the workspace.

Architecture notes:

  1. API routes are mounted under /api via autoloaded Fastify route modules.
  2. The API includes dedicated modules for books, games, music, shows, manga, art, suggestions, comments, likes, leaderboard, activity, and users.
  3. Security middleware and plugins include CSRF protection, rate limiting, CORS, helmet, and auth-related plugins.
  4. Database access is managed with Prisma.

Project policy files reference global documentation:

  1. License: https://docs.spellware.dev/#/license
  2. Terms: https://docs.spellware.dev/#/terms
  3. Privacy: https://docs.spellware.dev/#/privacy
  4. Security: https://docs.spellware.dev/#/security

Copyright is held by Naomi Carrigan.

Contributions are accepted through pull requests according to the repository’s contributing guidelines and code of conduct.

Before opening a pull request:

  1. Install dependencies with pnpm install.
  2. Run pnpm lint.
  3. Run pnpm test.
  4. Run pnpm build.