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 |
|