Skip to content

nelsonlaidev/nelsonlai.dev

Repository files navigation

Project Cover

nelsonlai.dev

Framework Language License

Welcome to the monorepo of my personal blog! This repository houses the code for my blog, where I share my thoughts, projects, and insights. Feel free to explore and get inspired.

Features

Core Technologies

  • Next.js 15 with App Router
  • TypeScript with strict configuration
  • Tailwind CSS for styling
  • MDX for content
  • Drizzle ORM
  • I18n for internationalization support

UI/UX

  • Radix UI for accessible UI components
  • Responsive design
  • Light/Dark mode
  • Image zoom in blog posts
  • Shiki for code syntax highlighting
  • Motion for animations
  • Table of contents for blog posts

Blog Features

  • Comment system
  • Like functionality
  • Post view counter
  • Blog post search
  • RSS feed
  • Sitemap

Performance & SEO

  • Lighthouse score of nearly 100
  • SEO optimized with meta tags and JSON-LD
  • Dynamic open graph images using next/og

Development Experience

  • Vitest for unit/integration testing
  • Playwright for E2E testing
  • ESLint configuration
  • Prettier code formatting
  • Lefthook
  • Conventional commit lint
  • CSpell for spell checking

Authentication & Data

  • Better Auth
  • Redis caching
  • Upstash for API rate limiting
  • t3-env for environment variables
  • Umami Analytics

Getting Started

Prerequisites

Development

To run this project locally, you need to set up the development environment.

Setup

  1. Clone the repository:
git clone https://github.com/nelsonlaidev/nelsonlai.dev
  1. Navigate to the project directory:
cd nelsonlai.dev
  1. Install dependencies using Bun:
bun install

Environment Setup

  1. Copy .env.example to .env.local and update the environment variables as needed.
cp .env.example .env.local
  1. Run required services using Docker:
docker compose up -d
  1. Run the database migrations:
bun db:migrate
  1. Seed the database:
bun db:seed
  1. Run the app:
bun dev # Run all services
# or
bun dev:web # Run only the web app
# or
bun dev:docs # Run only the documentation app

The services will be available at the following URLs:

Service URL
App localhost:3000
Docs localhost:3002
Database localhost:5432
Redis localhost:6379
Redis serverless localhost:8079

Credits

This project has been made possible thanks to the wonderful open-source community. Special thanks to:

This project also uses/adapts the following open-source projects:

The following projects were referenced for inspiration:

Author

Donation

If you find this project helpful, consider supporting me by sponsoring the project.

License

This project is open source and available under the MIT License.


Made with ❤️ in Hong Kong

Sponsor this project

  •  

Contributors 6