📚 Reading Notes is a free and open source web application for maintaining your Kindle Highlights.
Features:
- Upload and search through your clippings
- Filter clippings by books
- E-Mail delivery of a random quote (daily, bi-weekly, weekly)
- Exclude specific books from email delivery
- Nerdy statistics about your clippings
- Page with a random quote (can be used as new-tab page or on wall-mounted screens).
Feel free to open issues or PRs! This is a pretty simple django application with a good'ol HTML frontend generated by django. It's hosted on Divio.
- Copy environment file:
cp .env-local.example .env-local - Build the web image:
docker compose build web - Start the database:
docker compose up -d database_default - Wait for PostgreSQL:
docker compose exec -T database_default sh -c 'until pg_isready -U postgres -d db; do sleep 1; done' - Run migrations:
docker compose run --rm web python manage.py migrate - Create superuser:
docker compose run --rm web python manage.py createsuperuser - Start the server:
docker compose up web - Configure Django CMS apphook (see below)
If you started web before running migrations and see relation "django_site" does not exist, run the migration command above and restart web.
After starting the server, you need to configure the Django CMS apphook for the app to work:
- Go to
http://localhost:8000/admin/and log in with your superuser account - Navigate to CMS → Pages
- Click "New Page" and give it a title (e.g., "Reading Notes")
- Save the page, then click on "Advanced settings"
- In the APPLICATION dropdown, select "Clipping Manager Application"
- Set APPLICATION INSTANCE NAME to
clipping_manager - Save and Publish the page
- The app is now accessible at the page URL (e.g.,
/en/reading-notes/)
- manage.py commands can be executed as follows:
docker compose run --rm web python manage.py migrate - Optionally configure the
EMAIL_URLenvironment variable when you want to send mails
- Integrate with more services than just Kindle
- Restful API for retrieving ones notes
- Export in various formats
- Slack Bot
