shelftxt logo

shelftxt

Open-source FastAPI recommendation engine for books • backend architecture • data handling • scalable systems

Open Source YesPython 3.xFastAPI backend
Website GitHub

What is it?

What it is

Shelftxt is an open-source multi-user recommendation system for organizing and ranking personal TBR libraries. It combines Supabase authentication, PostgreSQL-backed user-owned book storage, and transparent recommendation logic.

Why it exists

Open-source FastAPI recommendation engine for books • backend architecture • data handling • scalable systems

Who should use it

Teams building with Python who want an open-source, self-hosted option.

Who should avoid it

Teams that need a fully managed SaaS with enterprise SLAs out of the box.

How it works

A quick walkthrough in plain English

How shelftxt handles a request

Step 1 of 4

Your app sends a request

A user action or another service calls the API.

Features

**Supabase authentication** — email/password registration, login, persisted browser sessions, logout
**TBR ranking** — GET /recommend scores the signed-in user's to-read list from their read-history author preferences
**CSV import** — bulk add via POST /books/import; duplicates skipped within the current user's PostgreSQL library
**Batch ingest pipeline** — map external exports to a canonical schema (pipeline docs)
**CLI** — python -m cli.manage_books for local shelf edits

Advantages

  • Open source (MIT)
  • Active Python ecosystem
  • Self-hosted deployment options

Disadvantages

  • Requires operational ownership for self-hosted setups
  • Community support varies by project maturity

Installation

compose

- API: http://127.0.0.1:8000  
- Swagger: http://127.0.0.1:8000/docs  

Run commands from the **repo root** so `backend` resolves as a package.

#### Prerequisites

- Python 3
- Docker and Docker Compose
- Local PostgreSQL through `docker compose`

#### Environment

Copy the example environment file, then adjust values if your local database differs:

FAQ

What is shelftxt?

shelftxt is an open-source project licensed under MIT.

What language is shelftxt built with?

Primary language: Python.

Is it free to use?

Yes. Licensed under MIT. Check the license for commercial use.

Loading documentation…
View on GitHub

Featured in Videos

YouTube tutorials and walkthroughs for shelftxt

Alternatives

Similar projects ranked by category, topics, and text overlap.

Compare
shelftxt | MushyBook