Skip to main content

Command Palette

Search for a command to run...

Building Finnear's Notification System

Updated
4 min read
Building Finnear's Notification System

I've been working on the notification layer for Finnear this week, and I wanted to share how I ended up choosing between email providers.

The Email Provider Decision

I needed to send transactional emails to users, specifically daily digest emails that show upcoming recurring transactions per organization. Something like "Hey, here are your 3 upcoming recurring transactions" with actual data pulled from the backend.

I already use Loops for my other app, Kualia, and I really like it. It's clean, simple, and works great for what I need there. So naturally, I started looking at using Loops for Finnear too.

But I hit a wall pretty quickly. I couldn't figure out how to create custom transactional emails with dynamic lists in Loops. I needed to loop through transactions (ironically, no pun intended) and display them in the email. The Loops dashboard didn't seem to have a way to handle repeating elements filled with backend data. It's great for simpler transactional emails, but this specific use case just wasn't clicking for me.

Enter Resend

That's when I decided to give Resend a try. Two things made it appealing:

First, Convex has first party support for Resend. Since I'm already using Convex for the backend, having that native integration meant less setup and configuration on my end.

Second, and more importantly, Resend lets me build the HTML email completely on the backend. I can fetch a list of recurring transactions, loop through them in my backend code, construct the HTML with all the data, and send it off. Total control over the email structure and content.

So I went with Resend, and it's been working really well. I can now send those daily digest emails with actual transaction lists, formatted exactly how I want them.

Trying Out Cursor 2.0

I've been using Claude Code for about 6 months now, paying $200/mo for it. It's been solid for delegating coding tasks when I don't want to get into the weeds of implementation details. Really good for when you just want something built and don't need to understand every line of code being written.

But I decided to give Cursor 2.0 a try with their new Composer 1 model, and honestly, it's doing a really good job. I'm currently on the $20 plan and have only been using it for a couple days, so I'm sure I'll hit the limits soon and need to upgrade to the $200/mo plan. But so far the model is great and super fast.

The difference I'm noticing is that Cursor feels built for developers who actually want to see and understand the changes being made. The inline diffs are amazing. You can skim through exactly what Cursor is changing and approve or reject specific parts. It's perfect for experienced developers who know their codebase and want that visibility.

Claude Code is better when you want to fully delegate and not look at the implementation. Cursor is better when you want to stay hands on and review the changes as they happen.

I was actually using Cursor alongside Claude Code before this anyway, so it's nice to consolidate into one tool. We'll see how it holds up as I keep building, but the initial experience has been really smooth.

Landing Page Refresh

I also spent some time updating the landing page this week. The previous version was pretty minimal, so I added more substance to help people understand what Finnear actually does.

The new version includes:

  • A proper feature list so visitors can quickly see what the app offers

  • Screenshots showing the actual interface

  • A demo video walking through the core functionality

It feels more complete now. More modern. And hopefully it does a better job of showing potential users what they're signing up for.


Building in public means sharing both the smooth decisions and the ones where you have to pivot. This was one of those pivots. Sometimes the tool you know isn't the right fit for the job, and that's okay. The important part is finding what works and shipping it.

Back to building.