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
15 changes: 15 additions & 0 deletions src/components/next/ComparePreview.astro
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
* title="Already reading in another app?" />
*
* `slugs` picks which apps show (unknown slugs are skipped; 6–8 reads best).
* `guide` adds a second link under the first, to one compare guide.
*/
import { compareIconSrc, getCompareBySlug, getCompareEntries } from "../../lib/compare-data.ts";
import { fathomCompare } from "../../lib/fathom-events.ts";
Expand All @@ -33,6 +34,7 @@ interface Props {
slugs?: string[];
href?: string;
id?: string;
guide?: { href: string; label: string };
}

const total = getCompareEntries().length;
Expand All @@ -44,6 +46,7 @@ const {
slugs = DEFAULT_SLUGS,
href = "/compare/",
id = "compare",
guide,
} = Astro.props;

const apps = slugs
Expand All @@ -68,6 +71,13 @@ const rows = apps.length > 4 ? [apps.slice(0, perRow), apps.slice(perRow)] : [ap
<a class="cpv__link" href={href} data-fathom-track={fathomCompare.homeAll}>
See how Harvous compares <span aria-hidden="true">→</span>
</a>
{
guide && (
<a class="cpv__link cpv__link--guide" href={guide.href} data-fathom-track={fathomCompare.homeCard}>
{guide.label} <span aria-hidden="true">→</span>
</a>
)
}
</div>

{
Expand Down Expand Up @@ -161,6 +171,11 @@ const rows = apps.length > 4 ? [apps.slice(0, perRow), apps.slice(perRow)] : [ap
color: var(--color-accent);
text-decoration: none;
}
.cpv__link--guide {
display: block;
width: fit-content;
margin-top: 0.6rem;
}
.cpv__link:hover { text-decoration: underline; text-underline-offset: 0.2em; }
.cpv__link span { display: inline-block; transition: transform 150ms ease; }
.cpv__link:hover span { transform: translateX(2px); }
Expand Down
6 changes: 3 additions & 3 deletions src/lib/compare-seo-pages.ts
Original file line number Diff line number Diff line change
Expand Up @@ -282,11 +282,11 @@ const SEO_PAGES: CompareSeoPage[] = [
slug: "best-free-bible-notes-apps",
guideLabel: "Best free Bible notes apps",
guideDescription: "Free and freemium options for scripture-linked notes",
seoTitle: "Best free Bible notes apps — Harvous",
seoTitle: "Best free Bible note-taking apps — Harvous",
seoDescription:
"Compare the best free Bible notes apps for scripture-linked study notes — Harvous, Church Notes, Bible Note, Obsidian, and more. Start free; upgrade when notes matter.",
h1: "Best free Bible notes apps",
lead: "Free and freemium apps for scripture-linked study notes. Harvous is notes-first — start free, keep what you save findable later.",
h1: "Best free Bible note-taking apps",
lead: "Free and freemium note-taking apps for scripture-linked study notes. Harvous is notes-first — start free, keep what you save findable later.",
pickSlugs: [
"spirit-notes",
"bible-note",
Expand Down
12 changes: 7 additions & 5 deletions src/pages/index.astro
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ const homeJsonLd = buildHomeJsonLd();
<NextLayout
ogImage={ogCard("home")}
jsonLd={homeJsonLd}
title="Harvous — a study Bible that remembers"
title="Harvous is the Bible notes app that remembers"
description="A quiet notes app for studying the Bible, made by one person. Write what you notice; Harvous keeps it with the verse and brings it back before it fades."
>
<NextHero />
Expand All @@ -40,8 +40,7 @@ const homeJsonLd = buildHomeJsonLd();
<section class="nx-section" id="story" aria-labelledby="story-title">
<div class="nx-wrap">
<div class="home__head" data-reveal>
<p class="nx-kicker">How it works</p>
<h2 id="story-title" class="nx-title">A study Bible that remembers.</h2>
<h2 id="story-title" class="nx-title">Meet Harvous, a Bible notes app.</h2>
</div>
<StoryScroller />
</div>
Expand Down Expand Up @@ -73,7 +72,9 @@ const homeJsonLd = buildHomeJsonLd();

<BlogPreview />

<div class="nx-wrap"><ComparePreview /></div>
<div class="nx-wrap"><ComparePreview
guide={{ href: "/compare/best-free-bible-notes-apps/", label: "Best free Bible note-taking apps" }}
/></div>

<QuickAnswers />

Expand All @@ -85,7 +86,8 @@ const homeJsonLd = buildHomeJsonLd();
max-width: 40rem;
margin-bottom: clamp(2.5rem, 6vw, 4rem);
}
.home__head .nx-title { margin: 0.75rem 0 0; }
.home__head .nx-title { margin: 0; }
.home__head .nx-kicker + .nx-title { margin-top: 0.75rem; }
.home__head .nx-lead { margin: 1rem 0 0; }
.home__more { margin: 2rem 0 0; text-align: center; }
.home__bento { padding-top: 0; }
Expand Down
Loading