Asosiy kontentga o‘tish

Maqolalar

Maqola · 2026-08-14 · ~2 daqiqa o‘qiladi

Bu sayt qanday qurilgan: Django + HTMX, SPA'siz

#django #architecture #backend

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.