jacobhuber.me: A Personal Portfolio and Blog

An overview of my personal website, built with Next.js, shadcn/ui, and Vercel, with Markdown integration for content like blogs and projects.

jacobhuber.me: A Personal Portfolio and Blog

The JacobHuber.me website serves as both a personal portfolio and a blogging platform where I can showcase my projects, document my learning journey, and share insights on software development, specifically in Next.js, shadcn/ui, Vercel, and Markdown. The site is designed for both professional and personal content, using a clean and elegant layout.


Project Overview

The goal of JacobHuber.me is to provide an intuitive, visually appealing platform that showcases my professional projects and personal blog posts. It's built with performance, scalability, and ease of content management in mind.

Key features include:

  • Dynamic Content: Blog and project sections are managed with Markdown files, allowing for easy content updates and rich text formatting.
  • Custom UI: Built with shadcn/ui components for a modern and minimalist look.
  • Theme Toggle: Dark and light mode toggle for a better user experience across different lighting conditions.

Technology Stack

The project leverages a range of modern tools and frameworks to achieve a seamless experience for both the developer and the end-user:

TechnologyDescription
Next.js

A React-based framework for building static and server-rendered applications.

Vercel

Hosting and deployment for seamless integration with Next.js.

shadcn/ui

Provides accessible and customizable UI components that enhance the site's aesthetic.

Markdown

Used for creating content in the blog and projects sections for easy formatting and version control.

TypeScript

Ensures type safety across the project, enhancing code reliability and maintainability.

Key Features

This project comes with several built-in features that enhance usability and performance:

1. Blogging and Projects with Markdown

The blog and projects sections are powered by Markdown files, which allow for easy, flexible content creation and management. The use of MDX (Markdown with JSX) enables the addition of custom components, making content more dynamic.

2. UI Components from shadcn/ui

By using shadcn/ui, I’ve built a sleek and accessible interface. Components like cards, buttons, and toggles are customized to fit the theme and overall aesthetic of the site.

3. Dark Mode

Dark mode is available site-wide and can be toggled easily, providing a user-friendly experience that adapts to individual preferences.


Challenges and Solutions

During development, I encountered several challenges. Here’s a brief summary of the major issues and how they were resolved:

ChallengeSolution
Hydration Errors

Used Next.js’s use client directive and conditional imports to prevent client-side hydration issues.

Markdown Rendering

Integrated remark and rehype plugins to handle complex Markdown components within MDX files.

UI Consistency

Leveraged shadcn/ui’s customizable components to maintain a consistent look and feel across different screen sizes.

Conclusion

JacobHuber.me is more than a simple portfolio site—it's a place where I can document my projects, share knowledge, and continually improve as a developer. By using Next.js, shadcn/ui, and Markdown, I’ve created a platform that combines content flexibility with a clean, modern design.

As I continue to develop new features and add content, I aim for JacobHuber.me to reflect my growth as a developer, both technically and creatively.


Thank you for exploring JacobHuber.me! Feel free to check out the Blog or Projects sections for more insights into my work and interests.