Skip to main content

max / balanced_breakfast

docs: fix relative paths to ../../MNW/shared/ (depth correction) Pre-existing working-tree edits (not part of the theming work): the shared-lib links were off by one directory level. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-06-13 02:36 UTC
Commit: b45363128f3173ac38b4927e0593e4aca1ede496
Parent: c3a5d48
4 files changed, +9 insertions, -7 deletions
M README.md +1 -1
@@ -45,7 +45,7 @@ The project is a Cargo workspace with four library crates and one application cr
45 45
46 46 Dependency flow: `bb-interface` is leaf (no internal deps) -> `bb-core` and `bb-feed` depend on `bb-interface` -> `bb-db` depends on `bb-interface` -> `src-tauri` depends on all four.
47 47
48 - Shared libraries from `../MNW/shared/`: [theme-common](../MNW/shared/theme-common/) (theme loading), [tagtree](../MNW/shared/tagtree/) (tag validation), [synckit-client](../MNW/shared/synckit-client/) (cloud sync SDK).
48 + Shared libraries from `../../MNW/shared/`: [theme-common](../../MNW/shared/theme-common/) (theme loading), [tagtree](../../MNW/shared/tagtree/) (tag validation), [synckit-client](../../MNW/shared/synckit-client/) (cloud sync SDK).
49 49
50 50 ## Features
51 51
@@ -85,7 +85,7 @@ Plugins declare their configuration schema with these field types: `Text`, `Text
85 85
86 86 ### Bundled Plugins
87 87
88 - Three plugins ship with the app: `rss.rhai` (RSS/Atom/JSON Feed), `hackernews.rhai` (HN stories), `arxiv.rhai` (arXiv papers). A `reader.rhai` plugin extracts article content from URLs using the readability algorithm.
88 + Eleven plugins ship with the app (see the README for the full list), including `rss.rhai` (RSS/Atom/JSON Feed), `hackernews.rhai` (HN stories), and `arxiv.rhai` (arXiv papers). A `reader.rhai` plugin extracts article content from URLs using the readability algorithm.
89 89
90 90 ## Feed Aggregation
91 91
@@ -105,7 +105,7 @@ The `FeedGenerator` (`bb-feed::generator`) reads items from the database, applie
105 105
106 106 ## Database Layer
107 107
108 - SQLite via sqlx with compile-time migrations (10 migrations). The `Database` struct holds a connection pool (`max_connections: 16`) and provides typed repository accessors.
108 + SQLite via sqlx with compile-time migrations (12 migrations). The `Database` struct holds a connection pool (`max_connections: 16`) and provides typed repository accessors.
109 109
110 110 ### Tables
111 111
@@ -1,6 +1,6 @@
1 1 # Balanced Breakfast Database Schema
2 2
3 - SQLite schema reference. 10 migrations. Migrations live in `migrations/sqlite/` as numbered SQL files, applied on boot via sqlx-sqlite.
3 + SQLite schema reference. 12 migrations. Migrations live in `migrations/sqlite/` as numbered SQL files, applied on boot via sqlx-sqlite.
4 4
5 5 ## Domain Map
6 6
@@ -1,13 +1,14 @@
1 1 # Balanced Breakfast — Privacy Policy
2 2
3 - *Last updated: May 12, 2026*
3 + *Last updated: June 4, 2026*
4 4
5 5 Balanced Breakfast is published by Make Creative, LLC. This policy explains what data the app handles.
6 6
7 7 ## The Short Version
8 8
9 9 - Balanced Breakfast is a local-first feed aggregator. Subscriptions, fetched articles, and read state live in a SQLite database on your own device.
10 - - We don't run a server for Balanced Breakfast. We don't see your data.
10 + - Balanced Breakfast works fully offline; nothing leaves your device unless you opt in to cloud sync.
11 + - If you enable sync, your data is end-to-end encrypted on your device before upload, so the sync server stores only ciphertext we cannot read.
11 12 - The app fetches feed data directly from sources you configure (RSS feeds, public APIs); those operators see your IP, as with any web request.
12 13 - No telemetry, analytics, ads, or tracking.
13 14
@@ -26,6 +27,7 @@ The app makes outbound requests only to sources you've added:
26 27 - Public APIs (e.g. Hacker News, arXiv) that plugins are configured to query
27 28 - Image hosts referenced by article content (loaded for preview rendering)
28 29 - **Update server** — the app periodically checks for new versions. The check transmits your current app version and platform; no personal data.
30 + - **SyncKit sync** (optional, off by default) — if you enable it, the app replicates your data to a SyncKit server (makenot.work by default) using end-to-end encrypted payloads. The server stores only ciphertext; we cannot read your synced data.
29 31
30 32 We don't proxy any of these requests. Each goes directly from your device to the source's own server, under that source's own privacy policy.
31 33
@@ -34,7 +36,7 @@ We don't proxy any of these requests. Each goes directly from your device to the
34 36 - No analytics SDK, no crash reporter beacons, no usage tracking
35 37 - No advertising, no third-party trackers
36 38 - No data sold or shared with third parties
37 - - No cloud sync between devices (each device's database is independent)
39 + - No background sync or data upload unless you explicitly enable SyncKit (off by default)
38 40
39 41 ## Children
40 42