Skip to content

About

A personal knowledge companion for serious readers — collect, organise and action insights from books, blogs and podcasts.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

390 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Open Citadel

A personal knowledge companion for serious readers. Open Citadel helps you collect, organise, and action the insights, highlights, and thoughts that come from the books, blogs, and podcasts you consume — so nothing valuable gets lost.

Built with Expo / React Native. Android-first, iOS coming.


What it does

Most reading apps stop at reading. Open Citadel treats the reader as a starting point, not an end point. Every highlight, bookmark, and stray thought you capture while reading feeds into a unified timeline — your personal knowledge base, organised by date and tagged however you like.

Core features

Library

  • Sync your EPUB library from a local folder on your device (Android Storage Access Framework)
  • Automatic metadata enrichment — title, author, cover pulled from the book file
  • Organise books into collections, mark favourites, archive finished reads
  • Queue and reading progress tracked per book

Reader

  • Full EPUB reader powered by the Readium toolkit
  • Dark, light, and sepia themes; custom font size and margins
  • Highlight text with colour-coded highlights
  • Bookmark pages
  • Table of contents navigation
  • Text-to-Speech — listen to any book with a single tap, follows your reading position

Timeline

  • A chronological feed of everything you capture: highlights, bookmarks, and your own thoughts
  • Add freeform thoughts at any time, tag them, link them back to a book
  • Filter by date with a calendar picker
  • Edit or delete any entry

Samwell — AI Reading Companion

  • On-device LLM powered by React Native ExecuTorch (offline & private)
  • Samwell persona injected at the system level — he knows he's a reading companion
  • Pick from a curated list of on-device brains (Gemma 4 E2B, Qwen, LFM, SmolLM2, Hammer) and download it inside the app
  • Start a chat from any highlight in the reader — context is carried into the conversation
  • Attach a book to a chat session for passage-level context
  • Model lifecycle controls: Wake Up / Power Down, status indicator in the chat header

Settings

  • Choose your EPUB library folder
  • Reader appearance preferences (theme, font, size, margins)
  • Samwell AI section: brain picker, offline vs cloud mode

Tech stack

Layer Choice
Framework Expo 55 / React Native 0.83
Navigation Expo Router (file-based)
Database Expo SQLite + Drizzle ORM
State Zustand
Reader @dr33m/react-native-readium (Readium fork)
TTS Readium Navigator Media TTS (Android platform TextToSpeech)
Sync Custom SAF-based sync coordinator

Getting started

Prerequisites

  • Node 20+
  • pnpm 10+
  • Android: JDK 17, Android SDK with compileSdkVersion >= 31
  • iOS: Xcode 16.2+, iOS deployment target >= 13.4

Install

pnpm install

Start dev server

npx expo start --tunnel --clear

Local development build

eas build --platform android --local --profile development

EAS build (cloud)

# Preview APK
eas build --profile preview --platform android

# Production
eas build --profile production --platform android

Project structure

src/
  app/              # Expo Router screens
    (tabs)/         # Tab navigator: Timeline, Library, Settings
    reader/[id]     # Full-screen reader
    collection/[id] # Collection detail
    section/[type]  # Library section views (queue, favourites, archived)
  components/
    library/        # Library UI components
    reader/         # Reader UI (header, TTS controls, selection bar, highlights)
    timeline/       # Timeline entries and thought sheet
    ui/             # Shared primitives
  db/               # Drizzle schema and migrations
  services/         # Sync pipeline (SAF scan → metadata → DB)
  stores/           # Zustand stores (books, collections, reader, timeline, settings)
  constants/        # Theme tokens

Roadmap

v1 — Books (complete)

  • EPUB library sync from device folder
  • Full Readium-powered reader
  • Highlights with colour coding
  • Bookmarks
  • Text-to-Speech
  • Thoughts — capture and tag freeform notes linked to books
  • Collections and library organisation

v2 — AI Companion & Sharing (in progress)

  • On-device LLM via React Native ExecuTorch — offline and private
  • Samwell persona — system prompt gives him identity as your reading companion
  • Curated on-device brains — pick one, download it, all in-app
  • Highlight-to-chat — start a conversation from any reader selection with full context
  • Book context — attach a book to a session so Samwell can reference it
  • Export as image — share highlights and thoughts as styled PNG cards with book cover, notes, and Open Citadel branding (dark & light theme)
  • Tool calling — let Samwell query your local database to pull in your highlights, thoughts, and notes, and read relevant passages from books in your library, so his answers are grounded in your actual reading

v3 — Podcasts

  • Add podcast feeds (RSS)
  • In-app player with chapter support
  • Capture timestamped highlights while listening
  • Thoughts and highlights flow into the same timeline

v4 — Blogs

  • Add articles by URL or RSS feed
  • Distraction-free reader view
  • Highlights and thoughts sync to timeline
  • Archive for offline reading

License

Copyright (C) 2026 Thamsanqa Ncube

Open Citadel is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. See LICENSE for the full text.

About

A personal knowledge companion for serious readers — collect, organise and action insights from books, blogs and podcasts.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages