- Install posthog-js and @posthog/react packages
- Add PostHogProvider wrapper in main.tsx for both apps
- Configure PostHog with EU instance and 2026-01-30 defaults
- Add environment variables for API key and host
- Update docker-compose.coolify.yml with PostHog build args
- Add view count increment in findOne() and findBySlug() methods
- Create findOneWithoutIncrement() for internal operations
- Update remove(), archive(), and publish() to use findOneWithoutIncrement()
- Prevents view count inflation from admin operations
- Matches live blog view tracking implementation
- Change date format from 'short' to 'long' month names in Macedonian
- Translate 'views' to 'прегледи' across all components
- Translate 'shares' to 'споделувања'
- Translate 'updates' to 'ажурирања'
- Translate 'By' to 'Од' for author attribution
- Translate 'Back to articles' to 'Назад кон вести'
- Translate archive page headers to Macedonian
- Translate auto-scroll button text to Macedonian
- Translate connection status to Macedonian
- Add fallback to 0 for undefined view counts (|| 0)
- Fix duplicate /api/v1 in analytics.ts API calls
- Add STRAPI_PUBLIC_URL env var for public CMS access
- Update strapi.service to use public URL for images instead of localhost
- Images now use https://cms.placebo.mk instead of http://localhost:1337
- Extract slug generation to separate variable before using in DTO
- Convert null description to empty string for excerpt field
- Prevents class-validator from rejecting null values
- Fixes 'slug must be a string type' validation errors
- Add generateSlug() helper to create URL-friendly slugs from titles
- Apply slug fallback in syncArticles() and syncSingleArticle()
- Handles articles created before slug field was added to schema
- Prevents 'slug cannot be null' database constraint errors
- Modify getHeaders() to always return empty object
- Prevents sending invalid Bearer token that causes 401 errors
- Strapi Public role permissions configured for unauthenticated access
- Will allow proper article sync from Strapi to backend
- Remove STRAPI_API_TOKEN environment variable from backend service
- Backend will now make requests to Strapi without Authorization header
- Allows Strapi Public role permissions to work correctly
- Fixes 401 Unauthorized error when syncing articles