Full Width [alt+shift+f] Shortcuts [alt+shift+k]
Sign Up [alt+shift+s] Log In [alt+shift+l]
75

More from Build In Public Newsletter

Metal detector for hidden revenue 💰👀🔎

Meet Lasso, an AI-driven sales prospecting tool that'll help you find the B2B prospects your sales team is overlooking.

3 months ago • 58 votes
Your New Brainstorming Buddy 🧠💡

Meet Scrintal, a new canvas that's like a playground for your mind.

3 months ago • 60 votes
Meet Turf

Imagine having a Swiss Army Knife for your community use cases

6 months ago • 107 votes
I just announced an AI accelerator program

Full story on my latest role at Paddle, the new AI program, and what it means for you

9 months ago • 136 votes

More in indiehacker

Beehiiv vs ConvertKit - the best newsletter software for 2025

Beehiiv vs ConvertKit is a fierce clash of two newsletter software companies. I'll go over differences on pricing, features and lots more.

3 days ago • 10 votes
OnlineOrNot Diaries 24

Looking over last year, and a first incident for 2025.

a week ago • 16 votes
How to Resolve Local Hostnames in OPNSense

My router runs OPNSense Business. I like having an open-source router, but I have a few gripes with it. My biggest issue is that, by default, OPNsense can’t resolve hostnames on my local network. Why can’t OPNsense resolve local hostnames? For every other router I’ve owned in my life, if there’s a computer on my network named foo123 and I run ping foo123, then everything just works, and my computer successfully pings foo123.

a week ago • 22 votes
Living the digital nomad dream in Bangkok

Jesse Schoberg has an enviable life as a founder working from Thailand. He enjoys a great lifestyle at a fraction of the price back in the US. I chatted to him about growing his DropInBlog business into a SaaS success story. Why did you become a founder? My brain doesn&

3 weeks ago • 36 votes
if got, want: A Simple Way to Write Better Go Tests

There’s an excellent Go testing pattern that too few people know. I can teach it to you in 30 seconds. Instead of writing Go tests like this: // The common, unrefined way. username := GetUser() if username != "dummyUser" { t.Errorf("unexpected username: got %s, want: %s", username, "dummyUser") } Write your tests like this, beginning each assertion with if got, want :=: // The underused, elegant way. if got, want := GetUser(), "dummyUser"; got != want { t.Errorf("username=%s, want=%s", got, want) } The if got, want :=: pattern works even better in table-driven tests. Here’s an example from my library for parsing social media handles:

3 weeks ago • 37 votes