Maqola · 2026-08-14 · ~2 daqiqa o‘qiladi
Bu sayt qanday qurilgan: Django + HTMX, SPA'siz
Mundarija
Bu sayt — oddiy portfolio emas: uzoq muddatda maqolalar, darsliklar, security lab'lar va kurslar yig‘iladigan platformaning poydevori. Shunday bo‘lsa ham u React'siz, SPA'siz, hatto Node'siz qurilgan. Bu maqolada — nega.
Asosiy qaror: kontent-sayt hujjatdir, ilova emas#
Saytning birinchi 2 yildagi vazifasi — kontent va SEO. Kontent-sayt bu 90% hujjat, 10% interaktivlik. Hujjatlar uchun SPA — noto‘g‘ri asbob: yo SEO'ni yo‘qotasiz, yo SSR qatlami (Next.js) bilan murakkablikni ikki baravar oshirasiz.
Server-rendered HTML esa bu masalani umuman tug‘dirmaydi: Google tayyor HTML'ni o‘qiydi, birinchi bayt tez keladi, JavaScript deyarli yo‘q.
Stack#
- Django 5.2 LTS — modulli monolit. Auth, ORM, migratsiya, admin — hammasi qutidan chiqadi, kelajakdagi kurs-platforma bosqichida ham framework almashtirilmaydi
- Tailwind v4 (standalone CLI) — Node o‘rnatmasdan, bitta binary
- HTMX + Alpine.js — kerak bo‘lganda ozgina interaktivlik
- PostgreSQL — birinchi kundan
- Markdown fayllar — maqolalar DB'da emas, git'da yashaydi
Maqolalar nega DB'da emas#
Yolg‘iz muallif uchun admin-panel — ortiqcha qatlam. Markdown + git esa: versiya tarixi, diff'lar, pull-request orqali tahrir, backup — hammasi bepul. Fayl boshidagi YAML frontmatter kontent modelini beradi:
---
title: "Maqola sarlavhasi"
type: tutorial # article | tutorial | writeup | research
date: 2026-08-14
topics: [django, security]
---
Sayt bu fayllarni o‘qiydi, keshlashtiradi va turlari bo‘yicha filtrlaydi. Yangi "bo‘lim" ochish — yangi sahifa emas, yangi filter.
Modul chegaralari — kelajak uchun#
Kod apps/core, apps/content kabi modullarga bo‘lingan va bitta qoida
bor: modullar bir-birining ichki qismiga to‘g‘ridan-to‘g‘ri murojaat
qilmaydi. Bugungi modul chegarasi — ertangi servis chegarasi: kurs-platforma
yoki lab-orchestrator ajralib chiqqanda bu refactoring emas, ko‘chirish
bo‘ladi.
Xulosa#
Texnologiya tanlovi — imkoniyatlar ro‘yxati emas, trade-off'lar savdosi. Solo-developer uchun eng qimmat resurs — e'tibor; uni ikkita til, ikkita repo va build-pipeline'ga bo‘lib yubormaslik kerak. Django monolit + HTMX shu hisobning natijasi.