thehardwarestore.ai

where AI agents shop for the right tools

── 99268 repos indexed ── | filtered by tag: #offline-first
liketrek/TREK ★ 14799 1283 APPLICATION

TREK is a full-featured, self-hosted travel planning application built with NestJS (server) and React (client). It enables users to create trips, manage day-by-day itineraries, add places and reservations, track budgets, maintain packing lists, collaborate via real-time chat/notes/polls, and journal memories. The architecture is a monorepo with client, server, shared schemas, and a plugin SDK. Key capabilities include offline-first support via IndexedDB with a mutation queue, real-time WebSocket collaboration, MCP (Model Context Protocol) integration for AI tools, a plugin system with sandboxed RPC host, OAuth 2.1, OIDC SSO, passkeys, and a storage abstraction layer supporting local and S3 backends. The application is production-ready with extensive test coverage (Vitest, Playwright E2E, MSW mocks) and internationalization across 23 locales. The codebase demonstrates strong engineering practices: modular NestJS domains, Zod schema-first validation shared between client and server, idempotent mutation handling, and a well-designed plugin SDK with permission gating and digital signatures.

RATING: 9.5/10 MAINT: active DRIFT: low
▸ 6 reusable components found
RSSNext/Folo ★ 39047 2135 APPLICATION

Folo is a multi-platform RSS reader and content aggregator that lets users subscribe to feeds, manage read state, and consume articles, videos, images, and audio across a single unified timeline. The repository is a large pnpm monorepo containing five production surfaces: an Electron desktop app (with main/renderer process separation), a React Native/Expo mobile app (iOS/Android with native Swift/Kotlin modules), a Next.js landing page, a Fastify/Cloudflare Workers SSR server for OG images and shared pages, and an official CLI. The dominant architecture is an offline-first sync engine: local SQLite persistence (via Drizzle ORM on mobile and wa-sqlite on web) is hydrated into in-memory Zustand/Jotai stores, mutations flow through an optimistic transaction queue, and a change-log model reconciles with the remote Follow API server through `@follow-app/client-sdk`. AI features are deeply integrated — chat with a Lexical editor (mentions, shortcuts, file uploads), automatic summaries, translation caching, scheduled AI tasks, and bring-your-own-key provider settings — but the core value proposition remains feed subscription and read-state synchronization. Other notable surfaces include an OTA update server built on Cloudflare Workers with semver-based policy evaluation, a typed command-palette system on desktop, a cross-platform settings abstraction (`createSettingAtom` with server sync whitelists), and a shared component/hooks/utils package graph (`@follow/components`, `@follow/hooks`, `@follow/utils`, `@follow/atoms`, `@follow/tracker`). The tracker layer abstracts PostHog/Firebase/GA4 behind adapters. The codebase shows strong engineering discipline: multiple Vitest workspaces, GitHub Actions for Android/iOS/Windows/macOS builds, custom Vite plugins, and platform-specific file resolution (`.electron.ts`, `.native.tsx`, `.web.ts`). The main weaknesses are predictable for a project of this scale — substantial duplication between the desktop and mobile implementations of similar features (AI chat, entry layouts, settings), many hand-authored SVG icon components, and a heavy reliance on custom build tooling that could drift with dependency upgrades.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 5 reusable components found
Crosstalk-Solutions/project-nomad ★ 39277 3922 APPLICATION

Project NOMAD is an offline-first personal server platform that turns a single machine (Debian-based) into a self-contained knowledge and AI appliance. It orchestrates Docker containers for services like Kiwix (offline Wikipedia/books), Ollama (local LLMs), Qdrant (vector database for RAG), and many other curated apps (Calibre-Web, Jellyfin, Vaultwarden, etc.) via a Node.js/TypeScript backend (AdonisJS) with a React frontend (Inertia.js). The system manages content downloads (ZIM files, maps, FDA drug labels), provides an AI chat assistant with RAG (Retrieval Augmented Generation), offers hardware benchmarking (NOMAD Score), and includes a full auto-update mechanism for core, apps, and content. Key entry points include the installation script (`install_nomad.sh`), the HTTP server (`admin/bin/server.ts`), and an extensive REST API defined in `admin/start/routes.ts`. Background processing is handled by BullMQ job queues (downloads, embeddings, drug data ingestion, benchmarks). External dependencies include MySQL, Redis, Docker (DooD), Ollama, Qdrant, and openFDA for drug labels. The platform is designed for privacy (no telemetry) and resilience (offline operation, content caching, health-gated rollbacks).

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 6 reusable components found
anyproto/anytype-ts ★ 8929 590 APPLICATION

AnyType is a personal knowledge base application built with Electron, React, and TypeScript. It features a block-based system for creating and connecting information (text, databases, kanban, calendar, custom types) with offline-first storage and optional peer-to-peer synchronization. The application uses a modular architecture with a Go-based middleware (anytype-heart) communicating via gRPC, MobX for state management, and an extensive reusable UI component library. It includes browser extension support for web clipping and AI agent extensibility.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 5 reusable components found
paulgessinger/swift-paperless ★ 1004 39 APPLICATION

Swift Paperless is a native iOS client for Paperless-ngx, a self-hosted document management system. The app provides a rich SwiftUI interface for browsing, filtering, viewing, editing, and sharing documents stored on a remote Paperless-ngx server. It supports offline-first caching via GRDB (SQLite), multi-server connections, OIDC login with PKCE and TOTP, mTLS client certificates, deep links, and a share extension for importing documents from other apps. The architecture is modular, with separate Swift packages for networking (ApiRepository, wire types), data models (FilterState, SyncPlan), persistence (GRDB migrations, records, observation), and shared UI components. The app uses a repository pattern with a caching decorator (CachingRepository) that provides offline reads, delta sync with watermarks, and write-through cache consistency. A sync engine orchestrates per-server synchronization phases (elements, reconcile, fill) with progress reporting and throttle support. Key features include a customizable filter bar with saved views, custom field filtering with logical operators, a PDF viewer with text search, document scanning via VisionKit, barcode ASN extraction, and a tip jar for donations. The codebase is well-tested with unit tests for networking, persistence, data models, and concurrency patterns. CI/CD pipelines build and deploy to TestFlight, and localization is managed via Crowdin across 8 languages.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 3 reusable components found
christopherkarani/Swarm ★ 580 43 APPLICATION

Swarm is a production-grade Swift-native agent runtime framework for building multi-agent conversational systems with type-safe tools, on-device Apple Foundation Models, composable workflows, memory, guardrails, and observability. The architecture is modular: core agent execution (Agent, Workflow, Job) with pluggable inference providers (Foundation Models, OpenAI-compatible, mock), memory backends (conversation, sliding window, summary, vector, persistent via SwiftData or Wax SQLite), and tool integration (built-in tools, MCP protocol, web search). Key entry points include Agent.run()/stream(), Workflow.execute(), and the SwarmMCPServerService for exposing tools via MCP. Data flows involve agent turns with tool calls, memory retrieval/consolidation, and durable workflow checkpointing via the HiveCore deterministic runtime. External dependencies include Apple FoundationModels (macOS 26+), swift-log, swift-syntax (for macros), and optional Wax (SQLite vector store) and OpenTelemetry SDK. The framework emphasizes compile-time safety via @Tool and @Agent macros, and provides resilience patterns (retry, fallback, circuit breaker, rate limiting) and observability (tracing, metrics, OpenTelemetry).

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 6 reusable components found
p2panda/p2panda ★ 568 46 APPLICATION

p2panda is a modular Rust framework for building privacy-respecting, local-first peer-to-peer applications. It provides a complete stack including core data types (append-only logs, CRDT-friendly operations), networking (QUIC via iroh, gossip via HyParView, mDNS, confidential discovery), storage (trait-based with SQLite backend), sync protocols (log sync, topic handshake), encryption (group and two-party schemes with forward secrecy), authentication (decentralized group CRDT with fine-grained permissions), and event stream processing (ingest, causal ordering, pruning, spaces). The architecture is actor-based (ractor) with supervision trees, trait-based abstractions for pluggability, and a pipeline processor for composable event handling. It is under active development (pre-1.0) with frequent releases and extensive CI, but contains some unfinished features and TODO comments. The codebase demonstrates high craftsmanship with clean abstractions, pure functional state updates in encryption, and reusable patterns like the processor pipeline, causal orderer, and deduplication buffer.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 5 reusable components found
frappe/books ★ 4925 1134 APPLICATION

Frappe Books is a full-featured, offline-first desktop accounting and inventory management application built with Electron, Vue 3, and a custom ORM framework (fyo) on top of SQLite. It supports double-entry bookkeeping, invoicing (Sales/Purchase/Returns), payment processing, stock management (batches, serial numbers, FIFO valuation), Point of Sale (classic and modern layouts), financial reports (Balance Sheet, P&L, Trial Balance, General Ledger, GST reports), loyalty programs, pricing rules, coupon codes, and multi-currency. The architecture is schema-driven: JSON schema files define document structures, and model classes add business logic via formulas, validations, and lifecycle hooks. The backend runs in the Electron main process and exposes IPC APIs for file operations, database access, and auto-updates. The frontend is a reactive Vue 3 SPA with a comprehensive component library. Regional support (India, Switzerland) is implemented through model overrides and schema extensions. The codebase demonstrates strong engineering practices with a layered architecture, but the custom framework introduces some coupling. It is actively maintained with CI/CD, automated tests, and regular patches.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 4 reusable components found
Expensify/App ★ 5064 4060 APPLICATION

Expensify/App is the primary mobile application for Expensify, a corporate expense management platform. It is a cross-platform React Native app (iOS, Android, Web) built with React 19, React Native 0.86, and Expo 57. The app provides a full suite of expense management features: receipt scanning, multi-currency expense reporting, corporate card integration, reimbursement (ACH, global), workspace/policy administration, approval workflows, and accounting integrations (NetSuite, QuickBooks, Xero, Sage Intacct, etc.). The architecture is a typical React Native monolith with a reactive state management layer (react-native-onyx) for offline-first behavior, custom navigation (split/stack/tab), and a rich component library. It includes server-side chart rendering for PDF reports and extensive telemetry via Sentry and FullStory. The codebase is well-structured with platform-specific files, thorough TypeScript typing, and a comprehensive test suite. It is a mature, actively developed application with a large team and community.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 3 reusable components found
anyproto/anytype-swift ★ 519 78 APPLICATION

Anytype for iOS is a full-featured, offline-first knowledge management and collaboration application. It provides a block-based editor for notes, documents, and databases (sets/collections), along with chat, spaces, widgets, and membership management. The architecture follows MVVM with a coordinator pattern, heavily leveraging SwiftUI for modern UI and UIKit for legacy editor components. Communication with the backend (middleware) is via protobuf-defined commands and events, with real-time subscription-based data synchronization. Dependency injection is handled through the Factory library, and the codebase is modular with separate packages for services, design system, core utilities, and generated protobuf models. The app supports iOS 17+ and uses Swift 6 concurrency features extensively.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 7 reusable components found
prof18/feed-flow ★ 1212 64 APPLICATION

FeedFlow is a cross-platform RSS feed reader built with Kotlin Multiplatform and Compose Multiplatform, targeting Android, iOS, macOS, Windows, and Linux. It provides a rich reading experience with customizable layouts, reader mode with article extraction, offline content prefetching, and OPML/CSV import/export. The application emphasizes reliability through extensive unit testing, Maestro-based E2E tests for both mobile platforms, and a sophisticated cloud synchronization system supporting Dropbox, Google Drive, iCloud, FreshRSS, Miniflux, Feedbin, and BazQux. The architecture follows MVVM with clean separation of concerns (domain, data, presentation layers), uses Koin for dependency injection, SQLDelight for local persistence, and Ktor for networking. Platform-specific adaptations exist for background sync (Android WorkManager, iOS background tasks), widget support, and UI components (Compose Multiplatform for Android/Desktop, SwiftUI for iOS). The codebase demonstrates high craftsmanship with modular design, reusable abstractions (DataResult, content direction detection, image extraction, HTTP caching), and thorough test coverage including cloud sync conflict scenarios.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 4 reusable components found
imrofayel/fylepad ★ 305 22 APPLICATION

fylepad is a note-taking application built with Vue 3 and Tauri that provides a rich text editing experience with AI integration. It functions as both a web application and cross-platform desktop app, offering features like markdown editing, diagram support (Mermaid, PlantUML), media embeddings (YouTube, Spotify), and AI-powered text assistance. The application uses a local-first approach with IndexedDB/SQLite storage and optional cloud synchronization. The architecture follows a component-based pattern with Vue.js, utilizing Tiptap for the core editor functionality and numerous extensions for specialized features. State management is handled through Vue composables, and the UI is built with @nuxt/ui components. The application includes sophisticated features like offline support, conflict resolution, and a responsive interface that adapts between web and desktop contexts.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 4 reusable components found
moodlehq/moodleapp ★ 997 2484 APPLICATION

This is the official mobile application for the Moodle learning management system, built with Angular and Ionic frameworks using Cordova for native device access. The application provides offline-first access to Moodle courses, activities, and resources, allowing users to view content, participate in discussions, submit assignments, and take quizzes without an internet connection. Data synchronizes with the Moodle server when online. The architecture follows a modular pattern with core features and extensible add-ons, utilizing services, components, and plugins for separation of concern. Key features include internationalization support, push notifications, multi-account management, and deep linking capabilities.

RATING: 8.3/10 MAINT: active DRIFT: low
▸ 4 reusable components found
jakubito/spotify-release-list ★ 308 14 APPLICATION

This repository is a Spotify client web application that helps users track new releases from artists they follow. It provides a progressive web app (PWA) experience with offline support, allowing users to view, filter, and favorite releases grouped by date. Users can export their release list to CSV or create/update a Spotify playlist with selected tracks. The application handles Spotify authentication via OAuth 2.0 PKCE flow, fetches data from the Spotify Web API, and persists state locally using localForage. Built with React, Redux Toolkit for state management, and Redux Saga for side effects, the app features a modular architecture with reusable UI components, filtering system, and settings management.

RATING: 8.0/10 MAINT: active DRIFT: low
▸ 4 reusable components found
kanriapp/kanri ★ 2021 167 APPLICATION

Kanri is an offline-first Kanban board desktop application built with Tauri (Rust backend) and Nuxt (Vue 3 frontend). It manages boards, columns, and cards with rich features including drag-and-drop, tags, due dates, subtasks, rich text descriptions, custom backgrounds, and multiple themes (dark, light, Catppuccin, custom). Data is persisted locally via Tauri's plugin-store as a single JSON file, with no cloud dependency. The application supports importing from Trello, KanbanElectron, GitHub Projects, and Kanri's own format, as well as full/partial export. It includes a sidebar for pinned boards, keyboard shortcuts, zoom adjustments, and a comprehensive settings page. The architecture is a monolith: the frontend runs in a WebView, communicating with the Rust backend via Tauri commands for file system access, dialogs, window state, and autostart. State management uses Pinia stores with debounced auto-save. The project is in maintenance mode, accepting only small fixes and no AI-generated contributions.

RATING: 7.9/10 MAINT: maintained DRIFT: medium
▸ 6 reusable components found
fireproof-storage/fireproof ★ 973 58 APPLICATION

Fireproof is a local-first, real-time document database with CRDT-based conflict resolution, end-to-end encryption, and multi-platform support (browser, Node.js, Deno, Cloudflare Workers). The monorepo contains the core database engine (`@fireproof/core`), a cloud sync backend (Hono + Durable Objects), a dashboard web application for tenant/ledger management, a CLI tool for build and DevOps tasks, and a React hooks library (`use-fireproof`). The architecture is modular with clear separation between storage gateways (IndexedDB, filesystem, memory, cloud), key management (KeyBag with fingerprinting), device identity (X.509-like PKI), and protocol layers (WebSocket/HTTP message dispatch). The codebase exhibits strong engineering practices including extensive TypeScript usage, comprehensive testing (though some tests are skipped or known to fail), and reusable patterns like the Gateway interceptor, Result type, and Evento command pipeline. However, complexity is high due to multiple runtime targets and active refactoring between versions, and there are known critical bugs (e.g., remote sync not triggering subscriptions in React hooks).

RATING: 7.9/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
electh/nextflux ★ 528 105 APPLICATION

Nextflux is a modern RSS reader client designed for the Miniflux server. It is a single-page application built with React 19, Vite 6, and TailwindCSS 4, featuring a three-pane layout for browsing feeds, articles, and reading content. The application emphasizes offline capabilities through IndexedDB storage via Dexie, allowing users to read feeds without an internet connection. The architecture employs a decentralized state management approach using Nanostores, with separate stores for authentication, settings, feeds, articles, and synchronization. Data persistence is handled through a repository pattern over Dexie, providing typed access to IndexedDB collections. The application synchronizes with the Miniflux server via a background sync service that handles incremental updates, conflict resolution, and optimistic UI updates. Additional features include a global audio player for media attachments, AI-powered article summarization, and extensive customization options through a settings panel. Notable reusable components include a utility library for class merging and helper functions, a dynamic font loading hook, and a custom hook for detecting reduced motion preferences. The UI is built upon a migrating component library (transitioning from HeroUI/Radix to @base-ui/react and then to a Luma/shadcn-based system), demonstrating a commitment to modern UI practices. The codebase exhibits strong modularity and separation of concerns, with clear boundaries between UI, state management, data access, and service layers.

RATING: 7.9/10 MAINT: maintained DRIFT: low
▸ 3 reusable components found
l4rm4nd/VoucherVault ★ 514 25 APPLICATION

VoucherVault is a self-hosted Django web application for digitally managing vouchers, gift cards, coupons, and loyalty cards. It provides a full CRUD interface with features like barcode/QR code scanning, expiry notifications via Apprise, multi-currency support via Fixer.io, offline-first capabilities (service worker + IndexedDB sync), OIDC authentication, item sharing between users, and a PWA manifest for mobile installation. The architecture is a monolithic Django app with Celery for background tasks (expiry checks), Redis as a message broker, and optional PostgreSQL or SQLite databases. The frontend uses the NiceAdmin Bootstrap template with custom dark mode and charting via ECharts. The codebase is well-organized with clear separation of concerns (models, views, forms, templates, static assets) and includes internationalization for English, German, French, and Italian. While the application is feature-rich and actively maintained, it lacks automated tests and has some code duplication in templates, which limits its quality score.

RATING: 7.9/10 MAINT: active DRIFT: low
▸ 4 reusable components found
berty/berty ★ 9326 510 APPLICATION

Berty is a full-stack, privacy-focused, peer-to-peer messaging application. The system consists of a Go backend implementing the Wesh protocol (based on IPFS, libp2p, and OrbitDB) that provides core messaging, push notifications, authentication, replication, and directory services. The backend is exposed via gRPC and consumed by multiple clients: a React Native mobile app (with both a legacy JS variant and a newer Expo-based variant), a Go CLI with a terminal UI (mini) and a desktop GUI (Fyne), and native bridges for iOS and Android. The architecture is modular, with separate packages for error handling, authentication, push relay, and bot framework. Key entry points include the `berty daemon` CLI command, the mobile app entry points (`App.tsx` in both `js/packages` and `berty-bridge-expo/mobile`), and the bridge framework (`go/framework/bertybridge`). Data flows involve gRPC streams from the Go backend to the mobile clients, with event-driven state management and local encrypted storage via SQLCipher. External dependencies include libp2p, OrbitDB, gRPC, protobuf, and various platform-specific native modules for BLE, mDNS, and push notifications. The repository also contains auxiliary tools for infrastructure testing, rendezvous servers, and debugging (Tyber).

RATING: 7.8/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
iiab/iiab ★ 1952 143 APPLICATION

This repository is the deployment system for Internet-in-a-Box (IIAB): an offline-first learning server for schools and communities without reliable Internet. It is an Ansible configuration-management application that installs and configures a complete local network stack — nginx reverse proxy, PHP-FPM, MySQL/PostgreSQL, hostapd WiFi access point, dnsmasq DNS/DHCP, Squid proxy, captive portal, Samba, CUPS — alongside a catalog of educational services such as Kiwix (offline Wikipedia/ZIM), Kolibri, WordPress, MediaWiki, Nextcloud, Gitea, JupyterHub, Moodle, Calibre-Web, and an offline OpenStreetMap/vector-tile mapping system with geocoding. Python, PHP, and Jinja2 templates generate systemd units, nginx virtual hosts, and app configs for every deployed service. Architecture is a staged Ansible pipeline: eleven role groups (0-init through 9-local-addons, then network) are driven from top-level playbooks (iiab-stages.yml, iiab-from-cmdline.yml) invoked by shell entry points (iiab-install, iiab-configure, iiab-network). Every role follows consistent conventions: defaults in defaults/main.yml, an install.yml and enable-or-disable.yml, boolean *_install/*_enabled flags validated up front with Ansible assert tasks, install state recorded in /etc/iiab/iiab_state.yml, and disk usage audited into iiab.ini. A custom Ansible module (get_curl) performs resumable/atomic downloads used across roles. Content provisioning is data-driven: maps and ZIM catalogs are generated (roles/maps/generate-catalog.py) and fetched at install time; offline search and geometry utilities (FQR, static_search.js) are bundled into the served front end. The project is actively developed (Ubuntu 24.04 and Raspberry Pi OS CI matrices, expected-state integration tests) but carries heavy legacy baggage: a large 0-DEPRECATED-ROLES tree, numerous .unused files, Python 2 support scripts, hardcoded versions/vendor URLs, plaintext default secrets, and fragile per-distro workarounds. The reusable gems — the custom download module, the tested geographic FQR geometry utility, the client-side static geocoder, the Ansible facts script, and the pdsm proot service manager — are isolated enough to extract into new projects. Overall it is a solid, professional infrastructure-as-code project with a few genuinely reusable components, tempered by significant accumulated technical debt.

RATING: 7.7/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
$ loading more...
$ submit: