Go to home
Product
Developers
Resources
Customers
Pricing
Log inSign up
Blog
  • / Engineering

Categories

  • All
  • Company
  • Customers
  • Engineering
  • Product
Engineering23 May 2025

How to add an in-app notification feed to Next.js

A high level tutorial on how to get started with Knock's drop-in notification feed components and Next.js

Jeff Everhart
Jeff Everhart
Engineering22 Apr 2025

Troubleshooting channel_not_found in Slack incoming webhooks

Learn how to resolve the channel_not_found error when using Slack's Incoming Webhooks to send messages to different channels.

Jeff Everhart
Jeff Everhart
Engineering28 Mar 2025

How we think about writing for robots with llms.txt

A deep dive into how we built our llms.txt file for our docs.

Jeff Everhart
Jeff Everhart
Engineering05 Mar 2025

Building effective component libraries: a startup perspective on design systems

How we approach building and maintaining our component library at Knock

Kyle McDonald
Kyle McDonald
Engineering01 Aug 2024

Kinesis consumer balancing

How we balanced Kinesis consumers across our Kubernetes pods to improve platform performance and resilience.

Brent Anderson
Brent Anderson
Engineering29 May 2024

How to build an in-app notification feed with Nuxt and Vue

An in-depth guide that covers building a real-time activity feed using Nuxt, shadcn/ui, and Knock

Jeff Everhart
Jeff Everhart
Engineering15 May 2024

How to render tables in Slack markdown

A quick guide that covers a few ways to create table layouts in Slack markdown

Jeff Everhart
Jeff Everhart
Engineering25 Apr 2024

Building a Notion-style activity feed with Next.js and shadcn/ui

An in-depth guide that covers building a real-time activity feed using Next.js, shadcn/ui, and Knock

Jeff Everhart
Jeff Everhart
Engineering11 Apr 2024

How push notifications work on Apple and Android

An overview of how push notifications work on Apple and Android operating systems.

Jeff Everhart
Jeff Everhart
Engineering05 Apr 2024

The benefits of adding an activity feed to your B2B product

This post covers some of the benefits of adding activity feeds to B2B SaaS products

Jeff Everhart
Jeff Everhart
Engineering28 Mar 2024

Hacking our PostgreSQL driver to get more out of Amazon RDS performance insights

How one small modification to the Elixir Postgrex library let us force AWS monitoring to enumerate database query performance on a per-transaction basis.

Billy Ceskavich
Billy Ceskavich
Engineering26 Mar 2024

Getting started with SlackKit

A step-by-step guide to creating a Slack app with SlackKit and Next.js

Jeff Everhart
Jeff Everhart
Engineering13 Feb 2024

How to model Slack webhook connections in Knock

A step-by-step guide to modeling Slack webhook connections in Knock.

Jeff Everhart
Jeff Everhart
Engineering01 Feb 2024

Taking a deep dive into Slack's Block Kit

A deep dive into Slack's Block Kit with examples on building static and interactive notifications for your Slack app.

Jeff Everhart
Jeff Everhart
Engineering18 Jan 2024

How to authenticate users with Slack using OAuth

A step-by-step guide to using OAuth with Slack to authenticate users in a Node.js application.

Jeff Everhart
Jeff Everhart
Engineering19 Dec 2023

How to send in-app notifications with Next.js

A step-by-step guide to sending in-app feed notifications with Next.js using the app directory and React Server Components

Jeff Everhart
Jeff Everhart
Engineering12 Dec 2023

Zero downtime Postgres upgrades

How we upgraded from Postgres 11.9 to 15.3 with zero downtime

Brent Anderson
Brent Anderson
Engineering17 Oct 2023

The five principles of modern developer tools

A deep dive into how modern developer tools bring typing, CI/CD integration, and version control to engineering teams where they work.

Sam Seely
Sam Seely
Engineering14 Sep 2023

Why you need observability in notification systems

Notifications are a critical bridge between your product and your users. Learn why you need to add observability into your notification system.

Chris Bell
Chris Bell
Engineering31 Aug 2023

How we built our data warehouse connector using Prequel

A deep dive on how and why we built our data warehouse connector using Prequel, a data warehouse connector as a service.

Sam Seely
Sam Seely
Engineering10 Jul 2023

How we built our workflow throttles using Redis Streams

A deep dive into how we built our throttle function with Redis Streams.

Brent Anderson
Brent Anderson
Engineering07 Apr 2023

Using our One and Done library to power idempotent API requests

A look at idempotent requests, why they are important, and how to use our new One and Done library to implement them in your Elixir applications.

Brent Anderson
Brent Anderson
Engineering11 Jan 2023

The developer's guide to notification system tooling in 2023

An in-depth look at notification systems and the ecosystem of tools, frameworks, and vendors available.

Chris Bell
Chris Bell
Engineering02 Nov 2022

How to ORDER BY using the contents of a column in Postgres

How we solved a challenging customer request using Postgres.

Brent Anderson
Brent Anderson
Engineering27 Oct 2022

Implementing SSO using WorkOS

How Knock used WorkOS to implement SAML 2.0 SSO quickly and efficiently in our Elixir codebase.

Juan Azambuja
Juan Azambuja
Engineering19 Oct 2022

Implementing a usage-based billing system: integration deep dive (part 2)

A closer look at implementation details in building a usage-based billing system powered by Orb.

Thomas Yu
Thomas Yu
Engineering06 Oct 2022

Six findings we rely on when managing PostgreSQL indexes

A look into how we evaluate which indexes to use and when to maximize query efficiency.

Billy Ceskavich
Billy Ceskavich
Engineering23 Sep 2022

Evaluating usage-based billing providers: what engineers need to know (part 1)

A look into our experience in buying and integrating a usage-based billing provider at Knock.

Chris Bell
Chris Bell
Engineering14 Sep 2022

How we built webhooks in Knock

A deep dive into how we built our webhooks feature using the underlying Knock notification engine and a few learnings along the way.

Meryl Dakin
Meryl Dakin
Engineering21 Jul 2022

How we onboard engineers at a devtools startup

A behind-the-scenes look at how we onboard new engineers at Knock, and the principles we use to do so.

Chris Bell
Chris Bell
Engineering16 Jun 2022

Controlling Elixir supervisors at runtime with feature flags

A look at how Knock uses Elixir and feature flags to adapt our software at runtime.

Brent Anderson
Brent Anderson
Engineering01 Jun 2022

Building a batched notification engine

A deep dive on how to design and build a batched system for your product notifications.

Chris Bell
Chris Bell
Engineering23 Feb 2022

How we use Postgres LTrees to surface API logs

Postgres ships with the Label Tree data type. How Knock uses LTrees for fast API log search.

Brent Anderson
Brent Anderson
Product25 Oct 2021

How we work: moving fast to ship customer value

A peek behind the curtain at Knock. How we work to optimize for shipping customer value, quickly.

Chris Bell
Chris Bell
Engineering15 Sep 2021

Using the Knock notification component to add an in-app feed to your product

A look into how to set up and use Knock's in-app feed component.

Chris Bell
Chris Bell
Engineering02 Jun 2021

Using Knock to power Knock's notifications

Getting meta and showing the power of Knock to build our member invite feature.

Chris Bell
Chris Bell

Categories

  • All
  • Company
  • Customers
  • Engineering
  • Product

Keep in touch

We write about all things notifications and our experience building Knock

Logo

Product and customer messaging infrastructure.

Get startedBook a demo
  • PRODUCT
  • Log in
  • Changelog
  • Pricing
  • DEVELOPERS
  • Docs
  • SDKs
  • GitHub
GET OUR NEWSLETTER
Terms of usePrivacy policyCookie preferences