41554 blogs · [ { "id": "01a08752-c0c8-7083-83e1-e33be5266e77", "title": "waybar: custom module to help you refocus", "url": "https://blog.revathskumar.com/2026/06/waybar-custom-module-to-help-you-refocus.html", "published_at": "2026-06-09T13:57:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33be60c492b", "title": "hide your dotenv secrets from LLMs using pass", "url": "https://blog.revathskumar.com/2026/02/hide-your-dotenv-secrets-from-llms-using-pass.html", "published_at": "2026-02-27T12:32:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33be6adb8bc", "title": "update semantic version using bash script", "url": "https://blog.revathskumar.com/2026/02/update-semantic-version-using-bash-script.html", "published_at": "2026-02-15T08:26:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33be77ebc62", "title": "zig : pass version from build.zig.zon file to runtime", "url": "https://blog.revathskumar.com/2026/02/zig-pass-version-from-build-zig-zon-file-to-runtime.html", "published_at": "2026-02-14T07:23:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33be7973121", "title": "publish npm module with provenance statement", "url": "https://blog.revathskumar.com/2026/01/publish-npm-module-with-provenance-statement.html", "published_at": "2026-01-22T18:49:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33be80175d1", "title": "opt-out telemetry from cli tools", "url": "https://blog.revathskumar.com/2026/01/opt-out-telemetry-from-cli-tools.html", "published_at": "2026-01-22T01:02:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33be8f55ba6", "title": "Prisma : Extending model with custom methods", "url": "https://blog.revathskumar.com/2025/06/prisma-extending-model-with-custom-methods.html", "published_at": "2025-06-10T04:29:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33be99e6a41", "title": "css: safe alignment of flex-items", "url": "https://blog.revathskumar.com/2025/06/css-safe-alignment-of-flex-items.html", "published_at": "2025-06-03T18:53:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33be9a32401", "title": "PWA : receive file or text via native share", "url": "https://blog.revathskumar.com/2025/06/pwa-receive-file-or-text-via-native-share.html", "published_at": "2025-06-03T03:59:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33be9f306d3", "title": "webassembly - passing string between zig and javascript", "url": "https://blog.revathskumar.com/2025/04/webassembly-passing-string-between-zig-and-javascript.html", "published_at": "2025-04-10T08:38:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33bea7658be", "title": "How to detect different JavaScript runtimes", "url": "https://blog.revathskumar.com/2025/03/how-to-detect-different-javascript-runtimes.html", "published_at": "2025-03-20T11:41:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33beab07627", "title": "Deno : url.domainToASCII behaves differently from nodejs", "url": "https://blog.revathskumar.com/2025/03/deno-url-domainToASCII-behaves-differently-from-nodejs.html", "published_at": "2025-03-19T13:47:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33beab7b170", "title": "JavaScript : understanding string normalize", "url": "https://blog.revathskumar.com/2025/01/javascript-understanding-string-normalize.html", "published_at": "2025-01-13T04:46:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33beb459c94", "title": "gjs : How to read from stdin in a gtk application", "url": "https://blog.revathskumar.com/2025/01/gjs-how-to-read-from-stdin-in-a-gtk-application.html", "published_at": "2025-01-10T13:15:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33bebb7382f", "title": "writing gjs gtk app in typescript", "url": "https://blog.revathskumar.com/2025/01/writing-gjs-gtk-app-in-typescript.html", "published_at": "2025-01-06T08:30:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33bebb90692", "title": "CSS: typesafe variables using @property", "url": "https://blog.revathskumar.com/2024/07/css-typesafe-variables-using-at-property.html", "published_at": "2024-07-29T08:26:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33bec51dc35", "title": "Git: tips I follow for better git commits", "url": "https://blog.revathskumar.com/2024/07/git-tips-i-follow-for-better-git-commits.html", "published_at": "2024-07-24T14:05:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33bed283f73", "title": "TypeScript - return and arguments type based on enum", "url": "https://blog.revathskumar.com/2024/07/typescript-return-and-arguments-type-based-on-enum.html", "published_at": "2024-07-17T06:37:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33bed5165d1", "title": "jest : module mocking in es modules", "url": "https://blog.revathskumar.com/2024/07/jest-module-mocking-in-es-modules.html", "published_at": "2024-07-14T06:10:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33bede88997", "title": "zig : basic progress indicator in terminal", "url": "https://blog.revathskumar.com/2024/03/zig-basic-progress-indicator.html", "published_at": "2024-03-19T17:16:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33beeb76674", "title": "Gren : using ANSI escape codes", "url": "https://blog.revathskumar.com/2024/03/gren-using-ansi-escape-codes.html", "published_at": "2024-03-18T12:13:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33bef3ca71a", "title": "Github : override language definitions", "url": "https://blog.revathskumar.com/2024/03/github-override-language-definitions.html", "published_at": "2024-03-11T05:23:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33befa3b6a5", "title": "npm run fuzzy auto-complete with preview using fzf", "url": "https://blog.revathskumar.com/2024/03/npm-run-fuzzy-auto-complete-with-preview-using-fzf.html", "published_at": "2024-03-10T08:30:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33bf044e9e3", "title": "curl: fuzzy search options using fzf", "url": "https://blog.revathskumar.com/2024/02/curl-fuzzy-search-options-using-fzf.html", "published_at": "2024-02-07T18:30:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33bf0b808e1", "title": "React : Testing file upload using testing library", "url": "https://blog.revathskumar.com/2024/02/react-testing-file-upload-using-testing-library.html", "published_at": "2024-02-06T12:41:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33bf0d4e6f4", "title": "TypeScript: add types for axios response data and error data", "url": "https://blog.revathskumar.com/2023/04/typescript-add-types-for-axios-response-data-and-error-data.html", "published_at": "2023-04-16T18:30:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33bf13eec70", "title": "Jest : custom matcher for exceptions", "url": "https://blog.revathskumar.com/2023/04/jest-custom-matcher-for-exceptions.html", "published_at": "2023-04-16T10:30:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33bf206e77f", "title": "Reviewdog : configure reviewdog for eslint using github actions", "url": "https://blog.revathskumar.com/2022/10/github-configure-reviewdog-using-github-actions.html", "published_at": "2022-10-22T08:00:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33bf2f0c44f", "title": "JavaScript : String.length is not the count of characters", "url": "https://blog.revathskumar.com/2022/08/string-length-is-not-the-count-of-characters.html", "published_at": "2022-08-31T06:30:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33bf32c43e9", "title": "GitHub action to deploy review apps to surge", "url": "https://blog.revathskumar.com/2022/07/github-action-to-deploy-review-apps-to-surge.html", "published_at": "2022-06-30T19:30:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33bf38405f2", "title": "Alfred : workflow to simulate keyboard input", "url": "https://blog.revathskumar.com/2022/06/alfred-workflow-to-simulate-keyboard-input.html", "published_at": "2022-06-26T12:45:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33bf3ded392", "title": "Rails: custom param name for member resource", "url": "https://blog.revathskumar.com/2020/09/rails-custom-param-name-for-member-resource.html", "published_at": "2020-09-07T19:29:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33bf45cc38b", "title": "Using SSL in local development", "url": "https://blog.revathskumar.com/2020/07/using-ssl-in-local-development.html", "published_at": "2020-07-28T19:29:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33bf4b6da47", "title": "Migrating database from one to another", "url": "https://blog.revathskumar.com/2020/07/migrating-database-from-one-to-another.html", "published_at": "2020-07-23T18:35:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33bf5aa57d2", "title": "Auto deploy to heroku using Gitlab CI", "url": "https://blog.revathskumar.com/2020/06/auto-deploy-to-heroku-using-gitlab-ci.html", "published_at": "2020-06-30T18:29:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33bf6043faf", "title": "ReactJS : designing better component api (Functional)", "url": "https://blog.revathskumar.com/2020/05/reactjs-designing-better-component-api-2.html", "published_at": "2020-05-07T18:35:00+00:00" }, { "id": "01a08752-c0c8-7083-83e1-e33bf66f6d29", "title": "ReactJS : designing better component api (UI)", "url": "https://blog.revathskumar.com/2020/03/reactjs-designing-better-component-api.html", "published_at": "2020-03-28T18:35:00+00:00" }, { "id": "01a08752-c0c9-714e-a79b-56ae438915fb", "title": "ReactJS : beginner mistakes and how to avoid them", "url": "https://blog.revathskumar.com/2020/03/reactjs-beginner-mistakes-and-how-to-avoid-them.html", "published_at": "2020-03-27T18:35:00+00:00" }, { "id": "01a08752-c0c9-714e-a79b-56ae438de1c9", "title": "ReactJS : simple HTML5 Validation", "url": "https://blog.revathskumar.com/2020/01/reactjs-simple-html5-validation.html", "published_at": "2020-01-14T18:35:00+00:00" }, { "id": "01a08752-c0c9-714e-a79b-56ae4447d8b7", "title": "ReactJS : lazy loading large libraries", "url": "https://blog.revathskumar.com/2019/11/reactjs-lazy-loading-large-libraries.html", "published_at": "2019-11-06T18:35:00+00:00" }, { "id": "01a08752-c0c9-714e-a79b-56ae44c12223", "title": "Android : Different application id for debug and production", "url": "https://blog.revathskumar.com/2019/10/android-different-application-id-for-debug-and-production.html", "published_at": "2019-09-30T20:30:00+00:00" }, { "id": "01a08752-c0c9-714e-a79b-56ae454419ff", "title": "Install wireguard on FireTV", "url": "https://blog.revathskumar.com/2019/09/install-wireguard-on-firetv.html", "published_at": "2019-09-26T18:30:00+00:00" }, { "id": "01a08752-c0c9-714e-a79b-56ae45d4e764", "title": "Owning the content", "url": "https://blog.revathskumar.com/2019/09/owning-the-content.html", "published_at": "2019-09-22T18:30:00+00:00" }, { "id": "01a08752-c0c9-714e-a79b-56ae45d6ae27", "title": "Being a responsible product dev", "url": "https://blog.revathskumar.com/2019/09/being-a-responsible-product-dev.html", "published_at": "2019-09-21T18:30:00+00:00" }, { "id": "01a08752-c0c9-714e-a79b-56ae462cefe3", "title": "The danger of personalised feed", "url": "https://blog.revathskumar.com/2019/08/the-danger-of-personalised-feed.html", "published_at": "2019-08-10T18:30:00+00:00" }, { "id": "01a08752-c0c9-714e-a79b-56ae468cacab", "title": "In search of a height adjustable standing desk", "url": "https://blog.revathskumar.com/2019/08/in-search-of-a-height-adjustable-standing-desk.html", "published_at": "2019-08-01T18:30:00+00:00" }, { "id": "01a08752-c0c9-714e-a79b-56ae471231b9", "title": "Git: send patch using send-email & Gmail", "url": "https://blog.revathskumar.com/2019/08/git-send-patch-using-send-email-and-gmail.html", "published_at": "2019-07-31T18:35:00+00:00" }, { "id": "01a08752-c0c9-714e-a79b-56ae47934f1e", "title": "ELM : Fetching data with XHR", "url": "https://blog.revathskumar.com/2019/05/elm-fetching-data-with-xhr.html", "published_at": "2019-05-06T18:35:00+00:00" }, { "id": "01a08752-c0c9-714e-a79b-56ae47d63fca", "title": "Setting up dangerjs", "url": "https://blog.revathskumar.com/2019/05/setting-up-dangerjs.html", "published_at": "2019-05-02T18:35:00+00:00" }, { "id": "01a08752-c0c9-714e-a79b-56ae48a648dd", "title": "Jest : why we stopped snapshot tests", "url": "https://blog.revathskumar.com/2019/04/jest-why-we-stopped-snapshot-tests.html", "published_at": "2019-04-21T18:35:00+00:00" } ] posts Claim your blog
Back to blog.revathskumar.com
Blog · corpus.blog/blogs/blog.revathskumar.com/posts

blog.revathskumar.com

blog.revathskumar.com

2026

2025

2024

2023

2022

2020

2019