Building a portfolio is never truly “done” - there’s always room to polish, optimize, and add those extra touches that make it shine. Here’s a rundown of the recent enhancements that take this site beyond the basics.
🎯 SEO & Social Media Optimization
Every page now includes comprehensive meta tags for better discoverability:
- SEO Meta Tags: Title, description, author, and canonical URLs
- Open Graph Tags: Optimized for Facebook, LinkedIn, and other platforms
- Twitter Cards: Beautiful previews when shared on Twitter
- Structured Data: Proper article markup for blog posts
When you share a link from this portfolio on social media, it now displays a rich preview with title, description, and image. No more ugly bare URLs!
<!-- Example of the meta tags in action -->
<meta property="og:title" content="Portfolio Enhancements" />
<meta property="og:description" content="A deep dive into new features..." />
<meta property="og:image" content="https://example.com/og-image.jpg" />
📡 RSS Feed
For those who still love RSS (and you should!), this portfolio now has a fully functional feed at /rss.xml. Subscribe to get notified whenever new blog posts are published.
The RSS feed includes:
- Full post titles and descriptions
- Publication dates
- Direct links to articles
- Proper XML formatting
💻 Code Syntax Highlighting
Notice how the code snippets in this post look nice? That’s Shiki in action! Astro comes with built-in syntax highlighting powered by Shiki, the same engine that powers VS Code.
Here’s some JavaScript to demonstrate:
// Example: Theme toggle implementation
const THEME_KEY = "portfolio-theme";
function toggleTheme() {
const current = localStorage.getItem(THEME_KEY);
const next = current === "dark" ? "light" : "dark";
localStorage.setItem(THEME_KEY, next);
document.documentElement.setAttribute("data-theme", next);
}
And some CSS:
/* Smooth theme transitions */
:root {
--bg: #FFF6FF;
--text: #58515c;
transition: background-color 0.3s ease;
}
[data-theme='dark'] {
--bg: #1a0a24;
--text: #d5cdd9;
}
The syntax highlighting works for all major languages and includes:
- Proper tokenization and coloring
- Line wrapping for long code
- Dark theme that matches the site’s design
- Inline
code snippetsstyled differently from blocks
🎨 What’s Next?
These enhancements are just the beginning. Future improvements could include:
- Site Search: Full-text search across all content
- Pagination: For when the blog and work sections grow
- Analytics: Understanding what content resonates
- Performance Metrics: Tracking Core Web Vitals
🛠️ Technical Implementation
All of these features are built with Astro’s native capabilities:
- SEO Tags: Added to
BaseLayout.astrowith props for customization - RSS Feed: Using
@astrojs/rsspackage atsrc/pages/rss.xml.js - Syntax Highlighting: Configured in
astro.config.mjswith Shiki
No heavy frameworks, no client-side overhead - just static HTML with all the modern niceties.
Want to learn more? Check out the GitHub repository to see how it’s all built!