Library
Library (hereinafter the “Application”) is Naomi’s personal library tracking application for cataloguing and engaging with media collections.
1. User Documentation
Section titled “1. User Documentation”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:
- Browsing library entries by media type.
- Engaging with content through comments and likes.
- Submitting suggestions for new additions.
- Viewing activity and leaderboard-style participation features.
2. Technical Documentation
Section titled “2. Technical Documentation”The project is an Nx monorepo with a frontend app and a Fastify API.
Runtime and build scripts are managed from the repository root:
pnpm devbuilds and runs the production-style API process with development environment values.pnpm buildgenerates Prisma client artifacts and builds all projects.pnpm testruns configured test targets across the workspace.pnpm lintruns lint targets across the workspace.
Architecture notes:
- API routes are mounted under
/apivia autoloaded Fastify route modules. - The API includes dedicated modules for
books,games,music,shows,manga,art,suggestions,comments,likes,leaderboard,activity, andusers. - Security middleware and plugins include CSRF protection, rate limiting, CORS, helmet, and auth-related plugins.
- Database access is managed with Prisma.
3. Legal Documentation
Section titled “3. Legal Documentation”Project policy files reference global documentation:
- License:
https://docs.spellware.dev/#/license - Terms:
https://docs.spellware.dev/#/terms - Privacy:
https://docs.spellware.dev/#/privacy - Security:
https://docs.spellware.dev/#/security
Copyright is held by Naomi Carrigan.
4. Contributing Documentation
Section titled “4. Contributing Documentation”Contributions are accepted through pull requests according to the repository’s contributing guidelines and code of conduct.
Before opening a pull request:
- Install dependencies with
pnpm install. - Run
pnpm lint. - Run
pnpm test. - Run
pnpm build.