Skip to content

Commit 40b7e85

Browse files
Tighten copy and polish UX across site (#12)
Copy: cut clutter from about section, tighten footer support card, shorten author bio, reword default SEO description. SEO: use · instead of | in all page titles. 404: redesign with prominent status code, dual CTAs, tighter copy. UX: button press feedback (scale 0.97), hover lift on footer links, support card hover border, smooth transition defaults. ChapterLayout: rename 'Suggest Feedback' to 'Feedback', pre-fill issue body with chapter name. Co-authored-by: Ona <no-reply@ona.com>
1 parent bdb285d commit 40b7e85

6 files changed

Lines changed: 47 additions & 22 deletions

File tree

src/components/Footer.astro

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ const base = import.meta.env.BASE_URL.replace(/\/$/, "");
55
<footer class="border-t border-[var(--border-subtle)]">
66
<div class="max-w-2xl mx-auto px-6 lg:px-10">
77
<!-- Support card -->
8-
<div class="my-8 rounded-xl border border-[var(--border)] bg-[var(--bg-secondary)] p-5">
8+
<div class="my-8 rounded-xl border border-[var(--border)] bg-[var(--bg-secondary)] p-5 hover:border-[var(--text-tertiary)] transition-colors">
99
<div class="flex items-start gap-3.5">
1010
<div class="w-9 h-9 rounded-lg bg-[var(--bg-tertiary)] flex items-center justify-center shrink-0 mt-0.5">
1111
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--text-tertiary)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
@@ -14,29 +14,29 @@ const base = import.meta.env.BASE_URL.replace(/\/$/, "");
1414
</div>
1515
<div>
1616
<p class="text-[14px] font-medium text-[var(--text-primary)] mb-1">Support my work</p>
17-
<p class="text-[13px] text-[var(--text-tertiary)] leading-relaxed mb-4">Most of this book was written on holidays, weekends, and past midnight after full workdays. If it saved you time or helped you make a better decision, consider supporting the work.</p>
17+
<p class="text-[13px] text-[var(--text-tertiary)] leading-relaxed mb-4">This book was written on holidays, weekends, and past midnight. If it saved you time or helped you make a better decision, consider supporting it.</p>
1818
<div class="flex flex-wrap gap-2.5">
1919
<a
2020
href="https://github.com/sponsors/Siddhant-K-code"
2121
target="_blank"
2222
rel="noopener noreferrer"
23-
class="inline-flex items-center h-8 px-3.5 text-[13px] font-medium border border-[var(--border)] rounded-lg text-[var(--text-secondary)] hover:text-[var(--text-primary)] hover:border-[var(--text-tertiary)] transition-colors"
23+
class="inline-flex items-center h-8 px-3.5 text-[13px] font-medium border border-[var(--border)] rounded-lg text-[var(--text-secondary)] hover:text-[var(--text-primary)] hover:border-[var(--text-tertiary)] hover:-translate-y-px transition-all"
2424
>
2525
Sponsor on GitHub
2626
</a>
2727
<a
2828
href="https://buymeacoffee.com/siddhantkhare"
2929
target="_blank"
3030
rel="noopener noreferrer"
31-
class="inline-flex items-center h-8 px-3.5 text-[13px] font-medium border border-[var(--border)] rounded-lg text-[var(--text-secondary)] hover:text-[var(--text-primary)] hover:border-[var(--text-tertiary)] transition-colors"
31+
class="inline-flex items-center h-8 px-3.5 text-[13px] font-medium border border-[var(--border)] rounded-lg text-[var(--text-secondary)] hover:text-[var(--text-primary)] hover:border-[var(--text-tertiary)] hover:-translate-y-px transition-all"
3232
>
3333
Buy me a coffee
3434
</a>
3535
<a
3636
href="https://siddhantkhar5.gumroad.com/l/agentic-engineering-guide"
3737
target="_blank"
3838
rel="noopener noreferrer"
39-
class="inline-flex items-center h-8 px-3.5 text-[13px] font-medium border border-[var(--border)] rounded-lg text-[var(--text-secondary)] hover:text-[var(--text-primary)] hover:border-[var(--text-tertiary)] transition-colors"
39+
class="inline-flex items-center h-8 px-3.5 text-[13px] font-medium border border-[var(--border)] rounded-lg text-[var(--text-secondary)] hover:text-[var(--text-primary)] hover:border-[var(--text-tertiary)] hover:-translate-y-px transition-all"
4040
>
4141
Get the PDF & EPUB
4242
</a>

src/layouts/BaseLayout.astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ interface Props {
66
description?: string;
77
}
88
9-
const { title, description = "33 chapters on context engineering, agent security, cost control, and team practices for building AI agent infrastructure in production." } = Astro.props;
9+
const { title, description = "Context engineering, agent security, cost control, and team practices for AI agent infrastructure in production. 33 chapters." } = Astro.props;
1010
const gaId = import.meta.env.PUBLIC_GA_ID || "G-LYNMNG6M7W";
1111
const siteUrl = Astro.site?.toString().replace(/\/$/, "") || "";
1212
const base = import.meta.env.BASE_URL.replace(/\/$/, "");

src/layouts/ChapterLayout.astro

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,12 @@ interface Props {
2121
const { title, description, chapter, part, partTitle, headings, allChapters, currentSlug } = Astro.props;
2222
2323
const pageTitle = chapter
24-
? `Ch. ${String(chapter).padStart(2, "0")}: ${title} | The Agentic Engineering Guide`
25-
: `${title} | The Agentic Engineering Guide`;
24+
? `Ch. ${String(chapter).padStart(2, "0")}: ${title} · The Agentic Engineering Guide`
25+
: `${title} · The Agentic Engineering Guide`;
2626
2727
const editUrl = `https://github.com/Siddhant-K-code/agentic-engineering-guide/edit/main/src/content/chapters/${currentSlug}.mdx`;
28-
const feedbackUrl = `https://github.com/Siddhant-K-code/agentic-engineering-guide/issues/new?title=Feedback:+${encodeURIComponent(title)}&labels=feedback`;
28+
const feedbackBody = "Chapter: " + title + "\n\n---\n\nFeedback:\n";
29+
const feedbackUrl = `https://github.com/Siddhant-K-code/agentic-engineering-guide/issues/new?title=Feedback:+${encodeURIComponent(title)}&labels=feedback&body=${encodeURIComponent(feedbackBody)}`;
2930
---
3031

3132
<BaseLayout title={pageTitle} description={description}>
@@ -74,7 +75,7 @@ const feedbackUrl = `https://github.com/Siddhant-K-code/agentic-engineering-guid
7475
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
7576
<path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" />
7677
</svg>
77-
Suggest Feedback
78+
Feedback
7879
</a>
7980
</div>
8081
</header>

src/pages/404.astro

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,20 @@ import BaseLayout from "../layouts/BaseLayout.astro";
33
const base = import.meta.env.BASE_URL.replace(/\/$/, "");
44
---
55

6-
<BaseLayout title="404 | The Agentic Engineering Guide">
6+
<BaseLayout title="404 · The Agentic Engineering Guide">
77
<div class="min-h-screen flex items-center justify-center px-6">
8-
<div class="text-center">
9-
<span class="font-[var(--font-mono)] text-xs tracking-widest uppercase text-[var(--text-tertiary)] mb-4 block">404</span>
10-
<h1 class="text-2xl font-semibold mb-3">Page not found</h1>
11-
<p class="text-sm text-[var(--text-secondary)] mb-6">The page you're looking for doesn't exist.</p>
12-
<a href={`${base}/`} class="text-sm underline underline-offset-3 hover:text-[var(--text-secondary)] transition-colors">
13-
← Back to home
14-
</a>
8+
<div class="text-center max-w-sm">
9+
<span class="font-[var(--font-mono)] text-7xl font-semibold text-[var(--text-primary)] opacity-10 select-none block mb-6">404</span>
10+
<h1 class="text-2xl font-semibold mb-3">Nothing here</h1>
11+
<p class="text-sm text-[var(--text-secondary)] mb-8">This page moved or never existed. Try one of these:</p>
12+
<div class="flex flex-col sm:flex-row items-center justify-center gap-3">
13+
<a href={`${base}/`} class="inline-flex items-center gap-2 px-5 py-2.5 text-sm font-medium bg-[var(--text-primary)] text-[var(--bg-primary)] rounded-md hover:opacity-90 transition-opacity">
14+
← Home
15+
</a>
16+
<a href={`${base}/preface/`} class="inline-flex items-center gap-2 px-5 py-2.5 text-sm font-medium border border-[var(--border)] rounded-md hover:border-[var(--text-tertiary)] transition-colors">
17+
Start reading
18+
</a>
19+
</div>
1520
</div>
1621
</div>
1722
</BaseLayout>

src/pages/index.astro

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ const base = import.meta.env.BASE_URL.replace(/\/$/, "");
2020
const totalChapters = allChapters.filter((c) => c.chapter).length;
2121
---
2222

23-
<BaseLayout title="The Agentic Engineering Guide | AI Agent Infrastructure Book">
23+
<BaseLayout title="The Agentic Engineering Guide · AI Agent Infrastructure Book">
2424
<Header />
2525
<Sidebar chapters={allChapters} currentSlug="" />
2626

@@ -84,10 +84,10 @@ const totalChapters = allChapters.filter((c) => c.chapter).length;
8484
/About
8585
</span>
8686
<p class="text-[var(--text-secondary)] leading-relaxed max-w-xl mb-4">
87-
This book is for engineering leaders navigating the shift to AI-assisted development. It covers the decisions, trade-offs, and organizational patterns that determine whether AI agents become a force multiplier or a source of burnout. From context engineering to cost control, from authorization to adoption playbooks.
87+
The decisions, trade-offs, and organizational patterns that determine whether AI agents become a force multiplier or a source of burnout. Context engineering to cost control, authorization to adoption playbooks.
8888
</p>
8989
<p class="text-sm text-[var(--text-tertiary)] leading-relaxed max-w-xl">
90-
Written for engineering leaders and senior engineers adopting AI agents. Half the book covers decisions that don't require writing code: AI fatigue, the conductor model, adoption playbooks, governance, and measuring what matters. The technical chapters assume familiarity with how software systems work. Technical PMs and engineering managers will get full value. Non-technical readers will find roughly a third useful.
90+
For engineering leaders and senior engineers adopting AI agents. Half the book covers decisions that don't require code: AI fatigue, the conductor model, adoption playbooks, governance, measuring what matters. Technical chapters assume familiarity with how software systems work. Technical PMs and engineering managers get full value. Non-technical readers will find roughly a third useful.
9191
</p>
9292
</div>
9393
</section>
@@ -158,7 +158,7 @@ const totalChapters = allChapters.filter((c) => c.chapter).length;
158158
/>
159159
<div>
160160
<p class="text-[var(--text-secondary)] leading-relaxed max-w-xl mb-3">
161-
<strong class="text-[var(--text-primary)]">Siddhant Khare</strong> is a software engineer at <a href="https://ona.com" target="_blank" rel="noopener noreferrer" class="underline underline-offset-2 hover:text-[var(--text-primary)] transition-colors">Ona</a> and a maintainer of <a href="https://openfga.dev" target="_blank" rel="noopener noreferrer" class="underline underline-offset-2 hover:text-[var(--text-primary)] transition-colors">OpenFGA</a> (CNCF Incubating). His essay <a href="https://siddhantkhare.com/writing/ai-fatigue-is-real" target="_blank" rel="noopener noreferrer" class="underline underline-offset-2 hover:text-[var(--text-primary)] transition-colors">"AI fatigue is real and nobody talks about it"</a> reached #1 on Hacker News and was covered by Business Insider, Futurism, NDTV, and others.
161+
<strong class="text-[var(--text-primary)]">Siddhant Khare</strong> is a software engineer at <a href="https://ona.com" target="_blank" rel="noopener noreferrer" class="underline underline-offset-2 hover:text-[var(--text-primary)] transition-colors">Ona</a> and a maintainer of <a href="https://openfga.dev" target="_blank" rel="noopener noreferrer" class="underline underline-offset-2 hover:text-[var(--text-primary)] transition-colors">OpenFGA</a> (CNCF Incubating). His essay <a href="https://siddhantkhare.com/writing/ai-fatigue-is-real" target="_blank" rel="noopener noreferrer" class="underline underline-offset-2 hover:text-[var(--text-primary)] transition-colors">"AI fatigue is real and nobody talks about it"</a> reached Hacker News #1 and was covered by Business Insider, Futurism, NDTV, and others.
162162
</p>
163163
<div class="flex gap-4 text-sm text-[var(--text-tertiary)]">
164164
<a href="https://twitter.com/Siddhant_K_code" target="_blank" rel="noopener noreferrer" class="hover:text-[var(--text-primary)] transition-colors">Twitter</a>

src/styles/global.css

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,3 +272,22 @@ body {
272272
#search-input:focus-visible {
273273
outline: none;
274274
}
275+
276+
/* ── Button press feedback ── */
277+
a[class*="bg-[var(--text-primary)]"]:active,
278+
a[class*="border border-[var(--border)]"]:active,
279+
.gumroad-btn:active {
280+
transform: scale(0.97);
281+
}
282+
283+
/* ── Chapter nav hover: subtle arrow nudge ── */
284+
[data-chapter-nav] a:hover span:first-child {
285+
transition: transform 0.15s ease;
286+
}
287+
288+
/* ── Smooth transitions for interactive elements ── */
289+
a, button {
290+
transition-property: color, background-color, border-color, opacity, transform;
291+
transition-duration: 0.15s;
292+
transition-timing-function: ease;
293+
}

0 commit comments

Comments
 (0)