dlguswo.com
Service
- Engine
- Astro 5, fully static. Nothing is rendered at request time.
- Hosting
- Cloudflare Pages.
- Deploy
- Push to main, CI builds and ships. There is no deploy button.
- Domain
- dlguswo.com. Cloudflare handles DNS only (grey cloud), so Seoul reaches the origin directly.
- Canonical
- leehyunjae.info and the www hosts are 301'd to the same path on dlguswo.com.
- Cache
- Hashed assets and fonts are immutable for a year. HTML revalidates every time.
Content
- Volume
- 253 posts, since 2025.03.
- Format
- Markdown in content collections. Title, date and category live in frontmatter.
- Routing
- Two URLs per post: /posts/{id}/ and /category/{category}/{id}/. The second keeps the middle pane on that category.
- Markdown
- Eight remark plugins on top of the default: line breaks, CJK emphasis rules, callouts, songs, YouTube embeds, placeholder cleanup and external links.
- Code
- Shiki, min-light and min-dark. Near monochrome either way.
- Categories
-
- Diary 199
- Reading 17
- Music 37
Payload
- JavaScript
- React 19 and sixteen active React Bits components. Turn JavaScript off and the post still reads.
- CSS
- Shared site styles and component bundles, cached between pages.
- Fonts
- Pretendard for body, Asta Sans for captions and numbers, IBM Plex Mono for code and for this sheet. Reading posts add BookkMyungjo Bold, subset to the glyphs those posts actually use. All self-hosted woff2.
- Logo
- TIKKEUL set in Logam and traced to outline SVG. No font file is shipped for it.
- Images
- Uploads are converted to AVIF (1400px max, quality 45). Animations become webp.
- Social cards
- One OG image per post, made at build time. Satori draws the SVG, resvg bakes a 1200x630 PNG.
Backend
- Database
- Cloudflare D1, nine tables: users, sessions, comments, likes, post likes, comment likes, notifications, plus Google Photos and Google Calendar tokens.
- Functions
- Twelve Pages Functions under /api, serving comments, likes, notifications, stats and uploads.
- Auth
- GitHub and Google OAuth, wired by hand. No third-party widget, so no third-party script.
- Comments
- Sign-in required. Likes are counted separately on posts and on comments.
Interface
- Layout
- Three panes: menu, list, post. Each one scrolls on its own.
- Corners
- Square. border-radius is 0 everywhere, admin included.
- Color
- Only categories carry color. Everything else is monochrome.
- Dark
- Follows the system setting and toggles by hand. Category colors go neon in the dark.
- Transitions
- Opening a post swaps the post pane only, through View Transitions. Browsers without it just navigate.
- Feeds
- RSS at /rss.xml, sitemap at /sitemap-index.xml.