back to home

omnivore-app / omnivore

Omnivore is a complete, open source read-it-later solution for people who like reading.

15,950 stars
1,251 forks
366 issues
TypeScriptJavaScriptHTML

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing omnivore-app/omnivore in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/omnivore-app/omnivore)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

Omnivore Omnivore is a complete, open source read-it-later solution for people who like text. > [!IMPORTANT] > Omnivore is now a completely Self-Hosted application. The Cloud application was deprecated in November of 2024. The community still exists on Discord, and we endeavour to keep things updated and bug-fixes ongoing. We built Omnivore because we love reading and we want it to be more social. Join us! • Highlighting, notes, search, and sharing • Full keyboard navigation • Automatically saves your place in long articles • Add newsletter articles via email (with substack support!) • PDF support • Web app written in Node.js and TypeScript • Native iOS app (source) • Android app (source) • Progressive web app for Android users • Browser extensions for Chrome, Safari, Firefox, and Edge • Labels (aka tagging) • Offline support • Text to speech (iOS only) • Logseq support via our Logseq Plugin • Obsidian support via our Obsidian Plugin Every single part is fully open source! Fork it, extend it, or deploy it to your own server. A guide for running a self hosted server can be found here Join us on Discord! :speech_balloon: We're building our community on Discord. Join us! Read more about Omnivore on our blog. Shoutouts :tada: Omnivore takes advantage of some great open source software: • TypeScript - Most of our backend and frontend are written in TypeScript. • Next.js - Our frontend is a Next.JS app and is hosted on Vercel. • SWR - We do all our data fetching on the web using SWR. • Stitches - We use Stitches on the frontend to style our components. • Mozilla Readability - We use Mozilla's Readability library to make pages easier to read. • Swift GraphQL - We generate our GraphQL queries on iOS using Swift GraphQL. • Apollo GraphQL - We generate our GraphQL queries on Android using Apollo GraphQL. • Radix - We use Radix UI's components on our frontend. • PDF.js - PDF.js is used to have open source pdf functionality. • And many more awesome libraries, just checkout our package files to see what we are using. Shoutouts: Community 🧑‍🤝‍🧑 • Poudlardo - Providing a Podman-compose file for self-hosting. • leopku - Fixing build issues with v3 manifest • travisemslander-fn - Providing fixes for SNS Emails. • andrew-craig & lukebtaylor - Providing fixes for emails. • Benature - Providing fixes for Minio • rbarbazz - Providing a HTML toggle for notes. • pgrosslicht - various fixes to iOs Applications • Adil, m1xxos, Mike Baker, David Adams, Russ Taylor, William Theaker, keumky2 - Who contributed to the initial commit for self-hosting, which was squashed - unfortunately losing the history in the process. • mollydot on Discord - For continuing to moderate, and be an active part of our community! And of course... • jacksonh, sywhb and satindar - who provided the initial repo, and core functionality. and many more who contributed in the past. If you feel like your name is missing from this list, please contact me (Podginator) via our Discord. Importing Libraries Check out our docs for information on importing your data from other apps. How to setup local development :computer: The easiest way to get started with local development is to use . This will start a postgres container, our web frontend, an API server, and our content fetching microservice. Requirements for development Omnivore is written in TypeScript and JavaScript. • Node.js (v18.16) and Yarn -- Versions are managed by Volta. • Chromium -- See below for installation info. Running the web and API services • Start docker compose This will start postgres, initialize the database, and start the web and api services. • Open the browser Open and confirm Omnivore is running • Login with the test account During database setup docker compose creates an account , password: . Go to in your browser and choose to login. Frontend Development If you want to work on just the frontend of Omnivore you can run the backend services with docker compose and the frontend locally: You will need to configure some values in the new file. These are the values for running the service directly on your host machine and running and within docker: Running the puppeteer-parse service outside of Docker To save pages you need to run the service. • Install and configure Chromium • Navigate to the service directory, setup your env file, and install dependencies • Start the service This will start the puppeteer-parse service on port 9090. In your browser go to , click the button, and enter a URL such as . You should see a Chromium window open and navigate to your link. When the service is done fetching your content you will see it in your library. How to deploy to your own server A guide for running a self hosted server can be found here License Omnivore and our extensions to Readability.js are under the AGPL-3.0 license.