Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

137 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java Guru

A multilingual technical blog about practical Java backend engineering.

Built with AstroPaper i18n — a fork of AstroPaper with multilingual support.

Overview

Java Guru shares practical knowledge for Java backend developers, covering:

  • Java Core — OOP, Collection, Stream, Exception, Generics, JVM
  • Spring Boot — REST API, Security, Transaction, JPA, Backend Architecture
  • Database — MySQL, PostgreSQL, Indexes, Query Optimization
  • System Design — Cache, Queue, Retry, Idempotency, Distributed Systems
  • Performance — JVM Tuning, GC, Slow Queries, Memory Leaks, Profiling
  • Clean Code — Refactoring, Design Patterns, Testing, Maintainable Code
  • Career — Roadmap, Interviews, Real-world Experience

Tech Stack

Supported Languages

Language Locale Default Route Example
Tiếng Việt vi / /posts/...
English en /en/ /en/posts/...

Install

pnpm install

Run Locally

pnpm dev

Visit http://localhost:4321 for Vietnamese (default) and http://localhost:4321/en/ for English.

Create a Vietnamese Post

Create a .md file under src/data/blog/vi/:

src/data/blog/vi/java-core/my-post.md

Frontmatter example:

---
title: "Tiêu đề bài viết"
description: "Mô tả ngắn gọn."
pubDatetime: 2026-06-19T10:00:00+07:00
featured: false
draft: false
tags:
  - java
  - java-core
---

Create an English Post

Create a .md file under src/data/blog/en/:

src/data/blog/en/java-core/my-post.md

Frontmatter example:

---
title: "Post Title"
description: "A short description."
pubDatetime: 2026-06-19T10:00:00+07:00
featured: false
draft: false
tags:
  - java
  - java-core
---

Build

pnpm build

Preview Production Build

pnpm preview

Deploy to Cloudflare Pages

Setting Value
Framework preset Astro
Build command pnpm build
Build output directory dist
Production branch main

Folder Structure

java-guru/
├── public/                  # Static assets (favicon, images, fonts)
├── src/
│   ├── assets/              # Icons and images
│   ├── components/          # Astro components
│   ├── content.config.ts    # Content collection schema
│   ├── config.ts            # Site configuration
│   ├── constants.ts         # Social links and share links
│   ├── data/
│   │   ├── about/           # About pages (about-vi.md, about-en.md)
│   │   └── blog/
│   │       ├── vi/          # Vietnamese blog posts
│   │       │   ├── java-core/
│   │       │   ├── spring-boot/
│   │       │   ├── database/
│   │       │   ├── system-design/
│   │       │   ├── performance/
│   │       │   ├── clean-code/
│   │       │   └── career/
│   │       └── en/          # English blog posts
│   │           ├── java-core/
│   │           ├── spring-boot/
│   │           ├── database/
│   │           ├── system-design/
│   │           ├── performance/
│   │           ├── clean-code/
│   │           └── career/
│   ├── i18n/
│   │   ├── config.ts        # Locale configuration
│   │   ├── locales/
│   │   │   ├── vi.ts        # Vietnamese translations
│   │   │   └── en.ts        # English translations
│   │   ├── types.ts         # Translation type definitions
│   │   └── utils.ts         # i18n utility functions
│   ├── layouts/             # Page layouts
│   ├── pages/               # Route pages
│   ├── styles/              # Global styles
│   └── utils/               # Utility functions
├── astro.config.ts          # Astro configuration
├── package.json
├── tsconfig.json
└── tailwind.config.ts

Author

Phạm Thanh Hưng (Harry)
Software Engineer (Full-stack)
GitHub: hungpt99-dev
Email: thanhhungpham6@gmail.com

About

EN: Notes, patterns & hard-won lessons from my journey to (pretend) Java guru status — Spring Boot, JVM quirks, and the occasional existential crisis about null. | VI: Ghi chép, mẫu thiết kế và bài học xương máu trên hành trình (tự xưng) thành Java guru — Spring Boot, những cái bất ngờ của JVM, và thỉnh thoảng là cơn hoảng loạn vì null.

Topics

Resources

Code of conduct

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages