Skip to content

Commit 51acd88

Browse files
committed
Website: Polish landing page messaging
- Add velocity stats strip (180k LoC, 1,000 commits, source-available) linking to gitstrata and GitHub - Split features into shipped vs "Coming next" with separator - Update footer tagline, Download section Linux status, `llms.txt` and `llms-full.txt` to match new messaging - Add accessibility: `aria-label` on h1, badge links
1 parent d5a7f43 commit 51acd88

7 files changed

Lines changed: 81 additions & 33 deletions

File tree

apps/website/src/components/Download.astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ import NewsletterInlineWrapper from './NewsletterInlineWrapper.astro'
5050

5151
<!-- Other platforms -->
5252
<div class="mt-8">
53-
<NewsletterInlineWrapper label="Windows and Linux coming soon. Get notified when they're ready:" />
53+
<NewsletterInlineWrapper label="Windows coming soon. Linux in alpha (self-build for now). Get notified:" />
5454
</div>
5555
</div>
5656
</section>

apps/website/src/components/Features.astro

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
const features = [
2+
const shipped = [
33
{
44
icon: '/icons/database.svg',
55
title: 'Live full-disk index',
@@ -18,6 +18,9 @@ const features = [
1818
description:
1919
'Navigate, select, copy, move. All without touching your mouse. Two panes, tabs, command palette.',
2020
},
21+
]
22+
23+
const upcoming = [
2124
{
2225
icon: '/icons/search.svg',
2326
title: 'Smart search',
@@ -53,22 +56,34 @@ const features = [
5356
</p>
5457
</div>
5558

56-
<!-- Features grid -->
59+
<!-- Shipped features -->
60+
<div class="grid gap-6 md:grid-cols-2 lg:grid-cols-3">
61+
{
62+
shipped.map((feature) => (
63+
<div class="group relative rounded-2xl border border-[var(--color-border)] bg-[var(--color-surface)] p-8 transition-all duration-300 hover:border-[var(--color-accent)]/30 hover:bg-[var(--color-surface-elevated)]">
64+
<img src={feature.icon} alt="" class="mb-4 size-10" />
65+
<h3 class="mb-2 text-xl font-semibold">{feature.title}</h3>
66+
<p class="text-[var(--color-text-secondary)]">{feature.description}</p>
67+
</div>
68+
))
69+
}
70+
</div>
71+
72+
<!-- AI features separator -->
73+
<p class="my-10 text-center text-sm font-medium tracking-wide text-[var(--color-text-tertiary)] uppercase">
74+
Coming next
75+
</p>
76+
77+
<!-- Upcoming AI features -->
5778
<div class="grid gap-6 md:grid-cols-2 lg:grid-cols-3">
5879
{
59-
features.map((feature) => (
60-
<div
61-
class:list={[
62-
'group relative rounded-2xl border p-8 transition-all duration-300',
63-
feature.badge
64-
? 'border-[var(--color-accent)]/30 bg-gradient-to-br from-[var(--color-surface)] to-[var(--color-accent)]/5 hover:border-[var(--color-accent)]/50'
65-
: 'border-[var(--color-border)] bg-[var(--color-surface)] hover:border-[var(--color-accent)]/30 hover:bg-[var(--color-surface-elevated)]',
66-
]}
67-
>
80+
upcoming.map((feature) => (
81+
<div class="group relative rounded-2xl border border-[var(--color-accent)]/30 bg-gradient-to-br from-[var(--color-surface)] to-[var(--color-accent)]/5 p-8 transition-all duration-300 hover:border-[var(--color-accent)]/50">
6882
{feature.badge && (
6983
<a
7084
href="/roadmap"
7185
class="absolute top-4 right-4 rounded-full bg-[var(--color-accent)]/20 px-2.5 py-1 text-xs font-medium text-[var(--color-accent)] transition-colors hover:bg-[var(--color-accent)]/30"
86+
aria-label={`${feature.badge} — view roadmap`}
7287
>
7388
{feature.badge}
7489
</a>

apps/website/src/components/Footer.astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ const currentYear = new Date().getFullYear()
1313
<img src="/logo-32.png" alt="" width="32" height="32" class="h-6 w-6" />
1414
<span class="font-semibold">Cmdr</span>
1515
</a>
16-
<p class="mt-2 text-sm text-[var(--color-text-tertiary)]">The AI-native file manager</p>
16+
<p class="mt-2 text-sm text-[var(--color-text-tertiary)]">Fast, keyboard-driven file manager</p>
1717
</div>
1818

1919
<!-- Product -->

apps/website/src/components/Hero.astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import DownloadButton from './DownloadButton.astro'
2525
</div>
2626

2727
<!-- Headline - Steps 2 & 3 -->
28-
<h1 class="mb-6 text-3xl font-bold leading-tight tracking-tight md:text-4xl lg:text-6xl">
28+
<h1 class="mb-6 text-3xl font-bold leading-tight tracking-tight md:text-4xl lg:text-6xl" aria-label="Every folder sized. Every file found.">
2929
<span class="animate-blur-in stagger-2 inline-block">Every folder sized.</span>
3030
<span class="animate-blur-in stagger-3 inline-block gradient-text">Every file found.</span>
3131
</h1>
Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,38 @@
11
<section class="relative px-6 py-16">
22
<p class="mx-auto max-w-2xl text-center text-lg text-[var(--color-text-secondary)]">
3-
Built by <a href="https://github.com/vdavid" target="_blank" rel="noopener noreferrer" class="text-[var(--color-text-primary)] underline decoration-[var(--color-border)] underline-offset-2 transition-colors hover:decoration-[var(--color-text-tertiary)]">a dev</a> who's used two-pane file managers for 35 years and couldn't find a good one on Mac.
3+
Built by <a
4+
href="https://github.com/vdavid"
5+
target="_blank"
6+
rel="noopener noreferrer"
7+
class="text-[var(--color-text-primary)] underline decoration-[var(--color-border)] underline-offset-2 transition-colors hover:decoration-[var(--color-text-tertiary)]"
8+
>a dev</a
9+
> who's used two-pane file managers for 35 years and couldn't find a good one on Mac.
410
</p>
11+
12+
<div class="mx-auto mt-6 flex max-w-xl flex-wrap items-center justify-center gap-x-8 gap-y-3 text-sm">
13+
<a
14+
href="https://gitstrata.com/github.com/vdavid/cmdr"
15+
target="_blank"
16+
rel="noopener noreferrer"
17+
class="text-[var(--color-text-tertiary)] transition-colors hover:text-[var(--color-accent)]"
18+
>
19+
<span class="font-semibold text-[var(--color-text-secondary)]">180k</span> lines of code
20+
</a>
21+
<a
22+
href="https://gitstrata.com/github.com/vdavid/cmdr"
23+
target="_blank"
24+
rel="noopener noreferrer"
25+
class="text-[var(--color-text-tertiary)] transition-colors hover:text-[var(--color-accent)]"
26+
>
27+
<span class="font-semibold text-[var(--color-text-secondary)]">1,000</span> commits in 12 weeks
28+
</a>
29+
<a
30+
href="https://github.com/vdavid/cmdr"
31+
target="_blank"
32+
rel="noopener noreferrer"
33+
class="text-[var(--color-text-tertiary)] transition-colors hover:text-[var(--color-accent)]"
34+
>
35+
<span class="font-semibold text-[var(--color-text-secondary)]">100%</span> source-available
36+
</a>
37+
</div>
538
</section>

apps/website/src/pages/llms-full.txt.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ export async function GET(context: APIContext) {
2121

2222
const body = `# Cmdr
2323
24-
> The AI-native file manager for power users who want superpowers.
24+
> The fastest two-pane file manager for macOS. Every folder sized. Every file found.
2525
26-
Cmdr is an extremely fast, keyboard-driven, two-pane file manager for macOS (Linux in alpha), built with Rust, Tauri 2, and Svelte 5. It lets you rename files with natural language, search by describing what you're looking for, and organize hundreds of files with a single command. Free forever for personal use, source-available under BSL 1.1.
26+
Cmdr is an extremely fast, keyboard-driven, two-pane file manager for macOS (Linux in alpha), built with Rust, Tauri 2, and Svelte 5. It indexes your entire drive in minutes, shows directory sizes everywhere, and offers instant search and keyboard-driven everything. AI features (smart search, natural language rename, batch operations) are in active development. Free forever for personal use, source-available under BSL 1.1.
2727
2828
Current version: ${version}
2929
Release date: ${latestRelease.pub_date.split('T')[0]}
@@ -46,17 +46,17 @@ Release date: ${latestRelease.pub_date.split('T')[0]}
4646
4747
## Features
4848
49-
### AI-powered features
49+
### Core features
5050
51-
- **Natural language rename**: Type "make these lowercase and add date prefix" and watch it happen. No regex, no scripts, just words. Cmdr understands your intent and renames files accordingly.
52-
- **Smart search**: Find files by describing them in plain English: "that PDF contract from last month" or "screenshots with error messages." No need to remember exact file names.
53-
- **AI batch operations**: Organize hundreds of files with a single command. Tell Cmdr to "sort these into folders by project name" and it figures out the rest.
51+
- **Live full-disk index**: Indexes your entire drive once in about 4 minutes. Then stays current forever, even across restarts. Directory sizes everywhere.
52+
- **Blazing fast**: Built in Rust. Opens a 100k-file folder in 4 seconds with icons, sizes, and dates. Startup is near-instant.
53+
- **Keyboard-first**: Navigate, select, copy, move without touching your mouse. Two panes, tabs, command palette. Every action has a keyboard shortcut, and you can customize them all.
5454
55-
### Core features
55+
### AI features (in active development)
5656
57-
- **Keyboard-first**: Navigate, select, copy, move without touching your mouse. Every action has a keyboard shortcut, and you can customize them all.
58-
- **Blazing fast**: Built with Rust for native performance. Handles folders with 50,000+ files effortlessly. Startup is near-instant.
59-
- **Two-pane layout**: See source and destination side by side. The classic dual-pane layout that professional file managers have used for decades.
57+
- **Smart search** (rough around the edges): Find files by describing them in plain English: "that PDF contract from last month" or "screenshots with error messages." No need to remember exact file names.
58+
- **Natural language rename** (coming soon): Type "make these lowercase and add date prefix" and watch it happen. No regex, no scripts, just words. Cmdr understands your intent and renames files accordingly.
59+
- **AI batch operations** (coming soon): Organize hundreds of files with a single command. Tell Cmdr to "sort these into folders by project name" and it figures out the rest.
6060
- **Tabs**: Multiple tabs per pane with pinning, persistence, and per-tab sorting.
6161
- **File viewer**: Built-in viewer for text files with search, syntax highlighting, and support for very large files.
6262
- **Drive indexing**: Index your drives for fast search with an efficient integer-keyed database schema.

apps/website/src/pages/llms.txt.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ export async function GET(context: APIContext) {
1313

1414
const body = `# Cmdr
1515
16-
> The AI-native file manager for power users who want superpowers.
16+
> The fastest two-pane file manager for macOS. Every folder sized. Every file found.
1717
18-
Cmdr is an extremely fast, keyboard-driven, two-pane file manager for macOS, built with Rust, Tauri 2, and Svelte 5. It lets you rename files with natural language, search by describing what you're looking for, and organize hundreds of files with a single command. Free forever for personal use, source-available under BSL 1.1.
18+
Cmdr is an extremely fast, keyboard-driven, two-pane file manager for macOS, built with Rust, Tauri 2, and Svelte 5. It indexes your entire drive in minutes, shows directory sizes everywhere, and offers instant search. Free forever for personal use, source-available under BSL 1.1.
1919
2020
Current version: ${version}
2121
@@ -32,12 +32,12 @@ Current version: ${version}
3232
3333
## Features
3434
35-
- **Natural language rename**: Type "make these lowercase and add date prefix" and watch it happen. No regex, no scripts.
36-
- **Smart search**: Find files by describing them: "that PDF contract from last month" or "screenshots with error messages."
37-
- **AI batch operations**: Organize hundreds of files with a single command. "Sort these into folders by project name."
38-
- **Keyboard-first**: Navigate, select, copy, move without touching your mouse.
39-
- **Blazing fast**: Built with Rust for native performance. Handles folders with 50,000+ files effortlessly.
40-
- **Two-pane layout**: See source and destination side by side. The classic layout that works.
35+
- **Live full-disk index**: Indexes your entire drive once in about 4 minutes. Then stays current forever, even across restarts.
36+
- **Blazing fast**: Built in Rust. Opens a 100k-file folder in 4 seconds with icons, sizes, and dates.
37+
- **Keyboard-first**: Navigate, select, copy, move without touching your mouse. Two panes, tabs, command palette.
38+
- **Smart search** (rough around the edges): Find files by describing them: "that PDF contract from last month" or "screenshots with error messages."
39+
- **Natural language rename** (coming soon): Type "make these lowercase and add date prefix" and watch it happen. No regex, no scripts.
40+
- **AI batch operations** (coming soon): Organize hundreds of files with a single command. "Sort these into folders by project name."
4141
4242
## Pricing
4343

0 commit comments

Comments
 (0)