Belajar Chi (router dan middleware ringan untuk Go yang dibangun langsung di atas net/http) dari dasar hingga production-grade: pre-requisites skill & setup environment, sejarah & latar belakang, konsep dasar & arsitektur utama, setup & hello world, routing params & patterns, subrouters groups & mounting, middleware & chain, responses JSON & static files, struktur proyek & clean architecture, integrasi database & ORM, configuration & environment, error handling & logging, context timeout & concurrency, autentikasi & otorisasi, security middleware & input hardening, HTTPS reverse proxy & advanced networking, beyond REST websocket & gRPC-gateway, testing & benchmark, observability & monitoring, performance & troubleshooting, fitur stabil terbaru v5.2 & v5.3, production-ready architecture, hingga ekosistem alternatif & refleksi akhir dengan total 23 episode.
Sebelum menyentuh chi, kalian perlu menguasai Go dan net/http, memahami konsep HTTP dan REST, serta memiliki dasar database dan Git. Di episode ini kalian juga menyiapkan toolchain Go, menginstall chi v5, dan memverifikasi instalasi pertama.

Episode ini mengajak kalian menelusuri kelahiran chi tahun 2015, evolusinya dari goji hingga v5.3.x pada 2026, dan filosofi lightweight, idiomatic, serta composable yang membedakannya. Kalian juga melihat masalah routing dan middleware yang diselesaikan chi dibanding pendekatan lain.

Episode ini membedah arsitektur chi dari dalam: chi.NewRouter yang mengembalikan http.Handler, radix tree untuk mencocokkan pola, serta chi.RouteContext yang membawa params dan middleware stack lewat context Go. Kalian juga mengenal komponen utama router dan package middleware bawaan.

Episode ini membangun project chi pertama yang berjalan: membuat router dengan chi.NewRouter, mendaftarkan handler pertama, dan menjalankan server dengan http.ListenAndServe. Kalian juga belajar struktur Handler dan ServeHTTP, serta mengembalikan respons JSON secara manual.

Episode ini membedah sistem routing chi: method routing, path params dengan kurung kurawal, wildcard untuk sisa path, dan regex pattern untuk validasi param. Kalian juga belajar menangani NotFound dan MethodNotAllowed serta urutan matching yang menentukan route mana yang terpilih.

Episode ini mengajarkan cara mengorganisasi route dalam skala besar: subrouter dengan r.Route, group yang berbagi middleware dengan r.Group, dan mount sub-app dengan r.Mount. Kalian juga belajar memisahkan resource router dan menerapkan middleware per subrouter secara selektif.

Episode ini mengupas middleware sebagai fungsi yang membungkus handler: cara menulisnya, mendaftarkannya dengan r.Use, dan merangkainya secara eksplisit dengan middleware.Chain. Kalian juga menjelajahi middleware bawaan chi seperti RequestID, Logger, Recoverer, Compress, dan BasicAuth, termasuk catatan perbaikan open redirect pada RedirectSlashes.

Episode ini fokus pada sisi respons: helper JSON yang rapi, rendering HTML, redirect, dan streaming respons. Kalian juga belajar melayani file statis dengan http.FileServer, menangani upload file, dan menulis custom response writer untuk kasus khusus.

Episode ini membahas cara mengorganisasi project Go yang memakai chi agar bisa tumbuh: memisahkan handler, service, dan repository, menyusun layout internal, menerapkan dependency injection, dan mendefinisikan router sebagai fungsi yang mengembalikan http.Handler untuk kemudahan testing.

Episode ini menyambungkan router chi ke database: pilihan antara pgx, database/sql, GORM, dan sqlc, connection pooling, serta migrasi skema. Kalian juga menerapkan repository pattern dan mengimplementasikan CRUD lengkap di dalam handler berbasis http.Handler.
