{"data":[{"id":9,"title":"Các chú ý khi học luyện thi PMP","slug":"cac-chu-y-khi-hoc-luyen-thi-pmp","excerpt":"Các chú ý khi học luyện thi PMP","cover_image":"https://scontent-itm1-1.xx.fbcdn.net/v/t39.30808-6/723162784_36309187075393041_2142427636530830052_n.jpg?stp=dst-jpg_tt6&cstp=mx444x960&ctp=s590x590&_nc_cat=105&ccb=1-7&_nc_sid=aa7b47&_nc_ohc=Jr_KI96VzGUQ7kNvwFgqzNs&_nc_oc=AdoSgdSVnjQ3oGREseLDomF1Bx8P5UCzJLvdMr6JYPhqZ2McJ3NwfELbMQXjcSx9mHa7A3C7NqD0AQEUIn1Ev9HK&_nc_zt=23&_nc_ht=scontent-itm1-1.xx&_nc_gid=332bV5GLE-z9TXi2eJqOVQ&_nc_ss=7b2a8&oh=00_Af_SASABHtGzeyAooEezCkZPepEL46YR7X-RNAa8zj8xsA&oe=6A32EDA7","status":"published","featured":false,"tags":[],"reading_time":2,"published_at":"2026-06-12T21:11:19.611Z","updated_at":"2026-06-13T07:07:34.625Z","author":{"id":1,"name":"Hoa Nguyen","slug":"hoa-nguyen","avatar":"https://www.facebook.com/photo/?fbid=3655192491395759&set=a.1389817547933276","bio":"Software engineer and writer. Passionate about web technologies, Japanese language, and building things.","twitter":"hoankcoder","github":"hoank","website":"https://ikagi.site"},"categories":[{"id":7,"title":"PMP","slug":"pmp","color":"#0d0e45"}],"seo":{"title":"","description":"","og_image":null}},{"id":8,"title":"Draft: Deploying Next.js to Vercel with Edge Middleware","slug":"deploying-nextjs-vercel-edge-middleware","excerpt":"A draft walkthrough of deploying a full-stack Next.js app with proxy/middleware to Vercel.","cover_image":"","status":"published","featured":true,"tags":["nextjs","vercel","deployment"],"reading_time":1,"published_at":"2026-05-22T14:25:11.849Z","updated_at":"2026-05-22T14:25:11.912Z","author":{"id":3,"name":"Linh Pham","slug":"linh-pham","avatar":"https://ui-avatars.com/api/?name=Linh+Pham&background=10b981&color=fff","bio":"Full-stack developer, DevOps enthusiast. Building scalable systems and sharing knowledge.","twitter":null,"github":"linhpham","website":"https://linhpham.dev"},"categories":[{"id":1,"title":"Technology","slug":"technology","color":"#6366f1"},{"id":4,"title":"Dev Log","slug":"dev-log","color":"#3b82f6"},{"id":3,"title":"Learning","slug":"learning","color":"#10b981"}],"seo":{"title":"","description":"","og_image":null}},{"id":5,"title":"Atomic Habits — Key Takeaways","slug":"atomic-habits-key-takeaways","excerpt":"The most impactful ideas from James Clear's Atomic Habits and how I've applied them over the past year.","cover_image":"https://images.unsplash.com/photo-1512820790803-83ca734da794?w=1200&auto=format&fit=crop","status":"published","featured":false,"tags":["books","habits","self-improvement"],"reading_time":4,"published_at":"2026-05-20T04:09:08.465Z","updated_at":"2026-05-22T00:08:32.199Z","author":{"id":1,"name":"Hoa Nguyen","slug":"hoa-nguyen","avatar":"https://www.facebook.com/photo/?fbid=3655192491395759&set=a.1389817547933276","bio":"Software engineer and writer. Passionate about web technologies, Japanese language, and building things.","twitter":"hoankcoder","github":"hoank","website":"https://ikagi.site"},"categories":[{"id":5,"title":"Books","slug":"books","color":"#ec4899"},{"id":2,"title":"Life","slug":"life","color":"#f59e0b"}],"seo":{"title":"Atomic Habits — Key Takeaways and How I Applied Them","description":"The most important ideas from Atomic Habits by James Clear and practical ways to apply the four laws of behavior change.","og_image":null}},{"id":2,"title":"Giải thích React Server Components bằng tiếng Việt","slug":"giai-thich-react-server-components","excerpt":"Server Components thay đổi cách chúng ta nghĩ về rendering. Bài này giải thích khái niệm cốt lõi một cách đơn giản nhất.","cover_image":"https://images.unsplash.com/photo-1633356122102-3fe601e05bd2?w=1200&auto=format&fit=crop","status":"published","featured":true,"tags":["react","nextjs","server-components"],"reading_time":5,"published_at":"2026-05-19T22:39:54.119Z","updated_at":"2026-05-22T00:08:28.881Z","author":{"id":1,"name":"Hoa Nguyen","slug":"hoa-nguyen","avatar":"https://www.facebook.com/photo/?fbid=3655192491395759&set=a.1389817547933276","bio":"Software engineer and writer. Passionate about web technologies, Japanese language, and building things.","twitter":"hoankcoder","github":"hoank","website":"https://ikagi.site"},"categories":[{"id":1,"title":"Technology","slug":"technology","color":"#6366f1"},{"id":3,"title":"Learning","slug":"learning","color":"#10b981"}],"seo":{"title":"React Server Components — Giải thích đơn giản","description":"Hiểu React Server Components qua ví dụ thực tế. So sánh với Client Components và khi nào nên dùng cái nào.","og_image":null}},{"id":6,"title":"日本語学習 — 6 tháng từ N5 lên N3 Edited","slug":"japanese-learning-6-months-n5-to-n3","excerpt":"Hành trình học tiếng Nhật từ N5 lên N3 trong 6 tháng. Phương pháp, tài nguyên, và những bài học rút ra.","cover_image":"https://images.unsplash.com/photo-1528360983277-13d401cdc186?w=1200&auto=format&fit=crop","status":"published","featured":false,"tags":["japanese","language-learning","jlpt","study"],"reading_time":1,"published_at":"2026-05-19T01:25:39.778Z","updated_at":"2026-05-22T14:25:33.491Z","author":{"id":1,"name":"Hoa Nguyen","slug":"hoa-nguyen","avatar":"https://www.facebook.com/photo/?fbid=3655192491395759&set=a.1389817547933276","bio":"Software engineer and writer. Passionate about web technologies, Japanese language, and building things.","twitter":"hoankcoder","github":"hoank","website":"https://ikagi.site"},"categories":[{"id":6,"title":"Japanese","slug":"japanese","color":"#ef4444"},{"id":3,"title":"Learning","slug":"learning","color":"#10b981"}],"seo":{"title":"6 tháng từ N5 lên N3 — Phương pháp học tiếng Nhật hiệu quả","description":"Chia sẻ phương pháp, tài nguyên và lịch học giúp đạt N3 tiếng Nhật chỉ trong 6 tháng từ đầu.","og_image":null}},{"id":1,"title":"Building a Blog CMS with Next.js 15 and Prisma","slug":"building-blog-cms-nextjs-prisma","excerpt":"A practical guide to replacing a Laravel CMS with a modern Next.js full-stack solution using Prisma and Neon PostgreSQL.","cover_image":"https://images.unsplash.com/photo-1555066931-4365d14bab8c?w=1200&auto=format&fit=crop","status":"published","featured":true,"tags":["nextjs","prisma","typescript","cms"],"reading_time":6,"published_at":"2026-05-18T18:26:19.887Z","updated_at":"2026-05-22T00:08:27.749Z","author":{"id":1,"name":"Hoa Nguyen","slug":"hoa-nguyen","avatar":"https://www.facebook.com/photo/?fbid=3655192491395759&set=a.1389817547933276","bio":"Software engineer and writer. Passionate about web technologies, Japanese language, and building things.","twitter":"hoankcoder","github":"hoank","website":"https://ikagi.site"},"categories":[{"id":1,"title":"Technology","slug":"technology","color":"#6366f1"},{"id":4,"title":"Dev Log","slug":"dev-log","color":"#3b82f6"}],"seo":{"title":"Building a Blog CMS with Next.js 15 and Prisma","description":"Learn how to build a full-stack CMS using Next.js 15, Prisma, Neon PostgreSQL, and Cloudflare R2.","og_image":null}},{"id":3,"title":"My Productivity System in 2026","slug":"productivity-system-2026","excerpt":"After years of experimenting, I've settled on a simple system: weekly reviews, daily priorities, and a single trusted capture tool.","cover_image":"https://images.unsplash.com/photo-1484480974693-6ca0a78fb36b?w=1200&auto=format&fit=crop","status":"published","featured":false,"tags":["productivity","habits","life"],"reading_time":4,"published_at":"2026-05-15T17:40:26.357Z","updated_at":"2026-05-22T00:08:29.974Z","author":{"id":1,"name":"Hoa Nguyen","slug":"hoa-nguyen","avatar":"https://www.facebook.com/photo/?fbid=3655192491395759&set=a.1389817547933276","bio":"Software engineer and writer. Passionate about web technologies, Japanese language, and building things.","twitter":"hoankcoder","github":"hoank","website":"https://ikagi.site"},"categories":[{"id":2,"title":"Life","slug":"life","color":"#f59e0b"},{"id":3,"title":"Learning","slug":"learning","color":"#10b981"}],"seo":{"title":"My Productivity System in 2026","description":"A simple and sustainable productivity system built around weekly reviews, daily priorities, and frictionless capture.","og_image":null}},{"id":4,"title":"PostgreSQL Full-Text Search vs iLIKE — When to Use Which","slug":"postgresql-full-text-search-vs-ilike","excerpt":"iLIKE is simple but slow on large tables. Full-text search is powerful but complex. Here's a practical guide to choosing the right one.","cover_image":"https://images.unsplash.com/photo-1558494949-ef010cbdcc31?w=1200&auto=format&fit=crop","status":"published","featured":false,"tags":["postgresql","database","search","backend"],"reading_time":5,"published_at":"2026-05-03T05:21:50.178Z","updated_at":"2026-05-22T00:08:31.087Z","author":{"id":3,"name":"Linh Pham","slug":"linh-pham","avatar":"https://ui-avatars.com/api/?name=Linh+Pham&background=10b981&color=fff","bio":"Full-stack developer, DevOps enthusiast. Building scalable systems and sharing knowledge.","twitter":null,"github":"linhpham","website":"https://linhpham.dev"},"categories":[{"id":1,"title":"Technology","slug":"technology","color":"#6366f1"},{"id":4,"title":"Dev Log","slug":"dev-log","color":"#3b82f6"}],"seo":{"title":"PostgreSQL Full-Text Search vs iLIKE","description":"Practical guide to choosing between iLIKE and full-text search in PostgreSQL based on your scale and requirements.","og_image":null}},{"id":7,"title":"Understanding TypeScript Generics with Real Examples","slug":"typescript-generics-real-examples","excerpt":"Generics are one of TypeScript's most powerful features. This post walks through real-world use cases that make the concept click.","cover_image":"https://images.unsplash.com/photo-1516116216624-53e697fedbea?w=1200&auto=format&fit=crop","status":"published","featured":false,"tags":["typescript","generics","programming"],"reading_time":5,"published_at":"2026-04-30T22:34:19.487Z","updated_at":"2026-05-22T00:08:34.395Z","author":{"id":2,"name":"Minh Tran","slug":"minh-tran","avatar":"https://ui-avatars.com/api/?name=Minh+Tran&background=f59e0b&color=fff","bio":"Frontend developer specializing in React and Next.js. Loves clean code and great UX.","twitter":"minhtrandev","github":"minhtran","website":null},"categories":[{"id":1,"title":"Technology","slug":"technology","color":"#6366f1"},{"id":3,"title":"Learning","slug":"learning","color":"#10b981"}],"seo":{"title":"TypeScript Generics Explained with Real Examples","description":"Learn TypeScript generics through practical examples: identity functions, API wrappers, and constrained generics.","og_image":null}}],"meta":{"current_page":1,"last_page":1,"per_page":12,"total":9}}