-
-
Notifications
You must be signed in to change notification settings - Fork 41
Add simple blog page #101
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add simple blog page #101
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,72 @@ | ||
| import AnimatedNav from "@/components/animated-nav/server"; | ||
| import Footer from "@/components/footer"; | ||
|
|
||
| export const metadata = { | ||
| title: "devb.io Blog", | ||
| description: "Learn more about devb.io and how it helps you build a portfolio", | ||
| }; | ||
|
|
||
| export default function BlogPage() { | ||
| const features = [ | ||
| "One-click GitHub Profile Connection", | ||
| "Automatic Portfolio Generation", | ||
| "AI-Powered Bio Creation", | ||
| "Dynamic Activity Tracking", | ||
| "Zero Maintenance Required", | ||
| ]; | ||
|
|
||
| const steps = [ | ||
| { | ||
| title: "Generate Profile", | ||
| description: | ||
| "Click the \"Generate Profile\" button and make sure your GitHub profile is updated with projects and achievements.", | ||
| }, | ||
| { | ||
| title: "Instant Portfolio Generation", | ||
| description: | ||
| "Your personalized developer portfolio is created instantly with no manual setup.", | ||
| }, | ||
| { | ||
| title: "Automatic Weekly Updates", | ||
| description: | ||
| "Your portfolio refreshes every week based on your GitHub activity to showcase new work.", | ||
| }, | ||
| { | ||
| title: "Support and Share", | ||
| description: | ||
| "Star the repository, upvote on Product Hunt, and share your portfolio with the world.", | ||
| }, | ||
| ]; | ||
|
|
||
| return ( | ||
| <> | ||
| <AnimatedNav /> | ||
| <main className="min-h-screen px-10 pt-20 md:px-24 md:pt-32 pb-10"> | ||
| <h1 className="text-4xl font-bold mb-6">devb.io Blog</h1> | ||
| <p className="mb-8 text-lg text-gray-700 max-w-2xl"> | ||
| devb.io automatically generates polished developer portfolios by connecting to your GitHub account. Below is a quick overview of the main features and how the platform works. | ||
| </p> | ||
| <section className="mb-12"> | ||
| <h2 className="text-2xl font-semibold mb-4">Key Features</h2> | ||
| <ul className="list-disc list-inside space-y-2"> | ||
| {features.map((feature) => ( | ||
| <li key={feature}>{feature}</li> | ||
| ))} | ||
| </ul> | ||
| </section> | ||
| <section> | ||
| <h2 className="text-2xl font-semibold mb-4">How It Works</h2> | ||
| <ol className="list-decimal list-inside space-y-4"> | ||
| {steps.map((step) => ( | ||
| <li key={step.title}> | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Similar to the If the |
||
| <p className="font-medium">{step.title}</p> | ||
| <p className="text-gray-700">{step.description}</p> | ||
| </li> | ||
| ))} | ||
| </ol> | ||
| </section> | ||
| </main> | ||
| <Footer /> | ||
| </> | ||
| ); | ||
| } | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The
keyprop here uses thefeaturestring itself. This is acceptable for the currentfeaturesarray as it contains unique, static strings. However, if this list were to become dynamic, or if feature strings could potentially become non-unique or be reordered in a way that changes their identity, this keying strategy could lead to React reconciliation issues.Could you clarify the plan for maintaining key uniqueness and stability if this data source evolves? For instance, would it be feasible to assign a dedicated, stable ID to each feature if the content becomes more dynamic?