feat: redesign homepage with code-forward developer experience#683
feat: redesign homepage with code-forward developer experience#683ryanycoleman wants to merge 10 commits intostrands-agents:mainfrom
Conversation
- Split hero with headline + code snippet, copyable pip install - Steering section: problem/solution narrative with verified code and 100% accuracy stat from the steering blog post - Model-driven section with research agent example - 6 feature cards with code snippets verified against SDK docs - Copy button on all code blocks, dark/light theme-aware highlighting - Animated background curves with reduced opacity for legibility
Review SummaryAssessment: Comment (Approve with suggestions) This is a well-executed homepage redesign with clean component architecture, comprehensive theme support, and strong accessibility practices. The code-forward approach effectively showcases the SDK's simplicity. Review Categories
The inline comments are suggestions to improve the PR, none are blocking. Nice work on this redesign! 🎉 |
Documentation Preview ReadyYour documentation preview has been successfully deployed! Preview URL: https://d3ehv1nix5p99z.cloudfront.net/pr-cms-683/docs/user-guide/quickstart/overview/ Updated at: 2026-03-23T21:15:51.714Z |
Follow-up ReviewThanks for the responsive layout fix! The new Previous feedback status: The 4 inline suggestions from my earlier review are still open. They're all non-blocking recommendations, so feel free to address them or leave them as-is based on your judgment. |
Follow-up Review (3rd pass)Nice addition with the npm install widget! 🎉 This nicely demonstrates the multi-language support (Python + TypeScript) right in the hero section. New changes look good:
Previous feedback status: 4 inline suggestions remain open - all non-blocking. |
| import CodeBlock from './CodeBlock.astro' | ||
|
|
||
| const features = [ | ||
| { |
There was a problem hiding this comment.
Nit - I'd prefer to see this as content (like authors.yaml) to keep components separate from the data/content
There was a problem hiding this comment.
LMK what you think of the new approach. I'm not sure we gain much but it's separate now.
| </p> | ||
| <div class="features-grid"> | ||
| {features.map((feature) => ( | ||
| <div class="feature-card"> |
There was a problem hiding this comment.
good eye. still not perfect but the latest commit makes this a lot better.
| <div class="code-block" data-code={code}> | ||
| <div class="code-header"> | ||
| {filename && <span class="code-filename">{filename}</span>} | ||
| <button class="copy-button" aria-label="Copy code"> |
There was a problem hiding this comment.
Ideally we'd use the Code snippet from starlight, as noted here: https://starlight.astro.build/components/code/
That would allow us to get rid of most of this scaffolding I think. However, it looks like this config option is what prevents us from importing it, so if we found a way around that, it'd be a less code-heavy option
There was a problem hiding this comment.
Yeah, that config option is blocking.
Beyond the config issue, the custom CodeBlock gives us control over the landing page aesthetic that Starlight's Code component wouldn't (e.g. the traffic-light dots, glass-morphism card styling, theme-aware copy button).
Open to revisiting in the future when we change up styling across the board?
Follow-up Review (4th pass)Great work addressing all the feedback! 🎉 My Original Suggestions - All Resolved ✅
New Additions Look Good
Assessment: Ready to merge from my perspective. The remaining open comment from @zastrowm about feature card gaps/alignment is the only outstanding item. |
Review Status UpdateNo new commits since my last review. Current status:
The PR looks good from my perspective. The remaining discussion between @ryanycoleman and @zastrowm on styling preferences (feature card gaps, data separation approach) can be resolved between them. |
Follow-up Review (6th pass)New commit: Messaging improvements look great! The changes make the value proposition clearer and more developer-focused:
Content-only changes, no technical issues. The messaging is now more concise and direct. 👍 |
Follow-up Review (7th pass)New commit: Great messaging pivot! Leaning into "steering" as the key differentiator makes sense given it's a unique capability. Changes Look Good
One Item to VerifyThe new steering code example shows a custom from strands.vended_plugins.steering import (
SteeringHandler, ToolSteeringAction,
)
class NoPricingLeaks(SteeringHandler):
async def steer_before_tool(self, *, agent, tool_use, **kwargs):The existing docs show |
Follow-up Review (8th pass)New commit: Minor wording refinement in ModelDrivenSection:
Good change - "recovery" better describes what steering plugins do and creates a nice narrative bridge to the steering section that follows. 👍 |

Big change to the homepage.
Checklist
npm run devBy submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.