This content originally appeared on DEV Community and was authored by Egor
A few days ago, while building a beekeeping management platform, I hit a small but annoying wall 👨💻.
We track honey batches uploaded by different beekeepers 🍯.
Each batch record has its sender’s email, while the sold honey records just reference a batch by ID — no email field there 😓.
When I started building the “Sold Honey” page, I realized:
“How do I show only the sales belonging to the logged-in user if sold_honey doesn’t even have an email?”
At first, I thought I’d just pull everything from Supabase and filter client-side.
But that quickly felt messy and inefficient — especially with pagination 💦.
That’s when I remembered 🔥: Supabase lets you write RPC (Postgres) functions.
They’re like serverless endpoints that live right inside your database.
✨ The Fix
Instead of sending multiple queries or writing big joins in React (Next.js), I created a tiny SQL function get_sold_honey_by_email that joins both tables internally and filters by email.
create or replace function get_sold_honey_by_email(p_email text)
returns setof sold_honey as $$
select s.*
from sold_honey s
join honey_batches h on s.honey_batch_id = h.id
where h.sender_email = p_email
order by s.id desc;
$$ language sql;
That’s it — no sensitive fields, no extra logic in the frontend 👍.
⚛️ One Simple Call in Next.js
const { data, error } = await supabase.rpc("get_sold_honey_by_email", {
p_email: user.email,
});
Done. I get back only the user’s data, already filtered and ready to render.
No where clauses in React, no accidental overfetching, no extra stress.
🥳🎉
💡 What I Learned
- Supabase RPCs are perfect for moving business logic closer to your data.
- They keep your frontend clean and your backend predictable.
- Pagination, filtering, even validations — they can all live inside the database.
This small win made my data flow so much simpler that I started refactoring other pages the same way.
Sometimes the cleanest frontend is just a smart SQL function away 💛
Built with Supabase + Next.js on a real-world beekeeping data project 🐝
If you’re exploring Supabase, try writing one RPC function today — it might surprise you how much cleaner your code feels.
This content originally appeared on DEV Community and was authored by Egor
Egor | Sciencx (2025-10-24T01:32:20+00:00) 🐝 How a Simple Supabase RPC Function Cleaned Up My Frontend Logic. Retrieved from https://www.scien.cx/2025/10/24/%f0%9f%90%9d-how-a-simple-supabase-rpc-function-cleaned-up-my-frontend-logic/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.