Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion data/compare-angles-sources.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
"https://ascensionpress.com/pages/ascension-app",
"https://ascensionpress.com/pages/ascension-app-faq"
],
"notes": "Harvous’ translation list (KJV, NKJV, ESV, NIV, NLT, NET…) may not include a Catholic edition with deuterocanonical books — worth a check before claiming fit for Catholic readers."
"notes": "Checked Oct 2026: Harvous now has a Catholic Bible setting with all 73 books, four Catholic editions (NABRE, Douay-Rheims, RSV-2CE, NRSV-CE) and Today’s Gospel from the Lectionary for Mass (USA)."
},
"aura-bible": {
"sources": [
Expand Down
24 changes: 12 additions & 12 deletions data/compare-angles.json
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,8 @@
"intro": "Ascension is a Catholic home for the Bible, Catechism and daily Mass readings, with Fr. Mike Schmitz’s Bible in a Year; Harvous is for the personal notes you take along the way.",
"seoDescription": "Harvous vs Ascension: the Catholic Bible, Catechism and Bible in a Year, or a notes app that threads and resurfaces your study.",
"chooseThem": "You’re Catholic and want the Great Adventure Bible and Catechism together, daily Mass readings and reflections, the Rosary, and Bible in a Year with Fr. Mike Schmitz.",
"chooseHarvous": "You want your own notes on each day’s reading kept and connected.",
"harvousIsnt": "A Catholic Bible — Harvous’s translations don’t include the deuterocanonical books — or Mass readings and Bible in a Year, which Ascension is made for.",
"chooseHarvous": "You want your own notes on each day’s reading kept and connected, in a Catholic Bible with all 73 books and the day’s Gospel on Home.",
"harvousIsnt": "A Catechism, a guided Bible in a Year or Catholic teaching and reflections. Harvous has the 73 books, four Catholic editions and the daily Gospel, but the formation is Ascension’s.",
"together": "Listen to Bible in a Year in Ascension, then write the day’s note in a Harvous thread.",
"table": [
{
Expand All @@ -99,7 +99,7 @@
},
{
"label": "Daily rhythm",
"harvous": "A daily passage and recent study",
"harvous": "Today’s Gospel from the Mass readings, and your recent study",
"them": "Mass readings, Saint of the Day, podcasts"
},
{
Expand Down Expand Up @@ -439,7 +439,7 @@
},
{
"label": "Scripture",
"harvous": "Reader, 11 translations, pills",
"harvous": "Reader, 15 translations, pills",
"them": "Plain text unless you paste it in"
},
{
Expand Down Expand Up @@ -515,7 +515,7 @@
]
},
"esv-bible": {
"intro": "The ESV app pairs a clean ESV reader with the free Global Study Bible and well-loved audio narrators; Harvous keeps your notes across eleven translations and connects them over time.",
"intro": "The ESV app pairs a clean ESV reader with the free Global Study Bible and well-loved audio narrators; Harvous keeps your notes across fifteen translations and connects them over time.",
"seoDescription": "Harvous vs the ESV Bible app: Crossway’s free ESV reader with study notes and audio, or a notes app that keeps and connects what you study.",
"chooseThem": "You read the ESV and want Crossway’s own reader, with the free ESV Global Study Bible alongside the text, narrated audio, and 50+ reading plans.",
"chooseHarvous": "You read more than one translation and want notes that link into threads.",
Expand All @@ -529,7 +529,7 @@
},
{
"label": "Translations",
"harvous": "ESV plus ten more, compared",
"harvous": "ESV plus fourteen more, compared",
"them": "The ESV, with Crossway’s study resources"
},
{
Expand Down Expand Up @@ -728,7 +728,7 @@
"intro": "Hallow is guided audio prayer rooted in Catholic tradition — the Rosary, Lectio Divina, the Examen, seasonal challenges; Harvous is where the passages you pray with get written down and connected.",
"seoDescription": "Harvous vs Hallow: Hallow leads Catholic and Christian audio prayer — Rosary, Lectio Divina, Examen; Harvous keeps your Scripture notes connected.",
"chooseThem": "You want someone to lead you in prayer — the Rosary, Lectio Divina, the Ignatian Examen, Praylists, sleep content — and community challenges like Pray25 in Advent to pray with others.",
"chooseHarvous": "You want the verse from a Lectio session written down, compared across translations, and linked to past notes.",
"chooseHarvous": "You want the verse from a Lectio session written down, compared across translations (the NABRE and RSV-2CE among them), and linked to past notes.",
"harvousIsnt": "Guided audio prayer, the Rosary or meditation sessions — that’s what Hallow is built for.",
"together": "Pray with Hallow, then open the day’s passage in Harvous and note what you heard so it joins a thread you can return to.",
"table": [
Expand Down Expand Up @@ -944,7 +944,7 @@
},
{
"label": "Study resources",
"harvous": "11 translations, Easton’s, cross-references",
"harvous": "15 translations, Easton’s, cross-references",
"them": "Bibles, commentaries and lexicons from the Olive Tree Store"
},
{
Expand Down Expand Up @@ -979,7 +979,7 @@
},
{
"label": "Bible built in",
"harvous": "11 translations, side by side",
"harvous": "15 translations, side by side",
"them": "None — you paste passages in yourself"
},
{
Expand Down Expand Up @@ -1159,7 +1159,7 @@
},
{
"label": "Bible built in",
"harvous": "11 translations with highlights",
"harvous": "15 translations with highlights",
"them": "None — it’s plain text by design"
},
{
Expand Down Expand Up @@ -1269,7 +1269,7 @@
},
{
"label": "Languages",
"harvous": "11 English translations",
"harvous": "15 English translations",
"them": "3,500+ versions in 2,000+ languages"
},
{
Expand Down Expand Up @@ -1809,7 +1809,7 @@
},
{
"label": "Scripture",
"harvous": "11 translations and Scripture pills",
"harvous": "15 translations and Scripture pills",
"them": "Verses typed or pasted into an entry"
},
{
Expand Down
8 changes: 7 additions & 1 deletion public/llms.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,15 @@ Harvous is a notes app first, not built around sermon transcription or AI-genera

- Notes-first: scripture pills, highlights, and references linked to your writing
- Opens on Activity — the study you already did, a sheet per day, rather than a blank page
- Built-in Bible reader that feeds your notes — browse or type a reference in one of 11 translations, open the chapter, and your notes/highlights for it are right there
- Built-in Bible reader that feeds your notes — browse or type a reference in one of 15 translations, open the chapter, and your notes/highlights for it are right there
- Catholic Bible setting (free): all 73 books including the deuterocanon, the NABRE, Douay-Rheims, RSV-2CE and NRSV-CE, and Today's Gospel from the daily Mass readings on Home
- My Bible (free): a map of where you've been in Scripture, every book as a spine filled by what you read, wrote or highlighted — no streaks, no percentages
- No sermon transcription focus — capture what matters to you, not auto-generated transcripts
- Suggestions: resurface notes, highlights, and passages worth revisiting (called Recall before Harvous 3)
- Reminders: an optional web push, at a rhythm you choose — Sunday and midweek, or every day — carrying the day's verse or the chapter you left, opening straight to it and pausing itself when it goes unopened
- Review (Harvous Plus): answer a question about your own notes from memory, then say how it went — no AI-written questions, no score
- Connector (Harvous Plus): let Claude, ChatGPT, or another AI app you choose read your notes — read-only, locked notes stay locked
- Family (Harvous Plus): one Plus covers up to five more people in your household, with a shared Family Space and a parent view that shows a child's progress, never their notes
- Search from the top middle finds anything you have saved
- Shared Spaces, threads, and folders that organize themselves around what you study — hosting a space is Plus, joining is always free

Expand All @@ -28,6 +31,9 @@ Harvous is a notes app first, not built around sermon transcription or AI-genera
- Discover — free templates and references, some ours, some curated: https://harvous.com/discover/
- Release Notes: https://harvous.com/release-notes/
- Connector (use your study in Claude and ChatGPT): https://harvous.com/add-ons/connector/
- Family (share Plus with your household): https://harvous.com/add-ons/family/
- Catholic Bible: https://harvous.com/features/catholic-bible/
- My Bible: https://harvous.com/features/my-bible/
- Sign up: https://app.harvous.com/

## Bright Enough — the Harvous blog
Expand Down
1 change: 1 addition & 0 deletions src/components/FeatureCategoryPage.astro
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ const ADDON_VISUALS: Record<string, string> = {
"review-exercises": "review",
connector: "connector",
"shared-spaces": "group-threads",
family: "family-members",
};
const allFeatures = await getCollection("features");
const housed: FeatureRow[] = category.featureIds
Expand Down
114 changes: 78 additions & 36 deletions src/components/next/Bento.astro
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
*
* The app pieces are drawn with next-app-ui.css (the app's own tokens), each
* copied from a real screen (Shared spaces from the tour's share screen). The smaller
* features every account gets sit in a grid of chips below.
* features every account gets sit in a grid of tiles below.
*/
import AppIcon from "./app/AppIcon.astro";
import { Icon } from "astro-icon/components";
Expand Down Expand Up @@ -175,15 +175,17 @@ const WIDE: Record<string, { at: "2" | "2only"; flip?: boolean }> = {
<div class="also" data-reveal>
<p class="also__label">Also in every account</p>
<ul class="also__list" role="list">
{ALSO_INCLUDED.map((item) => (
<li>
{item.href ? (
<a class="also__chip" href={item.href}><Icon name={item.icon} aria-hidden="true" /> {item.label}</a>
) : (
<span class="also__chip"><Icon name={item.icon} aria-hidden="true" /> {item.label}</span>
)}
</li>
))}
{ALSO_INCLUDED.map((item) => {
const Tag = item.href ? "a" : "div";
return (
<li>
<Tag class="also__cell" href={item.href}>
<span class="also__icon"><Icon name={item.icon} aria-hidden="true" /></span>
<span class="also__text"><b>{item.label}</b><span>{item.desc}</span></span>
</Tag>
</li>
);
})}
</ul>
</div>

Expand Down Expand Up @@ -495,40 +497,80 @@ const WIDE: Record<string, { at: "2" | "2only"; flip?: boolean }> = {
text-transform: uppercase;
color: var(--color-ink-faint);
}
/* A grid, not a wrapping row, so six chips always break evenly —
6 across, then 3 × 2, then 2 × 3 — and none is left on a line alone. */
/* A 4 × 2 sheet of tiles split by hairlines, no boxes — 2 × 4 on a phone.
Eight items so both layouts break evenly; keep the count even. */
.also__list {
display: grid;
grid-template-columns: repeat(2, auto);
justify-content: center;
gap: 0.5rem;
grid-template-columns: repeat(2, minmax(0, 1fr));
width: 100%;
max-width: 64rem;
margin: 0;
padding: 0;
list-style: none;
}
@media (min-width: 36rem) {
.also__list { grid-template-columns: repeat(3, auto); }
}
@media (min-width: 80rem) {
.also__list { grid-template-columns: repeat(6, auto); }
}
.also__list li { display: flex; }
.also__list li > * { flex: 1; justify-content: center; }
.also__chip {
display: inline-flex;
align-items: center;
gap: 0.45rem;
padding: 0.45rem 0.85rem;
border-radius: 999px;
font-size: 0.875rem;
font-weight: 500;
color: var(--color-ink);
--also-solid: linear-gradient(var(--color-rule), var(--color-rule));
--also-fade-in: linear-gradient(90deg, transparent, var(--color-rule) 80%);
--also-fade-out: linear-gradient(90deg, var(--color-rule) 20%, transparent);
}
@media (min-width: 52rem) {
.also__list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.also__list li { position: relative; display: flex; }
.also__list li:not(:nth-child(2n)) { border-right: 1px solid var(--color-rule); }
/* Horizontal rules are drawn per tile so the outer tiles can fade theirs
into the page: each line runs solid through the middle and dissolves at
both ends. ::before is the top rule (first row only), ::after the bottom. */
.also__list li::before,
.also__list li::after {
content: "";
position: absolute;
left: 0;
right: 0;
height: 1px;
background: var(--also-solid);
pointer-events: none;
}
.also__list li::after { bottom: 0; }
.also__list li::before { top: 0; display: none; }
.also__list li:nth-child(-n + 2)::before { display: block; }
.also__list li:nth-child(2n + 1)::before,
.also__list li:nth-child(2n + 1)::after { background: var(--also-fade-in); }
.also__list li:nth-child(2n)::before,
.also__list li:nth-child(2n)::after { background: var(--also-fade-out); }
@media (min-width: 52rem) {
.also__list li:nth-child(2n) { border-right: 1px solid var(--color-rule); }
.also__list li:nth-child(4n) { border-right: 0; }
.also__list li:nth-child(-n + 4)::before { display: block; }
.also__list li:nth-child(n)::before,
.also__list li:nth-child(n)::after { background: var(--also-solid); }
.also__list li:nth-child(4n + 1)::before,
.also__list li:nth-child(4n + 1)::after { background: var(--also-fade-in); }
.also__list li:nth-child(4n)::before,
.also__list li:nth-child(4n)::after { background: var(--also-fade-out); }
}
.also__cell {
display: grid;
align-content: start;
gap: 0.75rem;
flex: 1;
padding: 1.25rem 1.1rem 1.35rem;
color: inherit;
text-decoration: none;
background: var(--color-warm);
transition: background-color 150ms ease;
}
a.also__chip:hover { background: color-mix(in srgb, var(--color-ink) 8%, transparent); }
.also__chip :global(svg) { width: 0.85rem; height: 0.85rem; color: var(--color-ink-soft); }
a.also__cell:hover { background: color-mix(in srgb, var(--color-ink) 4%, transparent); }
.also__icon {
display: grid;
place-items: center;
width: 2.1rem;
height: 2.1rem;
border-radius: 0.6rem;
color: var(--color-ink-soft);
background: var(--color-warm);
}
.also__icon :global(svg) { width: 0.95rem; height: 0.95rem; }
.also__text { display: grid; gap: 0.2rem; }
.also__text b { font-size: 0.975rem; font-weight: 600; color: var(--color-ink); }
.also__text span { font-size: 0.85rem; line-height: 1.4; color: var(--color-ink-soft); }

@media (prefers-reduced-motion: reduce) {
.bcard__stage > :global(*) { transition: none; }
Expand Down
Loading
Loading