How I Fixed Supabase Rate Limiting in Production
The Coffee Timer was hitting Supabase's rate limits in production. Here's the exact problem, why it happened, and the four-part fix that solved it. The Pr

@adrian-bailador-3he
🚀 Full-Stack Dev 👨🏻💻 .NET Engineer 👾 Geek & Friki 💡 Talks about #dotnet, #csharp, #azure, #visualstudio and a little bit of #nextjs.
The Coffee Timer was hitting Supabase's rate limits in production. Here's the exact problem, why it happened, and the four-part fix that solved it. The Pr
title: "" summary: "Learn how to connect PostgreSQL to your .NET application using Entity Framework Core and Dapper, set up Docker locally, run migrations,
\ \ After weeks of development, my time management app is finally in production. It combines the Pomodoro technique with a coffee-inspired aesthetic. \ \ �
Error handling can make or break the clarity and reliability of your code. While exceptions are powerful, using them for expected business failures leads t
title: "Minimal API Validation in .NET 10" summary: "Discover the new built-in validation support for Minimal APIs in .NET 10. Learn how to use DataAnnotat
Learn how to build high-performance, thread-safe producer-consumer applications using System.Threading.Channels. Explore bounded and unbounded channels, bac
Image description Introduction You're integrating a third-party payment gateway into your application. Everything looks straightforward until you realize
A clear and practical guide to understanding Task vs ValueTask in .NET, with benchmarks, examples, rules of thumb, and real-world recommendations.
Learn to run artificial intelligence models completely offline with C# and .NET using llama.cpp and LLamaSharp. Control your data, avoid API costs, and buil
onstructors are special methods that execute automatically when an instance of a class is created.
If you're a C# developer looking to improve your code quality, unit tests are your best mate. In this guide, I'll walk you through all the types you need to
Learn how to implement rate limiting in ASP.NET Core to protect your APIs from abuse, DDoS attacks, and excessive usage. Includes native .NET 7+ features
Learn how to improve query performance in your .NET applications using database indexing with Entity Framework Core. Includes examples with Fluent API, Data
Learn how to build a smart API with .NET Core, SQLite, and OpenAI to perform semantic search using embeddings. A practical guide for beginners who want to i
Image description Entity Framework Core has streamlined how we evolve databases using the Code-First approach. But in real-world projects—especially with
Learn how to apply Domain-Driven Design in .NET to create expressive, maintainable, and business-focused domain models. Includes practical examples with Val
Learn the best practices to handle secrets in .NET applications using environment variables, user secrets, configuration files, and Azure Key Vault.
Explore Core-Driven Architecture to keep your business domain isolated and clean. Learn how to build maintainable, scalable, and testable .NET applications
Accessing elements by index is fast but risky in production .NET code. Learn safer and more expressive alternatives to avoid runtime exceptions, fragile log
MVVM is a powerful architectural pattern used in .NET desktop applications like WPF, MAUI, and WinUI.
Protecting sensitive data is a critical requirement in any modern application. Whether it’s personal information, passwords, or API keys, we must ensure tha
In high-performance .NET applications, memory allocation is a double-edged sword. While the Garbage Collector (GC) makes memory management easier, careless
Reading files is a fundamental skill in C#, and knowing the right method can improve both performance and readability.
Learn how to add localization support to your ASP.NET Core application, enabling multiple languages and culture-specific features.
Learn how to build a RESTful API using .NET and MongoDB, with a focus on implementing pagination to efficiently manage large datasets.
The .NET ecosystem keeps evolving, and with the release of C# 14 alongside .NET 10, developers now have a fresh set of features that make the language even
Security is one of the most critical aspects of modern application development. In an era where data breaches and cyber threats are increasingly common
Multithreading in C# might sound intimidating at first, but once you get the hang of it, it becomes a superpower for writing responsive, efficient, and mode
Dapper is a lightweight micro-ORM for .NET that offers high-speed data access while keeping things simple. Unlike full-fledged ORMs like Entity Framework
If you work with .NET and asynchronous tasks, you've probably encountered the need to cancel an ongoing operation. This is where **Cancellation Tokens**
In this article, we will walk through how to build a real-time chat system with the integration of **GPT-4** from OpenAI. We'll create an application that n
The `git cherry-pick` command allows you to select one or more specific commits from one branch and apply them to another without merging the entire history
Dealing with emails by code is a must in many apps. In .NET 9, the `SmtpClient` class is too old and not suggested anymore. Now, `MailKit` and `MimeKit`
This guide examines various methods for establishing and handling settings in your .NET applications.
Migrating a .NET Core 3.1 project to .NET 8 might seem challenging, but the process becomes much smoother with the right guide. Here’s a step-by-step guide:
In this article, I’ll explain step by step how to authenticate a GitHub App in .NET using **JSON Web Tokens (JWT)**.
In this article, we’ll explore 9 ways to set the URLs for your ASP.NET Core app, with practical examples to help you decide which method suits your needs.
Designing a good RESTful API remains a crucial part of modern application development. With the rise of mobile applications, distributed architectures
In this article, we will explore the fundamentals of developing web applications using **ASP.NET Core**, taking advantage of the features
This article takes you through the essentials of file handling using the System.IO namespace and dives into LINQ (Language Integrated Query) to simplify
Exception handling is a fundamental part of developing robust and error-resilient applications. In this article, we'll explore how to manage errors.
Collections in C# provide powerful tools for managing and organising data efficiently. They enable developers to handle groups of objects with ease
Inheritance, Polymorphism, and Interfaces are foundational concepts in Object-Oriented Programming (OOP) that enable the creation of scalable, modular
This article explores 20 essential shorthand operators every C# developer should master, complete with examples to understand their practical use.
Object-Oriented Programming (OOP) is a paradigm that organises code around objects and classes, making it easier to develop modular and reusable application
Functions and methods are essential building blocks in programming that allow you to group reusable blocks of code.
Control flow in a program determines the order in which instructions are executed.
In this lesson, we’ll explore operators and expressions in C#. These are fundamental concepts that allow you to perform calculations...
In this lesson, we’ll explore the fundamental concepts of variables and data types in C#.
What is C# and what is .NET? When you first hear about C# and .NET, it might seem a bit confusing as they’re often mentioned together. In reality, they’
Uploading images in Next.js is a common task when developing web applications. In this tutorial, we will explore two different approaches:
We will explore what client and server components are, their differences, when to use each one, and provide practical examples to help you implement.
I’ll explain what RabbitMQ is, how to integrate it with .NET, and some advanced routing patterns that will allow you to take your systems to the next level.
The CQRS (Command Query Responsibility Segregation) pattern is an architecture that separates the operations of reading (Query) and writing (Command) within
Routing is one of those fundamental pieces that any .NET developer needs to master.
Middlewares play a fundamental role in configuring the request processing pipeline, allowing developers to manipulate requests and responses.
If you've ever needed to integrate an email sending system into your Next.js application, you're in the right place!
This guide will walk you through the process of integrating Stripe into a .NET application, from initial setup to implementing payment functionality.
Internationalisation (i18n) is the process of designing an application to be easily adaptable to different languages and regions without engineering change
Dependency Injection (DI) is a crucial design pattern in modern software development that enables the construction of more flexible, maintainable, ...
Microsoft Azure is Microsoft's cloud platform offering powerful tools for developers and businesses to efficiently and securely build, deploy, etc.
In .NET development, Object-Relational Mapping (ORM) plays a crucial role in bridging object-oriented programming with relational databases.
The use of .NET architecture patterns such as MVC, MVP, MVVM and DDD allows developers to create more robust, maintainable and scalable applications.
This guide provides a solid foundation for effectively integrating reCAPTCHA v3 into your Next.js application.
Databases are essential for storing and managing data in modern applications. There are two major categories: **SQL** and **NoSQL**.
In this article, we will learn how to integrate the Google Maps API into a Next.js application.
Metadata is information about the data on your web page and is essential for SEO (Search Engine Optimization) and social media sharing. What is Metadata?
Inheritance and Composition in C#
Next.js, the popular JavaScript framework for server-side React applications, continues to evolve and improve.
The .gitignore file is an essential tool in any Git repository. It allows you to specify which files or directories should not be tracked by Git.
DRY, KISS, and YAGNI. Let's unravel their meaning and discover how they can make our lives as .NET developers much simpler and more efficient.
Imagine gRPC as an incredibly efficient messenger trained by Google to carry messages between different systems.
Design patterns are tools that we, as programmers, invented to solve common problems when developing software.
Mithril.js is a modern client-side JavaScript framework for building Single Page Applications (SPAs).
In software development lingo, messaging refers to the exchange of messages or data between various parts, services, or apps within a software system.
The amalgamation of front-end marvels with the robust backbone of .NET has revolutionized the landscape of modern web development.
Pixi is a fast package manager built on top of the existing Conda ecosystem.
We'll explore various HTTP methods and their applications within .NET. Each method serves a distinct purpose and finds utility in different scenarios.
In this article, we will address the fundamental concepts that we must understand when working or developing in secure environments.
JSON Web Token (JWT) is an open standard based on JSON for creating a token used to send data between applications or services.
An API, or Application Programming Interface, serves as the entry point into a project from external sources.
Monolithic architecture in the .NET ecosystem is a robust approach that centralizes all system responsibilities within a single application
The adoption of microservices architectures has revolutionized the way modern applications are developed and deployed.
Installation and configuration of docker for Dotnet 8 and React, I have also added some commands that will help us.
Asynchrony is an essential tool in modern programming, designed to enhance the efficiency and responsiveness of applications.
Clean Architecture provides a powerful framework for organising software projects, with four layers: Domain, Application, Infrastructure and Presentation.
Clean Architecture is a software design approach that prioritizes maintainability, scalability, flexibility, and productivity.