Readeck vs Wallabag: Read-Later Apps Compared

Quick Verdict

Unlike Wallabag — which has been the default self-hosted Pocket alternative since 2013 — Readeck takes a different approach: a single Go binary with SQLite, EPUB export, and OPDS feeds for e-readers. For personal read-later with e-reader integration, Readeck is lighter and simpler. For teams, mobile apps, and a mature ecosystem with importers and browser extensions, Wallabag is the established choice.

Overview

Readeck is a Go-based read-later app that saves web articles as immutable ZIP files containing text, images, and metadata. It runs as a single binary with embedded SQLite — no external database, no Redis, no PHP stack. Readeck launched in 2023 and reached feature stability quickly: full-text search, labels, collections, highlights, EPUB export, and OPDS feeds for e-reader apps. Official site.

Wallabag is a PHP/Symfony application that has been the go-to self-hosted read-later tool since 2013. It stores articles in PostgreSQL or MySQL, offers native Android and iOS apps, supports Pocket/Instapaper import, and integrates with RSS readers and e-readers via email. The Docker deployment requires three containers (app, database, Redis). Official site.

Feature Comparison

FeatureReadeckWallabag
LanguageGoPHP (Symfony)
DatabaseSQLite (embedded)PostgreSQL or MySQL (external)
Containers required13 (app + database + Redis)
Native mobile appsNo (PWA only)Yes (Android + iOS)
Browser extensionsFirefox, ChromeFirefox, Chrome
EPUB exportBuilt-inVia email to Kindle/Kobo
OPDS feedBuilt-inNo
Full-text searchYesYes
HighlightsYesNo (annotations via third-party)
TaggingLabels + collectionsTags + tagging rules
Multi-userYesYes
APIREST APIREST API (OAuth2)
Pocket/Instapaper importPocket HTML, Wallabag JSONPocket, Instapaper, Pinboard, Firefox, Chrome
RSS feed outputNoYes (per-user RSS feeds)
Content storageImmutable ZIP per articleDatabase rows + image files
LicenseAGPL-3.0MIT

Installation Complexity

Readeck deploys as a single container:

services:
  readeck:
    image: codeberg.org/readeck/readeck:0.22.2
    restart: unless-stopped
    ports:
      - "8000:8000"
    volumes:
      - readeck-data:/readeck
    environment:
      - READECK_SERVER_HOST=0.0.0.0
      - READECK_SERVER_PORT=8000
    healthcheck:
      test: ["CMD", "readeck", "healthcheck"]
      interval: 30s
      timeout: 10s
      retries: 3

volumes:
  readeck-data:

One container, one volume, two environment variables. First user becomes admin.

Wallabag needs three containers:

services:
  wallabag:
    image: wallabag/wallabag:2.6.14
    restart: unless-stopped
    ports:
      - "8080:80"
    environment:
      SYMFONY__ENV__DATABASE_DRIVER: "pdo_pgsql"
      SYMFONY__ENV__DATABASE_HOST: "wallabag_db"
      SYMFONY__ENV__DATABASE_PORT: "5432"
      SYMFONY__ENV__DATABASE_NAME: "wallabag"
      SYMFONY__ENV__DATABASE_USER: "wallabag"
      SYMFONY__ENV__DATABASE_PASSWORD: "change_this_password"
      SYMFONY__ENV__DOMAIN_NAME: "http://localhost:8080"
      SYMFONY__ENV__SECRET: "change_this_to_random_string"
      SYMFONY__ENV__FOSUSER_REGISTRATION: "false"
    volumes:
      - wallabag_images:/var/www/wallabag/web/assets/images
      - wallabag_data:/var/www/wallabag/data
    depends_on:
      wallabag_db:
        condition: service_healthy
      wallabag_redis:
        condition: service_healthy

  wallabag_db:
    image: postgres:16-alpine
    restart: unless-stopped
    environment:
      POSTGRES_USER: wallabag
      POSTGRES_PASSWORD: change_this_password
      POSTGRES_DB: wallabag
    volumes:
      - wallabag_pgdata:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U wallabag"]
      interval: 10s
      timeout: 5s
      retries: 5

  wallabag_redis:
    image: redis:7-alpine
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 5s
      retries: 5

volumes:
  wallabag_images:
  wallabag_data:
  wallabag_pgdata:

Three containers, three volumes, nine environment variables. Default credentials (wallabag/wallabag) must be changed on first login.

Winner: Readeck. One container vs three. One volume vs three. Readeck starts in under 5 seconds; Wallabag needs 30-60 seconds for database migrations on first boot.

Performance and Resource Usage

MetricReadeckWallabag
RAM (idle)30–50 MB150–300 MB (app + PostgreSQL + Redis)
RAM (active)50–100 MB300–500 MB
Disk (base)~15 MB~200 MB
Startup time<5 seconds30–60 seconds (first boot)
Containers13
Content storageZIP files on diskDatabase + image files

Readeck’s Go binary is dramatically lighter than Wallabag’s PHP/Symfony stack plus PostgreSQL and Redis. On a 1 GB VPS, Readeck barely registers; Wallabag consumes a third of available memory.

E-Reader Integration

This is where Readeck pulls ahead. It has built-in OPDS support — point KOReader, Calibre, Moon+ Reader, or any OPDS-compatible app at http://your-server:8000/opds and your saved articles appear as downloadable EPUBs. Save articles during the day, sync to your Kindle or Kobo at night. No extra steps.

Wallabag supports e-readers through a different mechanism: email-to-Kindle/Kobo. You configure SMTP credentials and your device’s email address, then send individual articles from the web UI. It works, but requires SMTP setup and sends articles one at a time — no bulk sync, no catalog browsing.

Winner: Readeck for e-reader workflows. OPDS is a better protocol than email-to-device for bulk reading.

Mobile Experience

Wallabag has native Android and iOS apps that support offline reading and sync. The apps are mature, available on official app stores, and work well for saving and reading on the go.

Readeck has no native apps. The web UI works in mobile browsers and can be installed as a PWA (Progressive Web App). On Android, you can share URLs to Readeck via the browser extension. It works, but it’s not the same as a dedicated app with background sync and offline caching.

Winner: Wallabag. Native mobile apps matter for a read-later tool. If you primarily read saved articles on your phone, Wallabag’s apps are a significant advantage.

Community and Ecosystem

DimensionReadeckWallabag
First release20232013
GitHub/Codeberg stars~1,500~10,000+
Mobile appsNone (PWA)Android + iOS (official)
Import sourcesPocket, WallabagPocket, Instapaper, Pinboard, Firefox, Chrome
IntegrationsAPI, OPDSAPI (OAuth2), RSS, email, Kindle, Kobo
DocumentationGood (readeck.org)Comprehensive (doc.wallabag.org)
Community sizeSmall, growingLarge, established

Wallabag has a 10-year head start. Thousands of guides, forum posts, and integrations exist. Readeck is newer but moves fast — it shipped OPDS, highlights, and collections within its first two years.

Use Cases

Choose Readeck If…

  • You want the lightest possible read-later app (30 MB RAM)
  • E-reader integration via OPDS is important to your workflow
  • You prefer a single-container deployment with no external database
  • You want built-in EPUB export and highlights
  • You run on a small VPS or Raspberry Pi alongside other services
  • You primarily read saved content on an e-reader, not a phone

Choose Wallabag If…

  • You need native mobile apps for Android/iOS
  • You’re migrating from Pocket or Instapaper and want seamless import
  • You need team features with multiple users and sharing
  • You want RSS feed output from your saved articles
  • You need auto-tagging rules based on article content
  • You prefer a mature tool with 10+ years of community support

Final Verdict

For personal read-later with e-reader integration, choose Readeck. The OPDS feed and EPUB export create a workflow that Wallabag can’t match — save articles during the day, sync your entire reading list to a Kobo or Kindle at night, read offline without a screen glowing at you. The 30 MB RAM footprint means you can run it alongside anything.

For a read-later app with mobile apps, team support, and a mature ecosystem, choose Wallabag. The native Android and iOS apps, comprehensive importers, and decade of community support make it the safer choice for users who primarily read on their phones. If you’re replacing Pocket today and want the closest experience, Wallabag is the answer.

FAQ

Can I migrate from Wallabag to Readeck?

Yes. Export your Wallabag articles as JSON, then import the file in Readeck’s admin settings. Article content transfers; tags map to Readeck labels.

Does Readeck support Kindle?

Yes, through OPDS. KOReader on Kindle (requires jailbreak) or Calibre on desktop can sync articles from Readeck’s OPDS feed. Wallabag uses email-to-Kindle, which works on stock Kindles without modification.

Which is better for archiving web pages?

Both save article content locally. Readeck stores each article as an immutable ZIP file (text + images), which is better for long-term archival. Wallabag stores content in the database with images as separate files. For serious web archiving beyond read-later, consider Linkwarden or Hoarder instead.

Can I run both?

Yes. They use different ports (Readeck: 8000, Wallabag: 8080) and don’t share any dependencies. Some users run Readeck for e-reader sync and Wallabag for mobile reading.

Comments