45 Commits

Author SHA1 Message Date
achmad c62ac1da0b test: add comprehensive unit tests for all components, API routes, and lib functions 2026-05-31 17:20:01 +07:00
achmad 963ff5affc fix: fall back to date_created when published_at is null so every article shows a date 2026-05-31 17:06:43 +07:00
achmad 95aac628e1 fix: add secondary sort by date_created so articles without published_at show up in listings 2026-05-31 17:01:25 +07:00
achmad 6bff34cbc7 feat: add prod compose 2026-05-31 16:54:22 +07:00
achmad 4befb572a3 fix: fetch 13 articles so Latest grid shows 12 after hero filter; hide Load More when all articles already loaded 2026-05-31 16:46:31 +07:00
achmad 75d4da380e fix: truly center logo on mobile using absolute positioning 2026-05-29 03:33:50 +07:00
achmad 73a5596857 feat: mobile hamburger menu with full-screen overlay for categories 2026-05-29 03:24:18 +07:00
achmad c4727d87aa chore: remove duplicate revalidate-all script 2026-05-29 02:50:49 +07:00
achmad 488ad051fb feat: revalidate-all fetches all articles; add revalidate-all script; fix HOLOSTARS image 2026-05-29 02:50:25 +07:00
achmad a2fba503e3 fix: is_featured 0 rendering as text, cast to boolean 2026-05-29 02:24:11 +07:00
achmad 953a222b35 feat: add type=all to revalidate all category pages 2026-05-29 02:10:49 +07:00
achmad 23d2d31a27 chore: add revalidation script 2026-05-29 01:53:35 +07:00
achmad 45f156b569 chore: add deploy script for building and pushing to registry 2026-05-29 01:32:32 +07:00
achmad 8f725d5e26 feat: add image proxy route to serve Directus assets with auth token 2026-05-29 01:31:54 +07:00
achmad 69a5f5f9f5 chore: remove redundant NEXT_PUBLIC vars from runtime env 2026-05-29 01:23:13 +07:00
achmad 935674f943 chore: remove redundant NEXT_PUBLIC vars from runtime env (baked at build time) 2026-05-29 00:48:18 +07:00
achmad ac4a0f0e8b fix: pass env vars as build args for static generation, remove debug logging 2026-05-29 00:45:37 +07:00
achmad fe89de4d9e chore: remove deploy workflow, will deploy manually 2026-05-29 00:06:07 +07:00
achmad 5f7087cbbe ci: add .env creation from secrets in deploy workflow 2026-05-29 00:03:58 +07:00
achmad 34aa8c5a67 ci: use Docker socket for direct build and deploy 2026-05-29 00:01:08 +07:00
achmad 3b89b363b3 ci: deploy via SSH to host with git checkout and Docker build 2026-05-28 23:58:15 +07:00
achmad ae4472ef16 ci: add compose.yml and update deploy workflow with SSH to host 2026-05-28 23:53:43 +07:00
achmad 5ed8cb4c47 chore: add opencode MCP config for Directus 2026-05-28 23:36:01 +07:00
achmad cd5a7d31c6 fix: improve search to only match title and excerpt, not raw HTML content 2026-05-28 23:35:15 +07:00
achmad c4ed4a3615 fix: category filter by UUID and remove nav_categories from site_settings query 2026-05-28 23:15:53 +07:00
achmad bb0b2ac961 chore: verified production build and all checks pass 2026-05-28 22:35:54 +07:00
achmad ffa8b73f4d ci: Docker build and Gitea Actions deploy workflow 2026-05-28 22:34:30 +07:00
achmad 2293695270 feat: dynamic sitemap and robots.txt 2026-05-28 22:33:50 +07:00
achmad e45faa201f feat: revalidate webhook endpoint with tests 2026-05-28 22:33:25 +07:00
achmad e748725522 feat: Cmd+K search overlay with debounced Directus query 2026-05-28 22:32:44 +07:00
achmad 9e01d9b754 feat: category listing page with load-more pagination 2026-05-28 22:32:06 +07:00
achmad cddde56b49 feat: article detail page with ISR and generateMetadata 2026-05-28 22:31:19 +07:00
achmad 852646e40c feat: ArticleBody renderer and TagRow 2026-05-28 22:30:32 +07:00
achmad cffc2808b5 feat: ArticleGrid and Homepage 2026-05-28 22:30:17 +07:00
achmad 1de59aba84 feat: HeroSection component 2026-05-28 22:29:36 +07:00
achmad 50a4e63e2a feat: ArticleCard component 2026-05-28 22:29:19 +07:00
achmad 6ba2c8b932 feat: root layout with fonts, Navbar, Footer 2026-05-28 22:28:08 +07:00
achmad ab7bbd3805 feat: Footer component 2026-05-28 22:26:50 +07:00
achmad dcae4824c6 feat: Navbar with server-fetched categories 2026-05-28 22:26:34 +07:00
achmad 1ab153c94f feat: Directus SDK client with typed helpers 2026-05-28 22:26:13 +07:00
achmad 7ffc6cbad6 feat: TypeScript types for Directus collections 2026-05-28 22:25:27 +07:00
achmad 00e85b5c31 chore: add Vitest + Testing Library test infrastructure 2026-05-28 22:25:08 +07:00
achmad 6b4c8397d8 feat: add design system tokens to Tailwind 2026-05-28 22:24:49 +07:00
achmad a24936d9d7 chore: bootstrap Next.js 14 with Directus deps and config 2026-05-28 22:24:27 +07:00
achmad d4d65b1dff chore: add brainstorming docs and design reference 2026-05-28 22:20:29 +07:00