CL Civitas Library

Find the book hiding down the block.

A community-built map of mini libraries, photographed by neighbors and searchable by title, genre, or ZIP code. The public snapshot keeps original photos private while small derived icons make nearby books easier to discover.

Look for a book

Search the whole database, then use ZIP code or browser location to sort by distance.

Distance sorting works best with your ZIP code or browser location.

Zoomable community map

Markers are placed from photo GPS coordinates. Book libraries and other neighborhood exchange boxes use distinct marker styles by type.

Loading map...

Markers come from geolocated community-box records.

Found a mini library? Send or share two GPS-tagged photos.

Help grow the atlas by emailing photos of mini libraries you encounter to civitaslibrary@gmail.com. You can also share the photos with that same address from Google Photos.

1

Contents photo

Take a close-up photo of the bookshelf so the book titles on the spines or covers are readable.

2

Surroundings photo

Take a wider photo of the mini bookcase in its environment so neighbors can recognize and locate it.

3

GPS required

Make sure your photos include GPS/location metadata. Uploads without photo GPS are rejected so every shelf can be placed accurately.

Send by email: Attach both photos, keep location/GPS enabled, and include any visible Little Free Library charter number if you notice one. Send photos by email
Share from Google Photos: Select both photos in Google Photos, tap Share, and share them with civitaslibrary@gmail.com. Please leave location sharing/GPS metadata enabled. Open Google Photos

Developers

Build on top of the atlas

Civitas Library keeps the public snapshot photo-private while exposing a small read-only API and a searchable civic dataset for local tools, classroom projects, and neighborhood experiments.

Read-only API CSN identifiers OpenAPI schema

Feature list

What the platform already supports

  • Search books by title, author, topic, publisher, or ISBN across the shared atlas.
  • Rank results by ZIP centroid or latitude/longitude while keeping map markers tied to photo GPS.
  • Assign every mapped shelf a Civitas Library Serial Number, or CSN, based on database insertion order.
  • Preserve private original uploads while publishing only derived `144x144` shelf icons.
  • Store visible charter numbers and show official registry addresses when a charter match is verified.
  • Keep library records even when a shelf is temporarily empty, with active inventory tracked separately.
  • Publish a static Pages snapshot and a local web app from the same central SQLite atlas.

API reference

Public read endpoints

Local base URL: http://127.0.0.1:8000. Production deployments serve the same paths over HTTPS.

GET /api/v1/search
Search books and rank by `zip` or `lat`/`lon`. Useful query params: `q`, `category`, `radius_miles`, and `limit`.
GET /api/v1/libraries
List mapped shelves with CSNs, descriptions, location labels, marker coordinates, charter metadata, icons, and sample books.
GET /api/v1/libraries/{id}
Fetch one library plus its active books for a detail view or lightweight client cache.
GET /api/v1/openapi.json
Download the machine-readable schema for typed clients, docs tooling, or contract checks.
Fair-use defaults

The public API defaults to 60 requests per 60 seconds per client IP and returns HTTP 429 with rate-limit headers when callers need to back off.

Dated notes

A few Words from the Site Builder:

Short project notes, release reflections, and invitations for neighbors who want to help make the atlas better.

Welcome to Civitas Library

This atlas is a small civic experiment: neighbors photograph mini libraries, the project turns those photos into searchable book and shelf records, and readers get a better chance of finding something nearby that sparks curiosity. If you find a library we missed, notice a book record that should be improved, or have an idea for the site, please contribute or send feedback to civitaslibrary@gmail.com.