Bir çox developerin tanış olduğu bir vəziyyət var: bir layihəyə həvəslə başlayırsan, bir neçə gün kod yazırsan, sonra başqa işlər çıxır və layihə yarımçıq qalır. Elə məhz bu problemi həll etmək üçün yola çıxan bir tərtibatçı, "Demolishing My Stack of Unfinished Projects" adlı seriyası çərçivəsində 4-cü həftədə Secret Chat layihəsini tamamlayıb və onu CodeniChat adlı istehsalata hazır tətbiqə çevirib.
Bir həftəlik sprint: addım-addım irəliləyiş
Layihəyə başlayarkən məqsəd sadə idi: real vaxtda işləyən, çoxlu otaqları dəstəkləyən, istifadəçi dəvəti və şifrə sıfırlama imkanı olan təhlükəsiz bir söhbət tətbiqi qurmaq. Bunun üçün texnoloji stack olaraq Next.js 15, React 19, TypeScript, Tailwind CSS, shadcn/ui, Neon Database (serverless PostgreSQL), Drizzle ORM və NextAuth.js seçilib. Real-vaxt xüsusiyyətləri üçün isə WebSocket yerinə Server-Sent Events (SSE) istifadə olunub.
7 günlük sprintdə hər günə bir mərhələ planlanıb. İlk gün database sxemi və Drizzle ORM ilə əsas cədvəllər yaradılıb. İkinci gün NextAuth.js ilə tam autentifikasiya sistemi, o cümlədən qeydiyyat, giriş və şifrə sıfırlama axını qurulub. Üçüncü gün real-vaxt söhbət nüvəsi — mesaj qruplaşdırma, avtomatik sürüşdürmə və otaq idarəetməsi əlavə edilib. Dördüncü gün istifadəçi dəvət sistemi — seçim üçün filtr, gözləyən dəvətlər, qəbul/imtina düymələri hazırlanıb. Beşinci gün UI/UX cilalanması, brendinq və responsive dizayn tətbiq olunub. Altıncı gün Next.js 13'dən 15'ə keçid həyata keçirilib, bu da React 19 yeniləməsi və daha sərt tip yoxlamaları deməkdir. Yeddinci gün isə Vercel'ə deploy və son testlər aparılıb.
Qarşılaşılan çətinliklər və həll yolları
Ən böyük problem Next.js 15'ə keçid zamanı yaşanıb — API routelarında Promise dəstəyi tələb olunduğu üçün bütün parametrlər Promise<{ roomId: string }> formatına keçirilməli olub. Həmçinin useSearchParams() istifadə edən komponentlər Suspense ilə bükülüb. Vercel deploy zamanı peer dependency conflictləri yaranıb — həll üçün npm install --legacy-peer-deps istifadə olunub. Real-vaxt mesaj yeniləmələri üçün xüsusi hook yazılıb ki, bu da yenidən qoşulma və mesaj bufferləməni idarə edir.
Nəticə: yarımçıq layihədən istifadəyə hazır tətbiqə
Bir həftəlik gərgin iş nəticəsində CodeniChat tam funksional bir tətbiqə çevrilib. Xüsusiyyətlərə ağıllı mesaj qruplaşdırma (eyni istifadəçinin ardıcıl mesajları vizual olaraq birləşdirilir), ağıllı avtomatik sürüşdürmə (oxucu köhnə mesajlara baxırsa, səhifə yerindən tərpənmir), otaq dəvət sistemi, şifrə sıfırlama axını və tam responsive interfeys daxildir. Layihənin mənbə kodu GitHub'da açıq mövcuddur, canlı demo isə Vercel üzərində yayımlanıb.
Bu hekayə bir daha göstərir ki, hətta ən yarımçıq layihə belə düzgün planlama, müasir alətlər və gündəlik kiçik addımlarla tamamlanıb istifadəyə verilə bilər. Developer özü də qeyd edir: "Hər bitmiş layihə bir vaxtlar yarımçıq idi. Əsas odur ki, onu idarəolunan hissələrə bölüb hər gün bir addım atasan."


