Steve Cook's Avatar

Steve Cook

@groovekit.io

Building tools to make software more reliable and developers more relaxed. 🧘 Stay in the groove. ⚑ πŸ”— groovekit.io

17
Followers
13
Following
44
Posts
13.01.2026
Joined
Posts Following

Latest posts by Steve Cook @groovekit.io

Beyond checking the config, my main troubleshooting tip is using a tool like dig to verify the propagation or checking the Authentication tab in the original email headers. It’ll tell you exactly where the SPF check failed.

11.03.2026 18:23 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I've not dealt with clients on the issue, because either I've managed the DNS, or another department handled it. This is just as much for me (I've messed it up before and forgotten to add those TXT records haha!). Main thing is ensuring they're there.

11.03.2026 16:10 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Don't let a silent fail kill your launch. If your transactional emails (welcome links, password resets) are hitting spam, your SPF record is likely missing or misconfigured.

I wrote a 5-minute technical guide on how to fix it groovekit.io/blog/spf-rec...

#DNS #EmailMarketing #BuildInPublic #DevOps

11.03.2026 15:51 πŸ‘ 4 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Still using cURL? I've been using HTTPie for a few years now and I'll never go back to cURL. Nice, elegant, user-friendly one-liners. groovekit.io/blog/httpie

#terminal #backend #cli

05.03.2026 23:51 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Read the full post here: groovekit.io/blog/no-more...

#buildinpublic #dns #groovekit

02.03.2026 19:01 πŸ‘ 3 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

New blog post on why I built DNS Record Validation into GrooveKit.

One typo in an SPF or TXT record can tank your email deliverability without you noticing. I built this so we never have to deal with that silent killer again. Set your expected values, and you'll get notified if anything drifts.

02.03.2026 19:00 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Public status page powered by GrooveKit

Public status page powered by GrooveKit

Introducing public status pages for all your GrooveKit monitors.

πŸ›°οΈ Give your users a real-time view of your uptime.

πŸ“§ Integrated "Subscribe to Updates" so they're the first to know when you're back in the groove.

Transparency builds trust. Build yours with GrooveKit.

groovekit.io #buildinpublic

24.02.2026 20:36 πŸ‘ 2 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
DNS monitor details screenshot

DNS monitor details screenshot

🌐 I just added DNS Monitoring to Encore. Now you can track A, CNAME, TXT records, and more.

πŸ› οΈ How it works: Set your expected values, and if your records drift or disappear, GrooveKit alerts you immediately via email, SMS, Slack, etc.

Keep your domain's rhythm steady.

groovekit.io #buildinpublic

19.02.2026 15:02 πŸ‘ 2 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Domain monitor screenshot

Domain monitor screenshot

πŸ•’ Don't let your domain expire because of a missed email.

GrooveKit just added Domain Name monitoring to the Encore suite! 🎸

Track your domain’s expiry, registrar status, and renewal windows right alongside your SSL certs and API monitors.

groovekit.io

#buildinpublic #SaaS #devops

18.02.2026 15:05 πŸ‘ 1 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Dashboard displaying SSL monitor details

Dashboard displaying SSL monitor details

🚨 Silent API failures are bad. Expired SSL certs are pretty bad, too.

πŸ”’ I just added SSL monitoring to GrooveKit. Track expiry dates and cipher health before they become an incident.

groovekit.io #buildinpublic

12.02.2026 14:29 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Pretty simple adding it to your workflow:

πŸ› οΈ env GROOVEKIT_TOKEN=${{ secrets.GK_TOKEN }} groovekit monitors list --json | jq πŸ› οΈ

Give it a spin:

πŸ› οΈ brew install scookdev/groovekit/groovekit πŸ› οΈ

Let me know what you think!

#backend #softwareengineering #groovekit

09.02.2026 19:32 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Our Go-based CLI now prioritizes a secret token in your environment.

πŸ”‘ Generate a token in your dashboard
🀐 Add it to your GitHub Secrets
πŸš€ Your pipeline is now "in the groove" automatically.

09.02.2026 19:06 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

🚨 CI/CD just got a lot smoother for GrooveKit.

We all know the "200 OK is a lie" mantra, but catching those lies in production is too late. You need it in your pipeline. I rolled out long-lived tokens for groovekit-cli. No more interactive login hurdles in your runners. 🧡

#buildinpublic #devops

09.02.2026 18:54 πŸ‘ 3 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0
Terminal window showing the output of GrooveKit jobs list in a table with columns for ID, Name, Interval, Status, and Health.

Terminal window showing the output of GrooveKit jobs list in a table with columns for ID, Name, Interval, Status, and Health.

Backend monitoring shouldn't just live in a browser tab. πŸ› οΈ

Working on a Go-powered CLI for GrooveKit. If you live in the terminal (kitty + neovim) like I do, checking cron health and API status directly from the terminal just feels right. 🏎️

groovekit.io

#buildinpublic #golang #backend #neovim

04.02.2026 13:47 πŸ‘ 4 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
GrooveKit - Straightforward Tools for People who Build Things

The data is technically in the network response, but the caching layer effectively hides it from your UI. This is why I'm obsessed with monitoring at the network level. If a response is missing a critical ID, I want an alert before it hits the browser and turns my fragments into black holes.

03.02.2026 19:14 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

With Apollo, missing IDs are a silent killer. I've had a list query return flaky results where items overwrite each other or vanish. This happens because Apollo's "completeness check" fails. If the cache can’t find a unique ID, it often marks the whole fragment as incomplete and returns null.

03.02.2026 19:13 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Reminder for GraphQL devs: Your cache is only as smart as your query.

Forget the id field in a list? Say hello to silent normalization errors and "ghost" data. πŸ‘»

Even if you don't need the ID for the UI, your cache needs it for its sanity.

#buildinpublic #backend

groovekit.io

03.02.2026 14:11 πŸ‘ 3 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Mostly just adding more edge case test coverage. Not really surprising, though.

30.01.2026 17:15 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

No big GrooveKit feature shipped today - just tightening screws and fixing the stuff only I notice.

groovekit.io #buildinpublic

30.01.2026 15:20 πŸ‘ 2 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0

Just implemented so I'll see what kind of feedback I get. But for me, it's going beyond just an OK status - that kind of monitoring doesn't provide much value, so I like to know if the errors array has been populated.

29.01.2026 17:11 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I wrote a blog post on this GraphQL paradox last night: groovekit.io/blog/graphql...

TL;DR: Your monitor is green, but your API is returning errors. Here’s how we fixed that in GrooveKit.

29.01.2026 15:45 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

GraphQL famously returns 200 OK even when queries fail. 🫠

New from GrooveKit: Upright now monitors GraphQL & catches hidden errors in your query responses.

Check it out if you get a chance - I'd love for you to try it, feedback always welcomed groovekit.io

#buildinpublic #api #graphql #backend

29.01.2026 15:43 πŸ‘ 2 πŸ” 0 πŸ’¬ 2 πŸ“Œ 0

By the way, I just finished a blog post on exactly those challenges of the "200 lie" and why I decided to go all-in on schema validation for Upright. I thought you might find it interesting. groovekit.io/blog/api-mon...

28.01.2026 18:37 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Looking forward to seeing what the early users find!

28.01.2026 18:23 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Since I just went live, I'm currently in the "early discovery" phase with users. However, even in beta, I've caught several "silent failures" where APIs were returning 200 OK but missing critical keys. That validated the entire reason I built Upright - proving that uptime is only half the battle.

28.01.2026 18:23 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

A 200 OK status is a lie if your API is returning invalid data. πŸ’€

I launched JSON schema validation for Upright. Catch "silent outages" where the server is up but the response is missing keys or has broken types.

Bulletproof your data integrity groovekit.io πŸš€

#buildinpublic #devops #api

28.01.2026 16:19 πŸ‘ 4 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0

A perfect use case is Webhook handlers (like Stripe). If an API version bump changes the payload structure and your schema validation fails, GrooveKit tells you before your database gets messy or your checkout breaks. 2/2

27.01.2026 17:06 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Great question! Most monitors only check if the response is a 200, but that's not always enough. I built it because I’ve been burned by 'silent outages' where an API drops a key or changes a data type. The server says it's fine, but the app is actually crashing. 1/2

27.01.2026 17:06 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
API monitor stats

API monitor stats

27.01.2026 16:57 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
API monitoring detail page

API monitoring detail page

27.01.2026 16:56 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0