Skip to content

Commit 8a93641

Browse files
stevieeclaude
andcommitted
feat(website): add Star on GitHub CTAs and replace @lucide/astro with inline SVGs
- Add "Star on GitHub" button in header (visible on desktop) - Add Star CTA banner in footer with prompt to star the repo - Replace all @lucide/astro icons with inline SVGs to fix build issues - Remove @lucide/astro and lucide-astro dependencies Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 99e97b2 commit 8a93641

8 files changed

Lines changed: 98 additions & 52 deletions

File tree

website/package-lock.json

Lines changed: 0 additions & 21 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

website/package.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,11 @@
1313
},
1414
"dependencies": {
1515
"@astrojs/react": "^5.0.4",
16-
"@lucide/astro": "^1.14.0",
1716
"@tailwindcss/vite": "^4.2.4",
1817
"@types/react": "^19.2.14",
1918
"@types/react-dom": "^19.2.3",
2019
"astro": "^6.2.1",
2120
"geist": "^1.7.0",
22-
"lucide-astro": "^0.556.0",
2321
"lucide-react": "^1.14.0",
2422
"react": "^19.2.5",
2523
"react-dom": "^19.2.5",

website/src/components/AgentWorkflow.astro

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
---
2-
import { Code2 } from '@lucide/astro';
3-
42
const steps = [
53
{
64
cmd: 'issues next',
@@ -71,7 +69,11 @@ const steps = [
7169
<div class="max-w-[800px] mx-auto mt-16">
7270
<div class="rounded-xl bg-[#0c0c0c] border border-[#1f1f1f] overflow-hidden">
7371
<div class="flex items-center gap-2 px-4 py-3 border-b border-[#1f1f1f]">
74-
<Code2 size={14} class="text-[#525252] w-[14px] h-[14px]" />
72+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#525252" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
73+
<path d="m18 16 4-4-4-4" />
74+
<path d="m6 8-4 4 4 4" />
75+
<path d="m14.5 4-5 16" />
76+
</svg>
7577
<span class="font-mono text-xs text-[#525252]">.issues/.agent.md</span>
7678
</div>
7779
<div class="p-5 font-mono text-sm leading-relaxed">

website/src/components/FeatureGrid.astro

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,34 @@
11
---
2-
import { Database, Bot, GitFork, GitCommit, Layout, Terminal } from '@lucide/astro';
3-
42
const features = [
53
{
6-
icon: Database,
74
title: 'Zero Infrastructure',
85
description: 'One Go binary. No Docker, no server, no database. Install, run `issues init`, done.',
6+
icon: '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><ellipse cx="12" cy="5" rx="9" ry="3"/><path d="M3 5V19A9 3 0 0 0 21 19V5"/><path d="M3 12A9 3 0 0 0 21 12"/></svg>',
97
},
108
{
11-
icon: Bot,
129
title: 'AI-Native Workflow',
1310
description: '`issues next`, `claim`, `done`. `.agent.md` gives agents full context. JSON output for automation.',
11+
icon: '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 8V4H8"/><rect width="16" height="12" x="4" y="8" rx="2"/><path d="M2 14h2"/><path d="M20 14h2"/><path d="M15 13v2"/><path d="M9 13v2"/></svg>',
1412
},
1513
{
16-
icon: GitFork,
1714
title: 'Bidirectional Relations',
1815
description: '`blocks`, `depends-on`, `related-to`, `duplicates`. Both sides sync automatically.',
16+
icon: '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="18" r="3"/><circle cx="6" cy="6" r="3"/><circle cx="18" cy="6" r="3"/><path d="M6 9v3a3 3 0 0 0 3 3h6a3 3 0 0 0 3-3V9"/><path d="M12 15V9"/></svg>',
1917
},
2018
{
21-
icon: GitCommit,
2219
title: 'Auto-Staged',
2320
description: 'Every change is automatically `git add`-ed. Your issue state travels with the commit.',
21+
icon: '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"/><line x1="3" y1="12" x2="9" y2="12"/><line x1="15" y1="12" x2="21" y2="12"/></svg>',
2422
},
2523
{
26-
icon: Layout,
2724
title: 'Kanban Board',
2825
description: 'Interactive TUI with Bubble Tea. `issues board` opens a full Kanban board in your terminal.',
26+
icon: '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="18" height="18" x="3" y="3" rx="2"/><path d="M3 9h18"/><path d="M9 21V9"/></svg>',
2927
},
3028
{
31-
icon: Terminal,
3229
title: 'Human & Machine',
3330
description: '`--format table` for humans, `--format json` for scripts, `--format ids` for pipes.',
31+
icon: '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="4 17 10 11 4 5"/><line x1="12" y1="19" x2="20" y2="19"/></svg>',
3432
},
3533
];
3634
---
@@ -53,9 +51,7 @@ const features = [
5351
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
5452
{features.map((feature) => (
5553
<div class="group rounded-xl bg-[#141414] border border-[#262626] p-6 hover:border-[#525252] transition-colors">
56-
<div class="mb-4">
57-
<feature.icon size={24} className="text-[#22c55e]" />
58-
</div>
54+
<div class="mb-4 text-[#22c55e]" set:html={feature.icon} />
5955
<h3 class="text-lg font-semibold text-[#f5f5f5] mb-2">{feature.title}</h3>
6056
<p class="text-sm text-[#a3a3a3] leading-relaxed">{feature.description}</p>
6157
</div>

website/src/components/Footer.astro

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,37 @@
22
---
33

44
<footer class="border-t border-[#262626]">
5-
<div class="max-w-[1200px] mx-auto px-6 md:px-8 lg:px-12 py-8">
5+
<!-- Star CTA -->
6+
<div class="max-w-[1200px] mx-auto px-6 md:px-8 lg:px-12 py-12">
7+
<div class="flex flex-col sm:flex-row items-center justify-between gap-4 rounded-xl bg-[#141414] border border-[#262626] p-6">
8+
<div class="flex items-center gap-3">
9+
<div class="flex items-center justify-center w-10 h-10 rounded-full bg-[#0c0c0c] border border-[#1f1f1f]">
10+
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#f59e0b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
11+
<polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2" />
12+
</svg>
13+
</div>
14+
<div>
15+
<div class="text-[#f5f5f5] font-semibold">Find git-issues useful?</div>
16+
<div class="text-sm text-[#a3a3a3]">Star the repo on GitHub — it helps a lot.</div>
17+
</div>
18+
</div>
19+
<a
20+
href="https://github.com/steviee/git-issues"
21+
target="_blank"
22+
rel="noopener noreferrer"
23+
class="inline-flex items-center gap-2 h-10 px-5 rounded-full bg-[#0c0c0c] border border-[#1f1f1f] text-[#f5f5f5] text-sm font-medium hover:border-[#525252] hover:bg-[#1f1f1f] transition-colors"
24+
>
25+
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
26+
<path d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4" />
27+
<path d="M9 18c-4.51 2-5-2-7-2" />
28+
</svg>
29+
<span>Star on GitHub</span>
30+
</a>
31+
</div>
32+
</div>
33+
34+
<!-- Footer links -->
35+
<div class="max-w-[1200px] mx-auto px-6 md:px-8 lg:px-12 py-8 border-t border-[#262626]">
636
<div class="flex flex-col sm:flex-row items-center justify-between gap-4">
737
<!-- Left: Links -->
838
<div class="flex items-center gap-4 text-sm text-[#525252]">

website/src/components/Header.astro

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
---
22
import ThemeToggle from './ThemeToggle.tsx';
3-
import { BookOpen } from '@lucide/astro';
43
---
54

65
<header class="fixed top-0 left-0 right-0 z-50 h-16 flex items-center border-b border-transparent transition-all duration-300"
@@ -19,7 +18,19 @@ import { BookOpen } from '@lucide/astro';
1918
href="https://github.com/steviee/git-issues"
2019
target="_blank"
2120
rel="noopener noreferrer"
22-
class="p-2 rounded-md text-[#a3a3a3] hover:text-[#f5f5f5] hover:bg-[#1f1f1f] transition-colors"
21+
class="hidden sm:inline-flex items-center gap-1.5 h-8 px-3 rounded-full border border-[#262626] text-[#a3a3a3] text-xs font-medium hover:border-[#525252] hover:text-[#f5f5f5] transition-colors"
22+
aria-label="Star on GitHub"
23+
>
24+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
25+
<polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2" />
26+
</svg>
27+
<span>Star</span>
28+
</a>
29+
<a
30+
href="https://github.com/steviee/git-issues"
31+
target="_blank"
32+
rel="noopener noreferrer"
33+
class="sm:hidden p-2 rounded-md text-[#a3a3a3] hover:text-[#f5f5f5] hover:bg-[#1f1f1f] transition-colors"
2334
aria-label="GitHub"
2435
>
2536
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
@@ -34,7 +45,10 @@ import { BookOpen } from '@lucide/astro';
3445
class="p-2 rounded-md text-[#a3a3a3] hover:text-[#f5f5f5] hover:bg-[#1f1f1f] transition-colors"
3546
aria-label="Docs"
3647
>
37-
<BookOpen size={18} class="w-[18px] h-[18px]" />
48+
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
49+
<path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z" />
50+
<path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z" />
51+
</svg>
3852
</a>
3953
<ThemeToggle client:load />
4054
</div>

website/src/components/NeverOutOfSync.astro

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
---
2-
import { GitCommit, History, CheckCircle2 } from '@lucide/astro';
32
---
43

54
<section id="sync" class="py-32 px-6 md:px-8 lg:px-12">
@@ -27,23 +26,32 @@ import { GitCommit, History, CheckCircle2 } from '@lucide/astro';
2726

2827
<div class="flex flex-col gap-4 mt-2">
2928
<div class="flex items-start gap-3">
30-
<CheckCircle2 size={20} class="text-[#22c55e] mt-0.5 shrink-0" />
29+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#22c55e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="mt-0.5 shrink-0">
30+
<path d="M22 11.08V12a10 10 0 1 1-5.93-9.14" />
31+
<polyline points="22 4 12 14.01 9 11.01" />
32+
</svg>
3133
<div>
3234
<h4 class="font-semibold text-[#f5f5f5]">Branch-aware</h4>
3335
<p class="text-sm text-[#a3a3a3]">Issues follow branches. A feature branch has its own issues.</p>
3436
</div>
3537
</div>
3638

3739
<div class="flex items-start gap-3">
38-
<CheckCircle2 size={20} class="text-[#22c55e] mt-0.5 shrink-0" />
40+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#22c55e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="mt-0.5 shrink-0">
41+
<path d="M22 11.08V12a10 10 0 1 1-5.93-9.14" />
42+
<polyline points="22 4 12 14.01 9 11.01" />
43+
</svg>
3944
<div>
4045
<h4 class="font-semibold text-[#f5f5f5]">Bisect-friendly</h4>
4146
<p class="text-sm text-[#a3a3a3]"><code>git bisect</code> shows the issue state at every commit in history.</p>
4247
</div>
4348
</div>
4449

4550
<div class="flex items-start gap-3">
46-
<CheckCircle2 size={20} class="text-[#22c55e] mt-0.5 shrink-0" />
51+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#22c55e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="mt-0.5 shrink-0">
52+
<path d="M22 11.08V12a10 10 0 1 1-5.93-9.14" />
53+
<polyline points="22 4 12 14.01 9 11.01" />
54+
</svg>
4755
<div>
4856
<h4 class="font-semibold text-[#f5f5f5]">History is truth</h4>
4957
<p class="text-sm text-[#a3a3a3]"><code>git log .issues/</code> shows exactly when and why things changed.</p>
@@ -56,7 +64,11 @@ import { GitCommit, History, CheckCircle2 } from '@lucide/astro';
5664
<div class="flex flex-col gap-4">
5765
<div class="rounded-xl bg-[#0c0c0c] border border-[#1f1f1f] p-5 font-mono text-sm">
5866
<div class="flex items-center gap-2 text-[#525252] mb-3 pb-3 border-b border-[#1f1f1f]">
59-
<GitCommit size={14} class="w-[14px] h-[14px]" />
67+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
68+
<circle cx="12" cy="12" r="3" />
69+
<line x1="3" y1="12" x2="9" y2="12" />
70+
<line x1="15" y1="12" x2="21" y2="12" />
71+
</svg>
6072
<span>git log --oneline</span>
6173
</div>
6274
<div class="space-y-2">
@@ -90,7 +102,11 @@ import { GitCommit, History, CheckCircle2 } from '@lucide/astro';
90102

91103
<div class="rounded-xl bg-[#0c0c0c] border border-[#1f1f1f] p-5 font-mono text-sm">
92104
<div class="flex items-center gap-2 text-[#525252] mb-3 pb-3 border-b border-[#1f1f1f]">
93-
<History size={14} class="w-[14px] h-[14px]" />
105+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
106+
<path d="M3 3v5h5" />
107+
<path d="M3.05 13A9 9 0 1 0 6 5.3L3 8" />
108+
<path d="M12 7v5l4 2" />
109+
</svg>
94110
<span>git show a1b2c3d:.issues/0001-fix-login-bug.md</span>
95111
</div>
96112
<div class="text-[#525252] mb-2">---</div>

website/src/components/PlansChange.astro

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
---
2-
import { FileText, CheckCircle2 } from '@lucide/astro';
32
---
43

54
<section id="plans" class="py-32 px-6 md:px-8 lg:px-12 border-t border-[#262626]">
@@ -11,7 +10,10 @@ import { FileText, CheckCircle2 } from '@lucide/astro';
1110
style="box-shadow: 0 0 60px rgba(34, 197, 94, 0.05);"
1211
>
1312
<div class="flex items-center gap-2 text-[#525252] mb-3 pb-3 border-b border-[#1f1f1f]">
14-
<FileText size={14} class="w-[14px] h-[14px]" />
13+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
14+
<path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z" />
15+
<path d="M14 2v4a2 2 0 0 0 2 2h4" />
16+
</svg>
1517
<span>.issues/0001-fix-login-bug.md</span>
1618
</div>
1719
<div class="text-[#525252] mb-2">---</div>
@@ -56,23 +58,32 @@ import { FileText, CheckCircle2 } from '@lucide/astro';
5658

5759
<div class="flex flex-col gap-4 mt-2">
5860
<div class="flex items-start gap-3">
59-
<CheckCircle2 size={20} class="text-[#22c55e] mt-0.5 shrink-0" />
61+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#22c55e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="mt-0.5 shrink-0">
62+
<path d="M22 11.08V12a10 10 0 1 1-5.93-9.14" />
63+
<polyline points="22 4 12 14.01 9 11.01" />
64+
</svg>
6065
<div>
6166
<h4 class="font-semibold text-[#f5f5f5]">Plain text</h4>
6267
<p class="text-sm text-[#a3a3a3]">YAML + Markdown. Every editor, every agent, every human can read it.</p>
6368
</div>
6469
</div>
6570

6671
<div class="flex items-start gap-3">
67-
<CheckCircle2 size={20} class="text-[#22c55e] mt-0.5 shrink-0" />
72+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#22c55e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="mt-0.5 shrink-0">
73+
<path d="M22 11.08V12a10 10 0 1 1-5.93-9.14" />
74+
<polyline points="22 4 12 14.01 9 11.01" />
75+
</svg>
6876
<div>
6977
<h4 class="font-semibold text-[#f5f5f5]">No lock-in</h4>
7078
<p class="text-sm text-[#a3a3a3]">Want to leave? Delete <code>issues</code>, keep the <code>.md</code> files. Done.</p>
7179
</div>
7280
</div>
7381

7482
<div class="flex items-start gap-3">
75-
<CheckCircle2 size={20} class="text-[#22c55e] mt-0.5 shrink-0" />
83+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#22c55e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="mt-0.5 shrink-0">
84+
<path d="M22 11.08V12a10 10 0 1 1-5.93-9.14" />
85+
<polyline points="22 4 12 14.01 9 11.01" />
86+
</svg>
7687
<div>
7788
<h4 class="font-semibold text-[#f5f5f5]">Offline first</h4>
7889
<p class="text-sm text-[#a3a3a3]">No network needed. Edit issues on a plane, in a tunnel, anywhere.</p>

0 commit comments

Comments
 (0)