Skip to content

Karhdo/karhdo.dev

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Karhdo's Coding Adventure

My desire to practice my skills and share my acquired knowledge fuels my endeavors.

Stars Badge Forks Badge Pull Requests Badge Issues Badge GitHub contributors License Badge

Loved the project? Please visit our Website


Website

Image Karhdo's Blog Website

Tech Stack

This blog is hosted on Vercel, built with Next.js and Tailwind CSS using Tailwind Nextjs Starter Blog.

Next MDX Vercel React Typescript Tailwind CSS

This blog site takes inspiration from lehuynh.dev. I appreciate Leo Huynh and Timothy Lin for their contribution to this minimal, lightweight, and highly customizable blog starter.

A few major over-engineering-changes from the original repo:

  • βš›οΈ Upgrading to React 19, NextJS 16
  • πŸŽ‰ Adopting Typescript, committing with Conventional Commits
  • πŸ‘€ Theming in dark mode with Tokyonight Neovim Theme colors for better contrast.
  • πŸ‘¨β€πŸ’» My website refers to the design and code from the lehuynh.dev repository and incorporates the tailwind-nextjs-starter-blog template, version 1.0.
  • πŸ“₯ Bumping up mdx-bundler, rehype/remark plugins and dependencies to the latest version

Docker Deployment

Run the blog using Docker with standalone output mode for optimized image size (~200-300MB).

Quick Start

  1. Create a .env file with required environment variables:
POSTGRES_URL=postgresql://postgres:postgres@postgres:5432/karhdo_blog
GITHUB_API_TOKEN=your_github_token
SPOTIFY_CLIENT_ID=your_spotify_client_id
SPOTIFY_CLIENT_SECRET=your_spotify_client_secret
SPOTIFY_REFRESH_TOKEN=your_spotify_refresh_token
NEXT_PUBLIC_GISCUS_REPO=your_username/your_repo
NEXT_PUBLIC_GISCUS_REPOSITORY_ID=your_repo_id
NEXT_PUBLIC_GISCUS_CATEGORY=your_category
NEXT_PUBLIC_GISCUS_CATEGORY_ID=your_category_id
  1. Start services:
docker compose up -d
  1. Run migrations:
docker compose exec app pnpm prisma:migrate:deploy
  1. Access at http://localhost:3000

Docker Image: Node.js 24 Alpine with multi-stage build (deps β†’ builder β†’ runner) running as non-root user.

Express Your Support

If this project has been beneficial, show your appreciation with a ⭐

Image Credits

The images utilized within this blog originate from Unsplash, GIFs are sourced from GIPHY, and illustrations are from Storyset.

Extending sincere thanks for these exceptional resources πŸ™


Copyright Β© 2026 - Do Trong Khanh (Karhdo)

About

My 🏑 in the ☁: Featuring my portfolio, showcases, code snippets, development logs, and creative ideas.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published