- •5 mins reading timeAuthoring Custom Elements in a Next.js AppThe Intersection of Two Different EcosystemSince its creation, my blog has only been a React-exclusive app, which means it only renders a React component. How I store the blog post has changed a lot—from static HTML in a hosted database to markdown files in the same git repository—but the rendering engine stays largely the same. Unlike most React powered blog, I don't use MDX. I write plain markdown files, but internally I call it MDC. Read More
- •10+ mins reading timeDark Mode on the WebUX, DX and Technical Exploration For Inclusive Dark ModeFor some people, dark mode is aesthetically more pleasing. On the other hand, there's a group of people (including me) that likes to read at night under dim lighting, or even in total darkness. Having the option to use dark theme reduces strain in the eyes and makes it more pleasant to read at. I personally doesn't care that much about the aesthetic aspect of the dark mode. I think of it as an accessibility feature. Read More
- •10+ mins reading timeEnhance TypeScript Code Samples with Compiler DiagnosticBuild-time Type Annotation and Syntax Highlighting using Twoslash and ShikiThe main reason I call my blog project Paper is because I want it to be a pleasant reading platform. I enjoy my kindle but reading from real book and actual paper feels like a better experience for me. When I built my blog platform, I kept thinking how to improve digital reading experience to compensate for lack of paper-like feeling for both hand and eyes. Read More
- •10+ mins reading timeBuilding progressively-enhanced iPadOS hover style in webUsing framer-motion for Animation & Transition
- •6 mins reading timeShare latest post automatically in Twitter using GitHub ActionsUtilizing GitHub Actions Path Filter and CLI Composition
- •2 mins reading timeServerless Scraper & Notification Service using GitHub ActionsScheduled Workflow and Git Commit as Database Write
- •1 mins reading time5 yearsA Glimpse Into My Past, Present, and Future
- •9 mins reading timeTypeScript MadnessUnconventional TypeScript Usage in the New Traveloka Web Framework
- •8 mins reading timeThe Invisible FrameworkHow I Built the Traveloka Latest Web Framework
- •5 mins reading timeDeploying Microservices using Now v2How It Went From 1 Monolith to 6 Microservices & 4 Different Languages
- •7 mins reading timeReimplement webpack raw-loader as babel-plugin-macrosCompile-Time File-System Access Without a Module Bundler
- •3 mins reading timeReact Router and Flash StateOld Technique in a Modern Tech Stack
- •6 mins reading timeEasy Authentication in Express using Passport
- •4 mins reading timePromise: The Less Interesting Part
- •3 mins reading timePrevent Express from Crashing because of MongoDB Connection Problem
- •4 mins reading timeDesigning New Syntax Theme for AtomEncoding Aesthetic, Clarity, Consistency, and Focus in a Syntax Theme
- •8 mins reading timeFrom Express and React to NextRefactoring My Blog Rendering Engine to Leverage Proven Solution
- •2 mins reading timeGithub Gist inside Rich Text EditorDealing With Iframe and Browser Quirks
- •3 mins reading timeThe Stack of Paper
- •1 mins reading timeHello, PaperBuilding a Custom Blog Platform From Scratch