56,966 blogs · [ { "id": "01a087e7-e097-71d2-84e3-cba03eda2a79", "title": "The Great Mental Models - Volume 2 - Reading Journal", "url": "https://sung.codes/blog/2026/the-great-mental-models---volume-2---reading-journal", "published_at": "2026-06-18T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720b1ba2f13", "title": "The Great Mental Models - Volume 1 - Reading Journal", "url": "https://sung.codes/blog/2026/the-great-mental-models---volume-1---reading-journal", "published_at": "2026-03-27T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720b295f531", "title": "Test post after nextjs v12 to v16 migration", "url": "https://sung.codes/blog/2026/test-post-after-nextjs-v12-to-v16-migration", "published_at": "2026-02-15T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720b34bc849", "title": "How to create a new INK project", "url": "https://sung.codes/blog/2022/how-to-create-a-new-ink-project", "published_at": "2022-06-19T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720b4176221", "title": "Visual Studio Code shortcut showing Unknown on Ubuntu", "url": "https://sung.codes/blog/2021/visual-studio-code-shortcut-showing-unknown", "published_at": "2021-11-22T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720b4f9a2cb", "title": "Next.js local postcss plugin", "url": "https://sung.codes/blog/2021/nextjs-local-postcss-plugin", "published_at": "2021-11-11T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720b5000a9a", "title": "The Great Next.js Migration", "url": "https://sung.codes/blog/2021/the-great-nextjs-migration", "published_at": "2021-10-18T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720b50d93a9", "title": "VSCode oembed link update with RegEx", "url": "https://sung.codes/blog/2021/vscode-oembed-link-update-with-regex", "published_at": "2021-08-24T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720b5fb642b", "title": "Copying MDX Frontmatter image to Public folder in Nextjs", "url": "https://sung.codes/blog/2021/copying-mdx-frontmatter-image-to-public-folder-in-nextjs", "published_at": "2021-08-11T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720b6b1b46e", "title": "Moonlander Oryx configuration on Ubuntu", "url": "https://sung.codes/blog/2021/moonlander-oryx-configuration-on-ubuntu", "published_at": "2021-08-11T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720b77279a9", "title": "CSS variable is not assinable in TypeScript React", "url": "https://sung.codes/blog/2021/css-variable-is-not-assinable-in-typescript-react", "published_at": "2021-07-20T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720b7f5901d", "title": "Making a better selectable nav links", "url": "https://sung.codes/blog/2021/making-a-better-selectable-nav-links", "published_at": "2021-07-02T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720b8955632", "title": "How to add Tailwind CSS for Docusaurus", "url": "https://sung.codes/blog/2021/how-to-add-tailwind-css-for-docusaurus", "published_at": "2021-06-22T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720b89f7d63", "title": "GitHub Universe Gradient Border Button", "url": "https://sung.codes/blog/2021/github-universe-gradient-border-button", "published_at": "2021-06-11T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720b9953297", "title": "GitHub Universe Gradient Border Card", "url": "https://sung.codes/blog/2021/github-universe-gradient-border-card", "published_at": "2021-06-11T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720ba94e0e4", "title": "A hack for missing @at-root for Tailwind CSS Plugin", "url": "https://sung.codes/blog/2021/a-hack-for-missing-at-root-for-tailwind-css-plugin", "published_at": "2021-03-05T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720bb1b2306", "title": "Adding PostCSS-Easings to Extend Tailwind CSS Transition Timing Functions", "url": "https://sung.codes/blog/2021/adding-post-css-easings-to-extend-tailwind-css-transition-timing-functions", "published_at": "2021-02-12T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720bbcd9bec", "title": "Adding Tailwind CSS to React Snowpack Project", "url": "https://sung.codes/blog/2021/adding-tailwind-css-to-react-snowpack-project", "published_at": "2021-01-28T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720bbe99efd", "title": "Tailwind Preset vs Plugin", "url": "https://sung.codes/blog/2021/tailwind-preset-vs-plugin", "published_at": "2021-01-26T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720bca08192", "title": "Linux screen resolution script", "url": "https://sung.codes/blog/2021/linux-screen-resolution-script", "published_at": "2021-01-21T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720bd248fc1", "title": "Docusaurus Alpha TypeScript with Husky", "url": "https://sung.codes/blog/2020/docusaurus-alpha-type-script-with-husky", "published_at": "2020-10-29T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720be1e98f9", "title": "Notes on the Dip by Seth Godin", "url": "https://sung.codes/blog/2020/notes-on-the-dip-by-seth-godin", "published_at": "2020-10-12T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720be280c65", "title": "Tailwind CSS - Fluid Width Video", "url": "https://sung.codes/blog/2020/tailwind-css-fluid-width-video", "published_at": "2020-10-10T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720be8a93b7", "title": "CSS Gradient Text Note", "url": "https://sung.codes/blog/2020/css-gradient-text-note", "published_at": "2020-10-01T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720bf3acf41", "title": "Prerequisite to understanding TypeScript Omit in React TypeScript Cheatsheet", "url": "https://sung.codes/blog/2020/prerequisite-to-understand-type-script-omit-in-react-type-script-cheatsheet", "published_at": "2020-09-21T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720bfef8213", "title": "Check out repository before using GitHub @actions/glob", "url": "https://sung.codes/blog/2020/check-out-repository-before-using-git-hub-actions-glob", "published_at": "2020-09-17T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720c0d3ebb6", "title": "Namespace separator syntax using gatsby-plugin-react-i18next", "url": "https://sung.codes/blog/2020/namespace-separator-syntax-using-gatsby-plugin-react-i18next", "published_at": "2020-09-09T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720c1c2e774", "title": "Ubuntu - IBus not working on Visual Studio Code", "url": "https://sung.codes/blog/2020/i-bus-not-working-on-visual-studio-code", "published_at": "2020-09-03T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720c1d01af0", "title": "updated-cra-template-tailwindcss-typescript-to-tailwind-version-1-6-0", "url": "https://sung.codes/blog/2020/updated-cra-template-tailwindcss-typescript-to-tailwind-version-1-6-0", "published_at": "2020-07-29T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720c246a0c7", "title": "Snowpack - The requested module '/web_modules/recoil.js' does not provide an export named 'RecoilRoot'", "url": "https://sung.codes/blog/2020/snowpack-the-requested-module-web-modules-recoil-js-does-not-provide-an-export-named-recoil-root", "published_at": "2020-07-07T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720c33ba183", "title": "Tampermonkey script to show anchor tag links on dev.to articles", "url": "https://sung.codes/blog/2020/tamper-monkey-script-to-show-anchor-tag-links-on-dev-to-articles", "published_at": "2020-07-02T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720c3d52f8c", "title": "How to create a custom Material UI theme for Gatsby", "url": "https://sung.codes/blog/2020/how-to-create-a-custom-material-ui-theme-for-gatsby", "published_at": "2020-06-25T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720c4152fe5", "title": "Svelte tutorial note", "url": "https://sung.codes/blog/2020/svelte-tutorial-note", "published_at": "2020-06-20T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720c4a6d848", "title": "Korean input on Kubuntu 20.04", "url": "https://sung.codes/blog/2020/korean-input-on-kubuntu-20-04", "published_at": "2020-06-18T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720c4ad38ec", "title": "Youtube iFrame API - YT.Player is not a constructor", "url": "https://sung.codes/blog/2020/youtube-i-frame-api-yt-player-is-not-a-constructor", "published_at": "2020-06-08T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720c4ef1c2c", "title": "Client Side Routing in Gatsby from Root", "url": "https://sung.codes/blog/2020/client-side-routing-in-gatsby-from-root", "published_at": "2020-05-02T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720c578df80", "title": "Trying to understand Etag", "url": "https://sung.codes/blog/2020/trying-to-understand-etag", "published_at": "2020-04-26T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720c5c9194e", "title": "Specify position property to make Z-index work", "url": "https://sung.codes/blog/2020/specify-position-property-to-make-z-index-work-with-tailwind", "published_at": "2020-02-29T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720c5e574d8", "title": "Tailwind for Create-React-App Cheat Sheet", "url": "https://sung.codes/blog/2020/tailwind-for-create-react-app-cheat-sheet", "published_at": "2020-02-26T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720c623e6ea", "title": "Clientside Webmentions in Gatsby", "url": "https://sung.codes/blog/2020/clientside-webmentions-in-gatsby", "published_at": "2020-02-17T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720c68c7dd3", "title": "Deliberate Practice on CSS Box Model with Tailwind CSS", "url": "https://sung.codes/blog/2020/deliberate-practice-on-css-box-model-with-tailwind-css", "published_at": "2020-02-13T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720c6dd5510", "title": "Why is Tailwind Letter Spacing named Tracking and Line Height, Leading?", "url": "https://sung.codes/blog/2020/why-is-tailwind-letter-spacing-named-tracking-and-line-height-leading", "published_at": "2020-02-11T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720c6f05da5", "title": "On Deliberate Practice", "url": "https://sung.codes/blog/2020/on-delibrate-practice", "published_at": "2020-02-10T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720c76e0582", "title": "Extending Tailwind CSS Preflight Normalization with Zero Padding", "url": "https://sung.codes/blog/2020/extending-tailwind-css-preflight-normalization-with-zero-padding", "published_at": "2020-02-09T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720c823c7c8", "title": "Extending Tailwind CSS screen height utility", "url": "https://sung.codes/blog/2020/extending-tailwind-css-screen-height-utility", "published_at": "2020-02-05T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720c888bc85", "title": "Opening a new tab from Office UI Fabric Nav", "url": "https://sung.codes/blog/2020/opening-a-new-tab-from-office-ui-fabric-nav", "published_at": "2020-01-23T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720c8ca0934", "title": "Building Gatsby with GitHub Actions and deploying to Netlify", "url": "https://sung.codes/blog/2019/building-gatsby-with-git-hub-actions-and-deploying-to-netlify", "published_at": "2019-12-25T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720c9ae14bf", "title": "Dev journal on distributed caching with redis", "url": "https://sung.codes/blog/2019/dev-journal-on-distributed-caching-with-redis", "published_at": "2019-11-30T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720c9f4922e", "title": "Prefetch lazy-loaded component", "url": "https://sung.codes/blog/2019/prefetch-lazy-loaded-component", "published_at": "2019-11-29T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720cabae6d3", "title": "RxJS Error: CORS is not supported by your browser", "url": "https://sung.codes/blog/2019/rxjs-error-cors-is-not-supported-by-your-browser", "published_at": "2019-11-24T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720cac47d07", "title": "Dynamic data fetching in Next.js", "url": "https://sung.codes/blog/2019/dynamic-data-fetching-in-nextjs", "published_at": "2019-11-20T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720cbaa3bd0", "title": "Async Foreach", "url": "https://sung.codes/blog/2019/async-foreach", "published_at": "2019-11-19T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720cbc3fed2", "title": "The Great Gatsby Migration", "url": "https://sung.codes/blog/2019/the-great-gatsby-migration", "published_at": "2019-11-10T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720cc81ee38", "title": "useSWR - React Hooks for Remote Data Fetching", "url": "https://sung.codes/blog/2019/useswr-react-hooks-for-remote-data-fetching-1nlo", "published_at": "2019-10-29T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720cd043cc5", "title": "Preventing multiple observables from firing from Redux-Observable", "url": "https://sung.codes/blog/2019/preventing-multiple-observables-from-firing-from-redux-observable", "published_at": "2019-10-18T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720cd713ddf", "title": "Installing Dokku on Kubuntu", "url": "https://sung.codes/blog/2019/installing-dokku-on-kubuntu", "published_at": "2019-09-28T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720ce0a831a", "title": "React Sticky Event with Intersection Observer", "url": "https://sung.codes/blog/2019/react-sticky-event-with-intersection-observer", "published_at": "2019-08-24T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720cea36401", "title": "React.Suspense doesn't work with Gatsby (yet)", "url": "https://sung.codes/blog/2019/react-suspense-doesnt-work-with-gatsby-yet", "published_at": "2019-07-31T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720ced35db1", "title": "Adding a Twitter Reply via Twitter API", "url": "https://sung.codes/blog/2019/adding-a-twitter-reply-via-twitter-api", "published_at": "2019-07-28T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720cf5c97f9", "title": "Page Not Found on Netlify with MDX-Deck", "url": "https://sung.codes/blog/2019/page-not-found-on-netlify-with-mdx-deck", "published_at": "2019-07-25T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720d0340679", "title": "'href' vs. 'src' in HTML", "url": "https://sung.codes/blog/2019/href-vs-src-in-html", "published_at": "2019-07-17T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720d0b4f41d", "title": "How to use TSDX", "url": "https://sung.codes/blog/2019/how-to-use-tsdx", "published_at": "2019-06-16T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720d0ff1366", "title": "Promise.race vs. Promise.any And Promise.all vs. Promise.allSettled", "url": "https://sung.codes/blog/2019/promise-race-vs-promise-any-and-promise-all-vs-promise-allsettled", "published_at": "2019-05-18T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720d1a388b8", "title": "Scrolling with Page Up/Down Keys in React-Window", "url": "https://sung.codes/blog/2019/scrolling-with-page-up-down-keys-in-react-window", "published_at": "2019-05-07T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720d264f9e7", "title": "Two gotchas in Chrome Developer Tool Console", "url": "https://sung.codes/blog/2019/two-gotchas-in-chrome-developer-tool-console", "published_at": "2019-04-19T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720d27fd05f", "title": "Adding numbers using Boolean operations in JavaScript", "url": "https://sung.codes/blog/2019/adding-numbers-using-boolean-operations-in-javascript", "published_at": "2019-04-14T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720d35b91ad", "title": "Spread syntax gotcha in JavaScript class methods", "url": "https://sung.codes/blog/2019/spread-syntax-gotcha-in-javascript-class-methods", "published_at": "2019-03-30T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720d4398338", "title": "@cshooks/usetrie, A React Hook for Typeahead/Autocomplete", "url": "https://sung.codes/blog/2019/cshooks-usetrie-a-react-hook-for-typeahead-autocomplete", "published_at": "2019-03-23T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720d46fae96", "title": "Emoji Error in Chrome Extension HTML", "url": "https://sung.codes/blog/2019/emoji-error-in-chrome-extension-html", "published_at": "2019-02-17T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720d485e23a", "title": "Getting DOM content from Chrome Extension", "url": "https://sung.codes/blog/2019/getting-dom-content-from-chrome-extension-2", "published_at": "2019-02-17T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720d4d3519d", "title": "Being explicit with your own React Hook + TypeScript return type", "url": "https://sung.codes/blog/2019/being-explicit-with-your-own-react-hook-typescript-return-type", "published_at": "2019-02-10T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720d57fcacd", "title": "Getting DOM content from Chrome Extension", "url": "https://sung.codes/blog/2019/getting-dom-content-from-chrome-extension", "published_at": "2019-02-10T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720d5902dd2", "title": "Dynamically build TypeScript string literal type", "url": "https://sung.codes/blog/2019/dynamically-build-typescript-string-literal-type", "published_at": "2019-02-02T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720d610d5b1", "title": "Default Class Access Modifier Differences between TypeScript & C#", "url": "https://sung.codes/blog/2019/default-class-access-modifier-differences-between-typescript-c", "published_at": "2019-01-24T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720d6854aed", "title": "React + TypeScript with Parcel", "url": "https://sung.codes/blog/2019/react-typescript-with-parcel", "published_at": "2019-01-22T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720d6a712fc", "title": "Living on the edge with \"dangerous\"", "url": "https://sung.codes/blog/2019/living-on-the-edge-with-dangerous", "published_at": "2019-01-13T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720d76d948f", "title": "Page Not Found on Netlify with React Router", "url": "https://sung.codes/blog/2018/page-not-found-on-netlify-with-react-router", "published_at": "2018-12-18T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720d83a8b1b", "title": "React Podcast Episode 31 – “Hooks are Mixins” with Ryan Florence", "url": "https://sung.codes/blog/2018/react-podcast-episode-31-hooks-are-mixins-with-ryan-florence", "published_at": "2018-12-09T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720d9214ed4", "title": "Setting React Hooks states in a sync-like manner?", "url": "https://sung.codes/blog/2018/setting-react-hooks-states-in-a-sync-like-manner", "published_at": "2018-12-07T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720d9414ab2", "title": "Immutability makes tracking changes cheap", "url": "https://sung.codes/blog/2018/immutability-makes-tracking-changes-cheap", "published_at": "2018-12-02T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720d95ae189", "title": "About Lazy loading Ant Design Components overriding custom CSS", "url": "https://sung.codes/blog/2018/about-lazy-loading-ant-design-components-overriding-custom-css", "published_at": "2018-12-01T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720d9e4748c", "title": "You don't always need to import React", "url": "https://sung.codes/blog/2018/you-dont-always-need-to-import-react", "published_at": "2018-11-26T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720dac6c565", "title": "React Podcast Episode 29 - 'Don't Rewrite Your App for Hooks and Suspense' with Jared Palmer", "url": "https://sung.codes/blog/2018/react-podcast-episode-29-show-note", "published_at": "2018-11-21T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720db242f20", "title": "Hacktoberfest is over but...", "url": "https://sung.codes/blog/2018/hacktoberfest-is-over-but", "published_at": "2018-11-18T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720dbc7d1e4", "title": "Move files around until it feels right", "url": "https://sung.codes/blog/2018/move-files-around-until-it-feels-right", "published_at": "2018-11-18T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720dc5bdafb", "title": "Need to set tabIndex=0 to enable tab navigation", "url": "https://sung.codes/blog/2018/need-to-set-tabindex0-to-enable-tab-navigation", "published_at": "2018-11-15T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720dd40233e", "title": "K closest points to the origin in C#", "url": "https://sung.codes/blog/2018/k-closest-points-to-the-origin-in-c", "published_at": "2018-11-14T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720de14d77d", "title": "Emulate forceUpdate with React Hooks", "url": "https://sung.codes/blog/2018/emulate-forceupdate-with-react-hooks", "published_at": "2018-11-08T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720de7ba29c", "title": "Getting Non-Printable Character ASCII Value Using PowerShell", "url": "https://sung.codes/blog/2018/getting-non-printable-character-ascii-value-using-powershell", "published_at": "2018-11-07T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720deca680b", "title": "Downshift getRootProps", "url": "https://sung.codes/blog/2018/downshift-getrootprops", "published_at": "2018-11-06T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720df5bf700", "title": "An unofficial show note for React Today and Tomorrow with the React Core Team", "url": "https://sung.codes/blog/2018/an-unofficial-show-note-for-react-today-and-tomorrow-with-the-react-core-team", "published_at": "2018-11-03T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720df79d8a9", "title": "Loading React Components Dynamically on Demand using React.lazy", "url": "https://sung.codes/blog/2018/loading-react-components-dynamically-on-demand-using-react-lazy", "published_at": "2018-10-28T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720df93d3d0", "title": "react-use-localstorage", "url": "https://sung.codes/blog/2018/react-use-localstorage", "published_at": "2018-10-25T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720e06109f7", "title": "Setting up a React Environment for ASP.NET MVC", "url": "https://sung.codes/blog/2018/setting-up-a-react-environment-for-asp-net-mvc", "published_at": "2018-10-13T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720e12f1335", "title": "Resetting Error Boundary Error State", "url": "https://sung.codes/blog/2018/resetting-error-boundary-error-state", "published_at": "2018-09-29T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720e217be16", "title": "Sketchnotes for 'Getting Started with Redux'", "url": "https://sung.codes/blog/2018/getting-started-with-redux-sketchnotes", "published_at": "2018-09-21T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720e2d94ee6", "title": "Making Ant Design CSS Optimization to Work on CodeSandBox", "url": "https://sung.codes/blog/2018/making-ant-design-css-optimization-to-work-on-codesandbox", "published_at": "2018-09-16T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720e3348090", "title": "Canceling setInterval in React", "url": "https://sung.codes/blog/2018/canceling-interval-in-react", "published_at": "2018-09-15T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720e360d2d1", "title": "Introducing 🍔 Bunpkg 🍔", "url": "https://sung.codes/blog/2018/introducing-bunpkg", "published_at": "2018-09-12T00:00:00+00:00" }, { "id": "01a087e7-e098-729d-bea9-3720e3fa67cc", "title": "Accessing React State right after setting it", "url": "https://sung.codes/blog/2018/accessing-react-state-right-after-setting-it", "published_at": "2018-08-25T00:00:00+00:00" } ] posts Claim your blog
Back to sung.codes
Blog · corpus.blog/blogs/sung.codes/posts

sung.codes

sung.codes

2026

2022

2021

2020

2019

2018