Skip to content

Conversation

@solidsnakedev
Copy link
Collaborator

Redesigns the docs homepage with improved UX.

Copilot AI review requested due to automatic review settings January 20, 2026 00:23
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR redesigns the documentation homepage from a simple redirect to a comprehensive landing page showcasing the Evolution SDK's features and capabilities. The new homepage provides immediate value to visitors with installation instructions, code examples, and feature highlights.

Changes:

  • Replaced redirect-only homepage with a full-featured marketing landing page
  • Added package manager tabs for installation instructions with copy-to-clipboard functionality
  • Updated StackBlitz playground example to use the updated API (renamed Core.Address to Address)

Reviewed changes

Copilot reviewed 3 out of 5 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
docs/app/(home)/page.tsx Complete homepage redesign with hero section, quick start guide, feature grid, runtime support showcase, and footer
docs/package.json Added @icons-pack/react-simple-icons and lucide-react dependencies for UI icons
pnpm-lock.yaml Lock file updates for new icon dependencies
docs/next-env.d.ts Updated Next.js types import path from .next to out/dev
docs/components/playground/StackBlitzPlayground.tsx Updated default code example to match new SDK API (removed Core. namespace)
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 75 to 81
const comparisons = [
{ lib: "Evolution SDK", pureTs: true, conway: true, maintained: true, note: "Type-safe, Effect-powered" },
{ lib: "Lucid", pureTs: false, conway: false, maintained: false, note: "No longer maintained" },
{ lib: "MeshJS", pureTs: false, conway: true, maintained: true, note: "WASM-based" },
{ lib: "Cardano JS SDK", pureTs: false, conway: true, maintained: true, note: "WASM-based, verbose" }
]

Copy link

Copilot AI Jan 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comparisons constant is defined but never used in the component. This unused code should be removed to maintain a clean codebase, or if it's intended for a future feature, it should be used in the UI.

Suggested change
const comparisons = [
{ lib: "Evolution SDK", pureTs: true, conway: true, maintained: true, note: "Type-safe, Effect-powered" },
{ lib: "Lucid", pureTs: false, conway: false, maintained: false, note: "No longer maintained" },
{ lib: "MeshJS", pureTs: false, conway: true, maintained: true, note: "WASM-based" },
{ lib: "Cardano JS SDK", pureTs: false, conway: true, maintained: true, note: "WASM-based, verbose" }
]

Copilot uses AI. Check for mistakes.
Comment on lines +110 to +122
<button
key={pm.id}
onClick={() => setSelected(pm.id)}
className={`flex items-center gap-2 px-4 py-2.5 text-sm font-medium transition-colors ${
selected === pm.id
? "text-fd-foreground bg-fd-card border-b-2 border-fd-primary -mb-px"
: "text-fd-muted-foreground hover:text-fd-foreground"
}`}
>
<Icon size={16} color={selected === pm.id ? pm.color : "currentColor"} />
{pm.name}
</button>
)
})}
Copy link

Copilot AI Jan 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The tab buttons in the PackageManagerTabs component should include keyboard navigation support. Consider adding keyboard event handlers for arrow key navigation between tabs to improve accessibility for keyboard users.

Copilot uses AI. Check for mistakes.
Comment on lines 129 to 147
<button
onClick={copyToClipboard}
className="flex items-center gap-1.5 text-xs text-fd-muted-foreground hover:text-fd-foreground transition-colors"
>
{copied ? (
<>
<svg className="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M5 13l4 4L19 7" />
</svg>
Copied!
</>
) : (
<>
<svg className="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z" />
</svg>
Copy
</>
)}
Copy link

Copilot AI Jan 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The inline SVG icons for copy functionality lack proper accessibility attributes. Add aria-hidden="true" to decorative SVG elements and ensure the button has a proper aria-label for screen readers.

Copilot uses AI. Check for mistakes.
const [selected, setSelected] = useState("npm")
const [copied, setCopied] = useState(false)

const selectedPm = packageManagers.find(pm => pm.id === selected)!
Copy link

Copilot AI Jan 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The non-null assertion operator (!) is used without checking if the packageManager is actually found. If selected contains an invalid ID, this could cause a runtime error. Consider handling the case where find returns undefined.

Suggested change
const selectedPm = packageManagers.find(pm => pm.id === selected)!
const selectedPm = packageManagers.find(pm => pm.id === selected) ?? packageManagers[0]

Copilot uses AI. Check for mistakes.
Comment on lines 16 to 34
const quickStartCode = `import { Address, Assets, createClient } from "@evolution-sdk/evolution"
// 1. Create a client
const client = createClient({
network: "preprod",
provider: { type: "blockfrost", baseUrl, projectId },
wallet: { type: "seed", mnemonic }
})
// 2. Build a transaction
const tx = await client.newTx()
.payToAddress({
address: Address.fromBech32(recipient),
assets: Assets.fromLovelace(5_000_000n)
})
.build()
// 3. Sign and submit
const hash = await tx.sign().then(s => s.submit())`
Copy link

Copilot AI Jan 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The quick start code example references undefined variables baseUrl, projectId, mnemonic, and recipient. These should either be shown as placeholders with clear descriptive names like YOUR_BLOCKFROST_URL or include comments explaining that users need to provide these values.

Copilot uses AI. Check for mistakes.
Comment on lines 98 to 100
await navigator.clipboard.writeText(selectedPm.command)
setCopied(true)
setTimeout(() => setCopied(false), 2000)
Copy link

Copilot AI Jan 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The component uses a client-side only API navigator.clipboard without checking for its availability. Consider adding a fallback or checking if the API exists before using it to prevent errors in environments where it's not available.

Suggested change
await navigator.clipboard.writeText(selectedPm.command)
setCopied(true)
setTimeout(() => setCopied(false), 2000)
try {
if (
typeof navigator !== "undefined" &&
navigator.clipboard &&
typeof navigator.clipboard.writeText === "function"
) {
await navigator.clipboard.writeText(selectedPm.command)
setCopied(true)
setTimeout(() => setCopied(false), 2000)
} else {
console.warn("Clipboard API is not available in this environment.")
}
} catch (error) {
console.error("Failed to copy command to clipboard:", error)
}

Copilot uses AI. Check for mistakes.
@solidsnakedev solidsnakedev force-pushed the docs/homepage-redesign branch from 1c2d4ad to a6004d1 Compare January 20, 2026 00:27
@solidsnakedev solidsnakedev force-pushed the docs/homepage-redesign branch from a6004d1 to 54036fd Compare January 20, 2026 00:30
@solidsnakedev solidsnakedev merged commit 30bec3c into main Jan 20, 2026
5 checks passed
@solidsnakedev solidsnakedev deleted the docs/homepage-redesign branch January 20, 2026 03:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants