Digitales LesenWeb · Android · iOSV1.0Erscheint am · Herbst 2027

Describe

Fast 80.000 kostenlose Bücher, im Streaming zu lesen.

Describe öffnet die gemeinfreie Bibliothek von Project Gutenberg: Romane, Lyrik, Philosophie, Wissenschaft – auf Französisch, Englisch und in Dutzenden weiteren Sprachen. Sie öffnen ein Buch und lesen es Seite für Seite, ohne etwas herunterzuladen, im Web, auf Android und iOS; die Lektüre geht dort weiter, wo Sie aufgehört haben, auf all Ihren Geräten.

KostenlosWeb, Android und iOSSynchronisiertes Lesen
Describe auf dem Computer: die Startseite mit ihrer Bibliothek
Describe auf dem Smartphone: eine Seite beim Lesen
Echte Screenshots der App

Das Konzept

Eine ganze Bibliothek, in der Hosentasche

Die großen gemeinfreien Texte sind frei zugänglich, aber oft schlecht aufbereitet. Describe vereint sie in einer einzigen durchdachten App – schnell und angenehm zu lesen.

Ein riesiger Katalog

Fast 80.000 gemeinfreie Werke, täglich aktualisiert aus dem offiziellen Katalog von Project Gutenberg.

Lesen im Streaming

Nichts herunterladen: Nur die angezeigte Seite wird geladen, die nächste ist bereits vorgeladen.

Weiterlesen, wo man aufgehört hat

Ohne Konto bleibt der Lesefortschritt auf dem Gerät; mit Konto wird er zwischen Web, Android und iOS synchronisiert.

In Bildern

Die App, so wie sie ist

Der Katalog: 78.423 Bücher, Suche, Sprachfilter und Themen
Der vollständige Katalog
Die Detailseite zu Candide von Voltaire: Zusammenfassung, Themen, „Kostenlos lesen“ und „Meine Bibliothek“
Die Detailseite eines Buches
Der Reader im Vollbild: Candide, Kapitel II, Seite 9 von 104
Der Reader
Der Reader im Sepia-Design mit seinen Einstellungen: Textgröße, Designs, Schriftart
Sepia-Design und Einstellungen
Das geöffnete Inhaltsverzeichnis, aktuelles Kapitel hervorgehoben
Das Inhaltsverzeichnis
Meine Bibliothek: Lesestatistiken und aktuelle Lektüren mit ihrem Fortschritt
Meine Bibliothek
Suchergebnisse für „victor hugo“, gefiltert auf Französisch
Die Suche
Die Regale der Startseite: französische Klassiker und große englischsprachige Werke
Die Regale der Startseite
  • Die Startseite von Describe auf dem Smartphone
    Startseite
  • Suchergebnisse auf dem Smartphone, zweispaltig
    Suche
  • Die Detailseite zu Candide auf dem Smartphone
    Buchdetails
  • Der Reader auf dem Smartphone, Seite 9 von 104
    Lesen

Der Reader

Gemacht für langes Lesen, ohne zu ermüden

Vollbild, Typografie für langes Lesen, Seiten, die sich auf dem Smartphone in 3D um den Buchrücken drehen: Das Buch steht im Mittelpunkt, die Oberfläche tritt zurück.

  • Drei LesestimmungenHell, Sepia oder Nacht; Text von 14 bis 32 Pixel, Serifenschrift (Literata) oder serifenlos.
  • Seiten, die sich umblätternAuf dem Smartphone dreht sich die Seite in 3D um den Buchrücken, wie bei einem echten Buch.
  • InhaltsverzeichnisJedes Kapitel beginnt auf einer neuen Seite; mit einer Geste springen Sie von Kapitel zu Kapitel.
  • Auch per TastaturPfeiltasten links und rechts zum Umblättern; die Position wird automatisch gespeichert.

Funktionen

Finden, lesen und dort weitermachen, wo man aufgehört hat

Sofortsuche

Mehrere Wörter, unabhängig von Akzenten, im gesamten Katalog.

Sprachen und Themen

Sieben Lesesprachen und zehn Themen (Romane, Lyrik, Theater, Krimi …); der Katalogzustand bleibt in der Adresse und lässt sich leicht teilen.

Ausführliche Detailseiten

Autoren, Themen, Zusammenfassung und Zahl der jüngsten Lektüren – für die Wahl vor dem Öffnen.

Meine Bibliothek

Begonnene Bücher landen dort automatisch, mit der Seite, an der Sie aufgehört haben, und Ihren Lesestatistiken.

Konto optional

Lesen geht ohne Konto; mit einem Konto finden Sie Ihre Bibliothek überall wieder.

Native Apps

Android und iOS teilen ihren gesamten Code dank Kotlin Multiplatform.

Rotunde in 3D

Die Startseite der Website ist eine Bibliothek in Three.js, die man beim Scrollen durchquert.

Schnell

Lokaler Katalog, zwischengespeicherte Seiten, Vorladen der nächsten Seite.

Technologien & Architektur

Unter der Haube von Describe

Eine Kotlin-API (Ktor) mit hexagonaler Architektur, abgesichert durch den Compiler: Jede Schicht ist ein eigenes Gradle-Modul, und die Domäne kann weder Ktor noch die Datenbank noch einen HTTP-Client importieren. Der API-Vertrag ist ein Kotlin-Multiplatform-Modul, das Server sowie Android- und iOS-Apps gemeinsam nutzen.

ArchitekturdiagrammProduktkernDatenfluss
  1. 01

    Anwendungen

    • WebAngular, Tailwind CSS 4, Bibliotheksrotunde in Three.js, gesteuert von GSAP
    • Android + iOSKotlin Multiplatform und Compose Multiplatform, der gesamte Code geteilt
    • coreKotlin-API-Vertrag, kompiliert für Server und Mobile
  2. 02

    Describe-API

    Ktor · /api/v1

    • HTTP-PräsentationRouten, JWT, Fehler, Composition Root
    • AnwendungKatalog, Lesen, Konten, Bibliothek, Synchronisierung
    • DomäneModelle, Ports, Seitenaufteilung, ohne technische Abhängigkeit
  3. 03

    Infrastruktur

    • PostgreSQL / H2Lokaler Katalog, Konten, Bibliotheken, Lesefortschritt
    • Project GutenbergTägliche CSV (78.000 Bücher in ~25 s) und Texte, zwischengespeichert
    • GutendexZusammenfassungen und Beliebtheit, im Hintergrund

Der Weg einer gelesenen Seite

  1. 1Der Reader fragt /books/{id}/manifest ab: Seitenzahl und Inhaltsverzeichnis.
  2. 2Er lädt die angezeigte Seite über /books/{id}/pages/{n} und lädt die nächste vor.
  3. 3Beim ersten Zugriff lädt der Server den Text ein einziges Mal von Gutenberg herunter und speichert ihn auf der Festplatte zwischen.
  4. 4Der Text wird in Seiten von rund 2.500 Zeichen aufgeteilt; jedes Kapitel beginnt auf einer neuen Seite.
  5. 5Die Position wird gespeichert: auf dem Gerät für Gäste, auf dem Server für angemeldete Konten.

Die Architekturentscheidungen

  • Hexagonal, vom Compiler geprüftEine Schicht pro Gradle-Modul: Wer Ktor oder die Datenbank in die Domäne importiert, lässt den Build scheitern.
  • Ein lokaler KatalogGutendex antwortete in 40 bis 70 s: Der offizielle Katalog wird importiert und täglich neu synchronisiert, die Suche läuft lokal und sofort.
  • Seitenweises StreamingNur die angezeigte Seite wird übertragen; die Seiten werden vom Browser zwischengespeichert, der Rohtext wird per Byte-Ranges ausgeliefert.
  • Sicherheit by DesignBCrypt-Passwörter, signiertes JWT, Gutenberg-Adressen aus der ID gebildet (kein SSRF), begrenzte Textgröße.

Alle Technologien, nach Kategorie

Backend

  • Kotlin 2.4
  • Ktor 3.6 (Netty)
  • Exposed 1.6
  • Flyway 13
  • HikariCP 7
  • kotlinx.serialization
  • Coroutines
  • JVM 21

Frontend

  • Angular 22
  • TypeScript 6
  • Tailwind CSS 4.3
  • GSAP 3.15 + ScrollTrigger
  • Three.js
  • Signals
  • Zoneless

Mobile

  • Kotlin Multiplatform
  • Compose Multiplatform 1.12
  • Material 3
  • Ktor Client
  • Coil 3
  • Android
  • iOS

Daten & Speicher

  • PostgreSQL 17
  • H2
  • Festplatten-Cache für Texte
  • LRU-Cache für Seiten

Zahlungen & Drittdienste

  • Project Gutenberg
  • Gutendex
  • Apache Commons CSV

Authentifizierung & Sicherheit

  • BCrypt
  • JWT (HS256)
  • SSRF-Schutz
  • CORS

Qualität & Tools

  • JUnit / kotlin-test
  • Ktor test host
  • Vitest
  • Prettier
  • Testpyramide

DevOps & CI/CD

  • Docker
  • Docker Compose
  • Nginx
  • Gradle 9

Monitoring

  • /api/v1/health
  • Docker healthchecks
  • Logback

Bestandsaufnahme aus dem Quellcode und der Konfiguration des Produkts.

Häufige Fragen

Alles über Describe

Ja. Die Bücher stammen von Project Gutenberg und sind gemeinfrei; Sie lesen sie frei, ohne Abonnement.

Eine Lese-App für Ihre Leserinnen und Leser?

Bibliothek, Verlag, Schule oder Medienhaus: Describe zeigt, was unser Team mit einem Katalog, Content-Streaming und plattformübergreifenden Apps leisten kann. Erzählen Sie uns von Ihrem Projekt.