Loading repository data…
Loading repository data…
nelsonlaidev / repository
My personal website built with TypeScript, Next.js, and TailwindCSS
Welcome to my personal blog and portfolio website! This repository contains a modern Next.js application where I share my thoughts, projects, and insights.
next/ognelsonlai.dev/
├── public/ # Static assets (images, fonts, videos)
├── src/
│ ├── app/ # Next.js app router pages
│ ├── components/ # React components
│ ├── constants/ # Application constants
│ ├── content/ # MDX blog posts and content
│ ├── contexts/ # React contexts
│ ├── db/ # Database schema and migrations
│ ├── emails/ # Email templates
│ ├── hooks/ # Custom React hooks
│ ├── i18n/ # Internationalization
│ ├── lib/ # Utility libraries
│ ├── mdx-plugins/ # Custom Rehype and Remark plugins
│ ├── orpc/ # oRPC API routes
│ ├── styles/ # Global styles
│ ├── tests/ # Unit and E2E tests
│ └── utils/ # Utility functions
├── docker-compose.yml
└── package.json
To run this project locally, you need to set up the development environment.
git clone https://github.com/nelsonlaidev/nelsonlai.dev
cd nelsonlai.dev
bun install
.env.example to .env.local and update the environment variables as needed.cp .env.example .env.local
docker compose up -d
bun db:migrate
bun db:seed
bun dev # Run the development server
# or
bun email:dev # Run the email preview server separately
The services will be available at the following URLs:
| Service | URL |
|---|---|
| App | localhost:3000 |
| React Email | localhost:3001 |
| Cosmos | localhost:3002 |
| Database | localhost:5432 |
| Redis | localhost:6379 |
| Redis serverless | localhost:8079 |
# Development
bun dev # Start development server
bun email:dev # Run email preview server
bun cosmos # Start Cosmos component playground
# Build & Production
bun run build # Build for production (includes cosmos:export)
bun start # Start production server
bun analyze # Analyze bundle size
# Quality & Testing
bun check # Run all quality checks (lint, typecheck, format, etc.)
bun lint # Run Oxlint
bun typecheck # Run TypeScript type checking
bun format # Format code with Oxfmt
bun knip # Find unused dependencies/exports
bun test:unit # Run unit tests
bun test:e2e # Run Playwright E2E tests
# Database
bun db:migrate # Run database migrations
bun db:seed # Seed the database
bun db:push # Push schema changes directly to DB
bun db:reset # Reset database
bun db:studio # Open Drizzle Studio
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:
If you find this project helpful, consider supporting me by sponsoring the project.
This project is open source and available under the MIT License.