41554 blogs · [ { "id": "01a087d0-1432-71cd-9cd3-f52e0d3405ca", "title": "My First Electronics Project - Building a Real-Time Power Outage Monitor with ESP32 and Slack", "url": "https://www.ravgeet.in/blog/building-a-real-time-power-outage-monitor-with-esp32-and-slack-2kmk", "published_at": "2026-03-18T11:53:05+00:00" }, { "id": "01a087d0-1432-71cd-9cd3-f52e0d3c4ebf", "title": "Debugging and Stopping Infinite Render Loops in React", "url": "https://www.ravgeet.in/blog/debugging-and-stopping-infinite-render-loops-in-react-fm9", "published_at": "2026-02-05T11:22:28+00:00" }, { "id": "01a087d0-1432-71cd-9cd3-f52e0dcd4d2d", "title": "Rebuilding My Static Blog with Build-Time Data and Instant Search", "url": "https://www.ravgeet.in/blog/rebuilding-my-static-blog-with-build-time-data-and-instant-search-16db", "published_at": "2026-02-04T17:51:24+00:00" }, { "id": "01a087d0-1432-71cd-9cd3-f52e0e3b8345", "title": "My 7 Aspirations as a Software Engineer in 2026", "url": "https://www.ravgeet.in/blog/my-7-aspirations-as-a-software-engineer-in-2026-2fdb", "published_at": "2026-01-27T09:30:14+00:00" }, { "id": "01a087d0-1432-71cd-9cd3-f52e0f256170", "title": "Realtime Deploy Notifications in Next.js with Toasts", "url": "https://www.ravgeet.in/blog/realtime-deploy-notifications-in-nextjs-with-toasts-17lm", "published_at": "2026-01-25T05:30:48+00:00" }, { "id": "01a087d0-1432-71cd-9cd3-f52e0f3cb6e4", "title": "How I Built a Unified Calendar Dashboard with Next.js, Vercel Edge Functions & No Database", "url": "https://www.ravgeet.in/blog/how-i-built-a-unified-calendar-dashboard-with-nextjs-vercel-edge-functions-no-database-368k", "published_at": "2025-11-05T04:43:54+00:00" }, { "id": "01a087d0-1432-71cd-9cd3-f52e0f696a28", "title": "Building a Smart Hardware Inventory System That Actually Works", "url": "https://www.ravgeet.in/blog/building-a-smart-hardware-inventory-system-that-actually-works-ngg", "published_at": "2025-10-13T18:14:12+00:00" }, { "id": "01a087d0-1432-71cd-9cd3-f52e0fc2e747", "title": "Building a Basic AI Agent", "url": "https://www.ravgeet.in/blog/building-an-ai-powered-function-orchestrator-when-ai-becomes-your-code-planner-5d6o", "published_at": "2025-10-11T13:35:15+00:00" }, { "id": "01a087d0-1432-71cd-9cd3-f52e107405d6", "title": "The ultimate guide to Python logging", "url": "https://www.ravgeet.in/blog/the-ultimate-guide-to-python-logging-kdc", "published_at": "2025-08-27T04:30:31+00:00" }, { "id": "01a087d0-1432-71cd-9cd3-f52e1145e5fa", "title": "Working with Markdown in Python", "url": "https://www.ravgeet.in/blog/working-with-markdown-in-python-2k5", "published_at": "2025-08-27T04:28:57+00:00" }, { "id": "01a087d0-1432-71cd-9cd3-f52e11da7a4c", "title": "Handling undo functions in rich text editors", "url": "https://www.ravgeet.in/blog/handling-undo-functions-in-rich-text-editors-2lgg", "published_at": "2025-08-01T12:38:55+00:00" }, { "id": "01a087d0-1433-7318-946d-46a9ead3ad1a", "title": "🎬 Introducing Ravgeek: Dev Concepts in 60 Seconds", "url": "https://www.ravgeet.in/blog/introducing-ravgeek-dev-concepts-in-60-seconds-54nj", "published_at": "2025-07-19T02:41:33+00:00" }, { "id": "01a087d0-1433-7318-946d-46a9eb613c69", "title": "How to enable in-app Notifications using TinyMCE APIs", "url": "https://www.ravgeet.in/blog/how-to-enable-in-app-notifications-using-tinymce-apis-39dh", "published_at": "2025-07-17T12:44:14+00:00" }, { "id": "01a087d0-1433-7318-946d-46a9ebd68771", "title": "Automate GitHub stats reporting with scheduled pipelines", "url": "https://www.ravgeet.in/blog/automate-github-stats-reporting-with-scheduled-pipelines-1jo3", "published_at": "2025-07-17T06:59:26+00:00" }, { "id": "01a087d0-1433-7318-946d-46a9ec670b95", "title": "Building a Smart Session Tracker for Your Mac's Menu Bar", "url": "https://www.ravgeet.in/blog/building-a-smart-session-tracker-for-your-macs-menu-bar-41km", "published_at": "2025-07-16T17:07:56+00:00" }, { "id": "01a087d0-1433-7318-946d-46a9ed47f4c1", "title": "What is Git | Explained in under a minute", "url": "https://www.ravgeet.in/blog/what-is-git-explained-in-under-a-minute-50d4", "published_at": "2025-07-14T07:56:55+00:00" }, { "id": "01a087d0-1433-7318-946d-46a9ed898340", "title": "Building a Real-Time CPU Monitor for macOS with xbar", "url": "https://www.ravgeet.in/blog/building-a-real-time-cpu-monitor-for-macos-with-xbar-4nch", "published_at": "2025-07-08T04:00:51+00:00" }, { "id": "01a087d0-1433-7318-946d-46a9ee450048", "title": "Getting the Most Out of GitHub Copilot Chat in VS Code", "url": "https://www.ravgeet.in/blog/getting-the-most-out-of-github-copilot-chat-in-vs-code-106i", "published_at": "2025-07-04T09:49:57+00:00" }, { "id": "01a087d0-1433-7318-946d-46a9ee680bd7", "title": "Generating dynamic sales quotes with Dropbox Sign", "url": "https://www.ravgeet.in/blog/generating-dynamic-sales-quotes-with-dropbox-sign-4jom", "published_at": "2025-06-27T17:08:20+00:00" }, { "id": "01a087d0-1439-701a-a95e-de1602255d0f", "title": "How I Use GitHub Copilot and ChatGPT Together as a Frontend Developer", "url": "https://www.ravgeet.in/blog/how-i-use-github-copilot-and-chatgpt-together-as-a-frontend-developer-2i23", "published_at": "2025-06-21T12:24:36+00:00" }, { "id": "01a087d0-1439-701a-a95e-de1602d9b4e1", "title": "Improve Table Speed in React by Using Web Workers for Filters", "url": "https://www.ravgeet.in/blog/improve-table-speed-in-react-by-using-web-workers-for-filters-3db0", "published_at": "2025-06-21T12:24:22+00:00" }, { "id": "01a087d0-1439-701a-a95e-de1603197587", "title": "How to Build an Internal Company Wiki from Scratch", "url": "https://www.ravgeet.in/blog/how-to-build-an-internal-company-wiki-from-scratch-3lbk", "published_at": "2023-05-12T15:21:12+00:00" }, { "id": "01a087d0-1439-701a-a95e-de1604180965", "title": "Frontend Monitoring: A Complete Guide", "url": "https://www.ravgeet.in/blog/frontend-monitoring-a-complete-guide-239", "published_at": "2023-01-31T12:10:14+00:00" }, { "id": "01a087d0-1439-701a-a95e-de1604ea0695", "title": "How to Setup and Customize Tailwind in Nuxt.js", "url": "https://www.ravgeet.in/blog/how-to-setup-and-customize-tailwind-in-nuxtjs-ao8", "published_at": "2022-12-02T12:14:30+00:00" }, { "id": "01a087d0-1439-701a-a95e-de16059acdfd", "title": "Build a Task Assignment App with Twilio Whatsapp, Strapi, and Next.js", "url": "https://www.ravgeet.in/blog/build-a-task-assignment-app-with-twilio-whatsapp-strapi-and-nextjs-f5d", "published_at": "2022-11-29T07:19:24+00:00" }, { "id": "01a087d0-1439-701a-a95e-de160684fc17", "title": "REST vs SOAP: why we recommend REST APIs for A2P messaging", "url": "https://www.ravgeet.in/blog/rest-vs-soap-why-we-recommend-rest-apis-for-a2p-messaging-2no8", "published_at": "2022-11-07T05:09:59+00:00" }, { "id": "01a087d0-1439-701a-a95e-de1607215ac3", "title": "Authoring NPM Packages with Monorepos", "url": "https://www.ravgeet.in/blog/authoring-npm-packages-with-monorepos-3794", "published_at": "2022-10-14T03:49:03+00:00" }, { "id": "01a087d0-1439-701a-a95e-de16072abcce", "title": "Booking Appointments with Twilio, Notion, and FastAPI", "url": "https://www.ravgeet.in/blog/booking-appointments-with-twilio-notion-and-fastapi-lhe", "published_at": "2022-08-27T06:38:26+00:00" }, { "id": "01a087d0-1439-701a-a95e-de160804c420", "title": "Using Python Scripts to Take Screenshots", "url": "https://www.ravgeet.in/blog/using-python-scripts-to-take-screenshots-39ll", "published_at": "2022-08-22T07:30:51+00:00" }, { "id": "01a087d0-1439-701a-a95e-de16080febdb", "title": "Logging in Python", "url": "https://www.ravgeet.in/blog/logging-in-python-97g", "published_at": "2022-08-13T08:53:50+00:00" }, { "id": "01a087d0-1439-701a-a95e-de1608d34940", "title": "Build Client Payment Reminders using Twilio, Notion, and Python", "url": "https://www.ravgeet.in/blog/build-client-payment-reminders-using-twilio-notion-and-python-2flg", "published_at": "2022-08-10T11:08:09+00:00" }, { "id": "01a087d0-1439-701a-a95e-de16091dc145", "title": "Build and Deploy a Nuxt3 app to Netlify", "url": "https://www.ravgeet.in/blog/build-and-deploy-a-nuxt3-app-to-netlify-1c2k", "published_at": "2022-07-24T14:43:18+00:00" }, { "id": "01a087d0-1439-701a-a95e-de160a1721aa", "title": "What is End-to-End Testing?", "url": "https://www.ravgeet.in/blog/what-is-end-to-end-testing-395p", "published_at": "2022-07-06T11:01:05+00:00" }, { "id": "01a087d0-1439-701a-a95e-de160aa7c9a6", "title": "Handling Undo/Redo Functions in Rich Text Editors", "url": "https://www.ravgeet.in/blog/handling-undoredo-functions-in-rich-text-editors-idm", "published_at": "2022-06-19T13:32:43+00:00" }, { "id": "01a087d0-1439-701a-a95e-de160b63b423", "title": "The Complete List of OAuth 2 Grants", "url": "https://www.ravgeet.in/blog/the-complete-list-of-oauth-2-grants-5bpm", "published_at": "2022-06-19T13:29:06+00:00" }, { "id": "01a087d0-1439-701a-a95e-de160bfc13dd", "title": "Creating Golang CRON Jobs", "url": "https://www.ravgeet.in/blog/creating-golang-cron-jobs-3489", "published_at": "2022-05-30T07:52:35+00:00" }, { "id": "01a087d0-1439-701a-a95e-de160ca40ab5", "title": "Handling Pagination in Strapi v4 with SvelteKit", "url": "https://www.ravgeet.in/blog/handling-pagination-in-strapi-v4-with-sveltekit-2omg", "published_at": "2022-05-23T08:54:57+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bc0a129c1", "title": "Using Custom Controllers in Strapi to Power a Next.js App", "url": "https://www.ravgeet.in/blog/using-custom-controllers-to-power-a-nextjs-app-3apl", "published_at": "2022-05-19T08:11:31+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bc168dbf1", "title": "Build a Chrome Extension in Next.js and Notion API", "url": "https://www.ravgeet.in/blog/build-a-chrome-extension-in-nextjs-and-notion-api-ln5", "published_at": "2022-04-18T04:49:23+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bc1a6207e", "title": "Building a Realtime Chat App with React, Laravel, and WebSockets", "url": "https://www.ravgeet.in/blog/building-a-realtime-chat-app-with-react-laravel-and-websockets-4clh", "published_at": "2022-04-16T06:34:33+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bc1ade677", "title": "Starting my First Full-time role as a Software Engineer", "url": "https://www.ravgeet.in/blog/starting-my-first-full-time-role-as-a-software-engineer-ak9", "published_at": "2022-02-08T04:56:31+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bc21d53aa", "title": "Implementing Audio in a Podcast App with Strapi", "url": "https://www.ravgeet.in/blog/implementing-audio-in-a-podcast-app-with-strapi-26fa", "published_at": "2022-01-26T08:29:22+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bc2a8c0f7", "title": "Handling Previews in a Headless Architecture - Strapi and Next.js", "url": "https://www.ravgeet.in/blog/handling-previews-in-a-headless-architecture-strapi-and-nextjs-8m7", "published_at": "2022-01-10T09:02:29+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bc3549d0a", "title": "Create an App Information Component in Nuxt", "url": "https://www.ravgeet.in/blog/create-an-app-information-component-in-nuxt-1ock", "published_at": "2021-12-23T06:13:09+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bc356927c", "title": "React vs Vue: What is the Best Framework for your Project in 2022?", "url": "https://www.ravgeet.in/blog/react-vs-vue-what-is-the-best-framework-for-your-project-in-2022-5d6h", "published_at": "2021-12-17T04:32:00+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bc3ad6693", "title": "Create a Balance Reminder with Vonage Account API and Google Apps", "url": "https://www.ravgeet.in/blog/create-a-balance-reminder-with-vonage-account-api-and-google-apps-1pl5", "published_at": "2021-12-09T05:06:28+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bc489c391", "title": "Build a News Aggregator App using Strapi and Nuxtjs", "url": "https://www.ravgeet.in/blog/build-a-news-aggregator-app-using-strapi-and-nuxtjsravgeet-dhillon-1n52", "published_at": "2021-12-06T04:10:45+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bc5500551", "title": "Converting and Optimizing Images From the Command Line", "url": "https://www.ravgeet.in/blog/converting-and-optimizing-images-from-the-command-line-6ap", "published_at": "2021-11-29T04:54:45+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bc5704619", "title": "Back to Basics: Conditional Logic with Python if else if", "url": "https://www.ravgeet.in/blog/back-to-basics-conditional-logic-with-python-if-else-if-5ck7", "published_at": "2021-11-22T06:40:59+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bc60dba26", "title": "How to Test Your NGINX Configuration Before Screwing it Up", "url": "https://www.ravgeet.in/blog/how-to-test-your-nginx-configuration-before-screwing-it-up-2571", "published_at": "2021-11-19T06:22:51+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bc6c5a6de", "title": "Using Bash Sort to Sort Files Like a Boss", "url": "https://www.ravgeet.in/blog/using-bash-sort-to-sort-files-like-a-boss-1h2g", "published_at": "2021-11-17T05:14:18+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bc6c5d5fe", "title": "Service Status Monitoring Using WhatsApp, Notion, and Python", "url": "https://www.ravgeet.in/blog/service-status-monitoring-using-whatsapp-notion-and-python-905", "published_at": "2021-10-16T05:02:39+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bc72496ca", "title": "How to use Linux to Recover Deleted Files", "url": "https://www.ravgeet.in/blog/how-to-use-linux-to-recover-deleted-files-4p66", "published_at": "2021-10-14T05:07:10+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bc78d6802", "title": "Collect Email Signups With the Notion API", "url": "https://www.ravgeet.in/blog/collect-email-signups-with-the-notion-api-30ao", "published_at": "2021-10-10T11:40:56+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bc8256d29", "title": "Progress Bar in Next.js", "url": "https://www.ravgeet.in/blog/progress-bar-in-next-js-3gj2", "published_at": "2021-07-29T07:41:42+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bc872bd96", "title": "Setup and Customize Bootstrap in Next.js", "url": "https://www.ravgeet.in/blog/setup-and-customize-bootstrap-in-next-js-585k", "published_at": "2021-07-09T07:30:59+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bc92f4594", "title": "Script as a Task using VS Code IDE", "url": "https://www.ravgeet.in/blog/script-as-a-task-using-vs-code-ide-530e", "published_at": "2021-06-25T06:42:13+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bc988dcc4", "title": "Best VS Code extensions for Nuxt/Vue Projects", "url": "https://www.ravgeet.in/blog/best-vs-code-extensions-for-nuxt-vue-projects-1jc6", "published_at": "2021-05-27T06:34:18+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bc9b3e743", "title": "Automating Project Maintenance on Github", "url": "https://www.ravgeet.in/blog/automating-project-maintenance-on-github-3iag", "published_at": "2021-05-11T08:34:30+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bc9e33e69", "title": "Deploy a Serverless Probot/Github App on Netlify Functions", "url": "https://www.ravgeet.in/blog/deploy-a-serverless-probot-github-app-on-netlify-functions-cl0", "published_at": "2021-04-27T06:04:17+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bca183dc7", "title": "Deploy Strapi on VPS with Ubuntu, MySQL", "url": "https://www.ravgeet.in/blog/deploy-strapi-on-vps-with-ubuntu-mysql-23ph", "published_at": "2021-04-16T11:57:14+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bcb016885", "title": "Setup Github Actions for a Dart project", "url": "https://www.ravgeet.in/blog/setup-github-actions-for-a-dart-project-4aeb", "published_at": "2021-04-08T05:00:41+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bcb6eb7d4", "title": "Turn a Google Sheet into a REST API", "url": "https://www.ravgeet.in/blog/turn-a-google-sheet-into-a-rest-api-4pnl", "published_at": "2021-03-24T08:54:13+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bcc2597d9", "title": "Add Unsubscribe link in emails using Google Apps Script", "url": "https://www.ravgeet.in/blog/add-unsubscribe-link-in-emails-using-google-apps-script-19jj", "published_at": "2021-02-20T07:47:43+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bcd1d565d", "title": "Disable Submit button if Form fields have not changed in a Nuxt/Vue app", "url": "https://www.ravgeet.in/blog/disable-submit-button-if-form-fields-have-not-changed-in-a-nuxt-vue-app-9hp", "published_at": "2021-02-01T10:49:07+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bcd46ea90", "title": "Offline Toast notification in Nuxt/Vue app", "url": "https://www.ravgeet.in/blog/offline-toast-notification-in-nuxt-vue-app-14ok", "published_at": "2021-01-23T05:28:48+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bcd63354d", "title": "Dynamic Home Route in a Flutter App", "url": "https://www.ravgeet.in/blog/dynamic-home-route-in-a-flutter-app-3ppm", "published_at": "2021-01-14T06:58:19+00:00" }, { "id": "01a087d0-143a-73f0-91dd-489bcdad40b0", "title": "How to add and customize Bootstrap in Nuxt.js", "url": "https://www.ravgeet.in/blog/how-to-add-and-customize-bootstrap-in-nuxt-js-5eh6", "published_at": "2020-12-28T07:07:11+00:00" }, { "id": "01a087d0-143b-7093-b105-52fa18286b33", "title": "Two-minute read newsletter to help Google Summer of Code aspirants", "url": "https://www.ravgeet.in/blog/two-minute-read-newsletter-to-help-google-summer-of-code-aspirants-2ak7", "published_at": "2020-12-09T12:25:59+00:00" }, { "id": "01a087d0-143b-7093-b105-52fa18d0cebe", "title": "Send an Email notification when Github Actions fails", "url": "https://www.ravgeet.in/blog/send-an-email-notification-when-github-actions-fails-19i9", "published_at": "2020-12-04T06:36:36+00:00" }, { "id": "01a087d0-143b-7093-b105-52fa19912d60", "title": "Deploy a website on Netlify through Github Actions", "url": "https://www.ravgeet.in/blog/deploy-a-website-on-netlify-through-github-actions-jaj", "published_at": "2020-11-26T12:32:17+00:00" }, { "id": "01a087d0-143b-7093-b105-52fa1a8cc2b4", "title": "5 Netlify plugins to ensure a great Web Experience", "url": "https://www.ravgeet.in/blog/5-netlify-plugins-to-ensure-a-great-web-experience-3jb2", "published_at": "2020-11-18T08:03:56+00:00" }, { "id": "01a087d0-143b-7093-b105-52fa1b5bf589", "title": "Great tools for running a Tech startup", "url": "https://www.ravgeet.in/blog/great-tools-for-running-a-tech-startup-2i2g", "published_at": "2020-11-10T08:47:26+00:00" }, { "id": "01a087d0-143b-7093-b105-52fa1baf7591", "title": "Why Flutter Developer could be a million-dollar job?", "url": "https://www.ravgeet.in/blog/why-flutter-developer-could-be-a-1mn-job-3819", "published_at": "2020-11-04T07:03:46+00:00" }, { "id": "01a087d0-143b-7093-b105-52fa1c842637", "title": "How to approach the API design? Any Suggestions?", "url": "https://www.ravgeet.in/blog/how-to-approach-the-api-design-suggestions-27ci", "published_at": "2020-10-27T09:12:58+00:00" }, { "id": "01a087d0-143b-7093-b105-52fa1d4726ca", "title": "Create JSON Feed for a Jekyll blog", "url": "https://www.ravgeet.in/blog/create-json-feed-for-a-jekyll-blog-35p3", "published_at": "2020-10-26T12:39:13+00:00" }, { "id": "01a087d0-143b-7093-b105-52fa1d8e4ba9", "title": "When was the last time you ran your code successfully on the first try?", "url": "https://www.ravgeet.in/blog/when-was-the-last-time-you-ran-your-code-successfully-on-the-first-try-4i1f", "published_at": "2020-10-24T12:31:33+00:00" }, { "id": "01a087d0-143b-7093-b105-52fa1dcd9163", "title": "Top Flutter plugins to take your app to next level", "url": "https://www.ravgeet.in/blog/top-flutter-plugins-to-take-your-app-to-next-level-jaf", "published_at": "2020-10-21T12:36:12+00:00" }, { "id": "01a087d0-143b-7093-b105-52fa1e927571", "title": "Use Humans.txt to credit your team for a project", "url": "https://www.ravgeet.in/blog/use-humans-txt-to-credit-your-team-for-a-project-1fpm", "published_at": "2020-10-15T05:49:58+00:00" }, { "id": "01a087d0-143b-7093-b105-52fa1f5072f7", "title": "Custom Log Monitoring service using Google Apps Script", "url": "https://www.ravgeet.in/blog/custom-log-monitoring-service-using-google-apps-script-44i", "published_at": "2020-09-26T13:12:37+00:00" }, { "id": "01a087d0-143b-7093-b105-52fa1f83df51", "title": "Send Slack notification when Github Actions fails", "url": "https://www.ravgeet.in/blog/send-slack-notification-when-github-actions-fails-1ba6", "published_at": "2020-09-14T08:56:38+00:00" }, { "id": "01a087d0-143b-7093-b105-52fa1fdaf262", "title": "How To Track Email Opens with Google Apps Script", "url": "https://www.ravgeet.in/blog/how-to-track-email-opens-with-google-apps-script-2lah", "published_at": "2020-09-01T12:16:04+00:00" }, { "id": "01a087d0-143b-7093-b105-52fa20830e9d", "title": "How to Setup Email Marketing using Google Apps Scripts", "url": "https://www.ravgeet.in/blog/how-to-setup-email-marketing-using-google-apps-scripts-2f1c", "published_at": "2020-08-28T12:10:42+00:00" }, { "id": "01a087d0-143b-7093-b105-52fa21243016", "title": "Backup Google Apps Scripts using Github Actions", "url": "https://www.ravgeet.in/blog/backup-google-apps-scripts-using-github-actions-7l2", "published_at": "2020-08-26T13:51:50+00:00" }, { "id": "01a087d0-143b-7093-b105-52fa21b44449", "title": "How to achieve a redesign of your website", "url": "https://www.ravgeet.in/blog/how-to-achieve-a-redesign-of-your-website-442p", "published_at": "2020-08-18T14:14:54+00:00" }, { "id": "01a087d0-143b-7093-b105-52fa21c467ba", "title": "Collect form responses using Google Apps Script in Jekyll website ", "url": "https://www.ravgeet.in/blog/collect-form-responses-using-google-apps-script-in-jekyll-website-1ej5", "published_at": "2020-08-02T06:30:00+00:00" }, { "id": "01a087d0-143b-7093-b105-52fa2251844d", "title": "How to achieve a redesign of your website — RavSam", "url": "https://www.ravgeet.in/blog/how-to-achieve-a-redesign-of-your-website-ravsam-e8", "published_at": "2020-07-24T06:40:19+00:00" }, { "id": "01a087d0-143b-7093-b105-52fa22821642", "title": "Dropilio - Leveraging Twilio Whatsapp API", "url": "https://www.ravgeet.in/blog/dropilio-app-for-twilio-and-dev-hackathon-53je", "published_at": "2020-04-28T06:30:00+00:00" }, { "id": "01a087d0-143b-7093-b105-52fa230277b6", "title": "Celebrating GNOME Newcomers’ contributions", "url": "https://www.ravgeet.in/blog/celebrating-gnome-newcomers-contributions-2bg8", "published_at": "2020-01-02T13:00:00+00:00" }, { "id": "01a087d0-143b-7093-b105-52fa2313558e", "title": "Developing Leaderboard for GNOME Hackers", "url": "https://www.ravgeet.in/blog/developing-leaderboard-for-gnome-hackers-2e90", "published_at": "2019-12-09T15:30:00+00:00" }, { "id": "01a087d0-143b-7093-b105-52fa23797879", "title": "Fantasy Premier League with AI - First 10 Gameweeks Review", "url": "https://www.ravgeet.in/blog/fantasy-premier-league-with-ai-first-10-gameweeks-review-2aih", "published_at": "2019-10-28T11:30:00+00:00" }, { "id": "01a087d0-143b-7093-b105-52fa244f35aa", "title": "Final Report for Google Summer of Code 2019", "url": "https://www.ravgeet.in/blog/final-report-for-google-summer-of-code-2019-36h5", "published_at": "2019-08-26T00:30:00+00:00" }, { "id": "01a087d0-143b-7093-b105-52fa253f1736", "title": "Adding pages to Jekyll site", "url": "https://www.ravgeet.in/blog/adding-pages-to-jekyll-site-4e6g", "published_at": "2019-07-19T08:30:00+00:00" }, { "id": "01a087d0-143b-7093-b105-52fa25e47c4e", "title": "First Two Weeks at Google Summer of Code 2019", "url": "https://www.ravgeet.in/blog/first-two-weeks-at-google-summer-of-code-2019-240f", "published_at": "2019-06-10T06:00:00+00:00" }, { "id": "01a087d0-143b-7093-b105-52fa2627fe89", "title": "Getting Selected for Google Summer of Code 2019", "url": "https://www.ravgeet.in/blog/getting-selected-for-google-summer-of-code-2019-a06", "published_at": "2019-05-06T06:00:00+00:00" } ] posts Claim your blog
Back to ravgeet.in
Blog · corpus.blog/blogs/ravgeet.in/posts

ravgeet.in

ravgeet.in

2026

2025

2023

2022

2021

2020

2019