List/index — N+1 fix + page-cache mixin
🌐 Web
Update history
The platform evolves every day. Here is the full change history: new features, fixes, and security updates. Download the app
May 2026
Manual page-cache + Cache-Control for BreedDetailView
🌐 Web
Removed the siblings dropdown — 382 <option> tags were taking 25 sec
🌐 Web
Prefetch translations for siblings/categories
🌐 Web
Bypass /api/v1/ads/ via SILKY_INTERCEPT_FUNC
🌐 Web
SILKY_PYTHON_PROFILER via env (toggle without image rebuild)
🌐 Web
/geo/countries/ — .only() against PostGIS PointField overhead
🌐 Web
/ads/ — translations prefetch filtered by locale
🌐 Web
N+1 fixes — /geo/countries/ 233→2 SQL, /ads/ 158→~5 SQL
🌐 Web
LOGIN_URL=/admin/login/ — otherwise redirect to 404
🌐 Web
-90% SQL on /admin/main/wiki_animals/ + /advertisements/
🌐 Web
Django-silk profiler on dev and prod, cleaned every 3 hours
🌐 Web
Restore APK version + date/time on the page
🌐 Web
Page_size 100→20 + pre-generate AVIF thumbnails on upload
🌐 Web
Auto-refresh the feed when changing country in the header
📱 1.2.3
Splash -25% duration (~6s → ~4.5s)
📱 1.2.2
Prefetch content during the splash animation
📱 1.2.1
8 bugs from the bug report + restoring 70 locales
📱 1.2.0
🌐+📱 Web + app
Resume publish on timeout — without duplicate listings
📱 1.1.2
Dio timeout 90s + AVIF speed=8 + detailed errors
📱 1.1.1
🌐+📱 Web + app
AVIF-only — convert on upload, 15 MB limit, i18n
📱 1.0.3
🌐+📱 Web + app
AVIF + WebP picture-tag in the listing gallery
🌐 Web
Show APK version + time on the /download/ page
🌐 Web
Photo stretching in cards — aspect-ratio 4:3 everywhere
📱 1.0.3
🌐+📱 Web + app
Migrating auth from DRF Token to JWT (simplejwt)
📱 1.0.1
AVIF + WebP fallback via <picture> (~10% smaller vs WebP)
🌐 Web
Removed multi-line {# #} in _ad_card.html (again)
🌐 Web
Sorl-thumbnail WebP — cards -85% in size
🌐 Web
Is_above_fold for the first 4 cards (LCP)
🌐 Web
Removed multi-line {# #} comments — they were leaking as text into HTML
🌐 Web
Mobile lighthouse — lazy + eager LCP + CSS bundle + fonts media-trick
🌐 Web
Breed queryset = none() by default (1109 → 0 options)
🌐 Web
_BreedChoiceField — prefetch translations (8s → ~2s cold)
🌐 Web
Compilemessages — added DB_PASSWORD=dummy in build env
🌐 Web
Compilemessages in Docker image, not in K8s initContainer
🌐 Web
Theme switcher — one clickable sidebar item with cycling
🌐 Web
Theme switcher in sidebar — 3 menu items instead of a cramped pill
🌐 Web
Deploy-mobile — correct label selector + Running phase filter
📱 1.0.1
STATICFILES_DIRS includes BaranGlobal/static + collectstatic --clear
🌐 Web
Build-mobile + deploy-mobile stages — APK through CI/CD
📱 1.0.1
Sidebar theme switcher — bigger buttons, fix dockerignore + scroll
🌐 Web
Sidebar theme switcher — bigger buttons, fix dockerignore + scroll
📱 1.0.0
Theme switcher in the sidebar + track source static
🌐 Web
Removed queueing_lock from repair_animal_image
🌐 Web
Added install uv + venv in builder stage
🌐 Web
Security fix: infrastructure
🌐 Web
Security fix: platform
🌐 Web
Project description on /download/ via parler + auto-deploy
🌐 Web
/download/ page with the mobile app APK
🌐 Web
OOM, probe redirects, nginx buffering + sitemap/robots
🌐 Web
April 2026
Visible_queryset(None) returns all active ads
🌐 Web
Manual page cache in Redis (Phase 2.5) — TTFB 1.3s → 20ms
🌐 Web
SSR on AdvertisementListCache + prefetch ext_* (138 → 36 SQL)
🌐 Web
Protection against Redis transient disconnect (Connection reset by peer)
🌐 Web
WebP image pipeline + breed autocomplete (PSI -1.5MB, DOM -1100)
🌐 Web
Self-host fonts + bundle.css actually in git
🌐 Web
Self-host fonts + bundle CSS + a11y — PSI 73 → ~88
🌐 Web
fetchpriority=high + width/height for the first 4 cards
🌐 Web
Security fix: caching
🌐 Web
Strategy 2 — public 60s cache + 5-min bypass for the author
🌐 Web