karhdo.dev
My ๐ก in the โ: Featuring my portfolio, showcases, code snippets, development logs, and creative ideas.
Karhdo's Coding Adventure
My desire to practice my skills and share my acquired knowledge fuels my endeavors.
Loved the project? Please visit our Website
Website
Tech Stack
This blog is hosted on Vercel, built with Next.js and Tailwind CSS using Tailwind Nextjs Starter Blog.
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/remarkplugins 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
- Create a
.envfile 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
- Start services:
docker compose up -d
- Run migrations:
docker compose exec app pnpm prisma:migrate:deploy
- 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)
more like this
markItDown
๐ฑ A React app to preview and edit Markdownโ. You can also export it as HTML.
