HTTP/2 307
date: Thu, 24 Jul 2025 19:13:54 GMT
content-type: text/html; charset=utf-8
location: https://medium.com/m/global-identity-2?redirectUrl=https%3A%2F%2Fbetterprogramming.pub%2Fbuild-a-slack-app-home-in-golang-using-socket-mode-aff7b855bb31
cf-ray: 9645bcc7bf163e58-BOM
cf-cache-status: DYNAMIC
cache-control: no-cache, no-store, max-age=0, must-revalidate
strict-transport-security: max-age=31536000; includeSubDomains; preload
medium-fulfilled-by: edgy/8.15.0, valencia/main-20250723-182221-8abeb2799e
x-content-type-options: nosniff
x-envoy-upstream-service-time: 0
vary: Accept-Encoding
set-cookie: _cfuvid=Dz80LYJSWh0tfdXj2sqSO98Sid8Y3DOUSoLibs5YNOc-1753384434107-0.0.1.1-604800000; path=/; domain=.betterprogramming.pub; HttpOnly; Secure; SameSite=None
server: cloudflare
alt-svc: h3=":443"; ma=86400
HTTP/2 307
date: Thu, 24 Jul 2025 19:13:54 GMT
content-type: text/plain;charset=UTF-8
content-length: 0
location: https://betterprogramming.pub/build-a-slack-app-home-in-golang-using-socket-mode-aff7b855bb31?gi=044d69d10428
cf-ray: 9645bcc98f180abd-BOM
cf-cache-status: DYNAMIC
set-cookie: uid=lo_d6a74b416a3d; Domain=medium.com; Path=/; Expires=Fri, 28 Aug 2026 19:13:54 GMT; HttpOnly; Secure; SameSite=None
strict-transport-security: max-age=31536000; includeSubDomains; preload
medium-fulfilled-by: edgy/8.15.0, valencia/main-20250723-182221-8abeb2799e
worker-missing-cookies: 1
x-content-type-options: nosniff
x-envoy-upstream-service-time: 23
vary: Accept-Encoding
set-cookie: sid=1:pXbY+KkZp6JtzotV1dJsRzMBytj4T8rd0/Hb/Mmxx51rybHx0+h2O5Pv4496T8gN; Domain=medium.com; Path=/; Expires=Fri, 28 Aug 2026 19:13:54 GMT; HttpOnly; Secure; SameSite=None
set-cookie: _cfuvid=2JJbMrcaNgtVZDydbeA8wno6NlRoiMwE6FtoV0NE__Q-1753384434422-0.0.1.1-604800000; path=/; domain=.medium.com; HttpOnly; Secure; SameSite=None
server: cloudflare
alt-svc: h3=":443"; ma=86400
HTTP/2 302
date: Thu, 24 Jul 2025 19:13:55 GMT
content-type: text/plain; charset=utf-8
content-length: 123
location: https://medium.com/better-programming/build-a-slack-app-home-in-golang-using-socket-mode-aff7b855bb31
cf-ray: 9645bccb39173e58-BOM
cf-cache-status: DYNAMIC
cache-control: no-cache, no-store, max-age=0, must-revalidate
set-cookie: uid=lo_d6a74b416a3d; Path=/; Expires=Fri, 28 Aug 2026 19:13:54 GMT; HttpOnly; Secure; SameSite=None
strict-transport-security: max-age=31536000; includeSubDomains; preload
vary: Accept, Accept-Encoding
content-security-policy: frame-ancestors 'self' https://medium.com
medium-fulfilled-by: edgy/8.15.0, valencia/main-20250723-182221-8abeb2799e, lite/main-20250724-180305-14c67bf63a, rito/main-20250724-180305-14c67bf63a
medium-missing-time: 299
set-cookie: sid=1:1sUA6NMAE3ZEnXJauKKdzSyiio8/l3ehW7LbrYfYAmSUVUOvh0pgY05sC+ZV+Xu3; Path=/; Expires=Fri, 28 Aug 2026 19:13:54 GMT; HttpOnly; Secure; SameSite=None
x-content-type-options: nosniff
x-envoy-upstream-service-time: 520
x-request-received-at: 1753384434682
server: cloudflare
alt-svc: h3=":443"; ma=86400
HTTP/2 200
date: Thu, 24 Jul 2025 19:13:56 GMT
content-type: text/html; charset=utf-8
cf-ray: 9645bcd01f400abd-BOM
cf-cache-status: EXPIRED
cache-control: no-cache, no-store, max-age=0, must-revalidate
expires: Fri, 25 Jul 2025 19:13:56 GMT
link:
; as="style"; rel="preload"
strict-transport-security: max-age=31536000; includeSubDomains; preload
vary: Accept-Encoding
content-security-policy: frame-ancestors 'self' https://medium.com
medium-fulfilled-by: edgy/8.15.0, valencia/main-20250723-182221-8abeb2799e, lite/main-20250724-180305-14c67bf63a, rito/main-20250724-180305-14c67bf63a
medium-missing-time: 343
worker-cache-key: medium.com/better-programming/build-a-slack-app-home-in-golang-using-socket-mode-aff7b855bb31?gate-enable_update_topic_portals_wtf=true&gate-enable_medium_com_canonical_urls=true&exp-enable_post_bottom_responses=group_2&exp-enable_sunset_lo_non_moc_upsell=group1
worker-cache-middleware: true
worker-missing-cookies: 0
x-content-type-options: nosniff
x-envoy-upstream-service-time: 523
x-request-received-at: 1753384435872
server: cloudflare
content-encoding: gzip
alt-svc: h3=":443"; ma=86400
Build Your Slack App Home in Golang Using Socket Mode | by Alexandre Couëdelo | Better Programming Sitemap
GOLANG SLACKBOT TUTORIAL
Build Your Slack App Home in Golang Using Socket Mode Building a home for your app — revisited in Go Zoom image will be displayed Photo by Olia Nayda on Unsplash , Gopher by Egon Elbre . This tutorial is about implementing an App Home in Golang with the slack-go library and Slack’s Socket Mode . This guide was inspired by an article from Slack’s documentation .
An App Home is that space that appears under the App section in the conversation list with your app’s name. It is a fully customizable space to provide documentation and interaction with your app.
Zoom image will be displayed Photo by the author. “Why Socket Mode?” you may ask.
With Socket Mode, you don’t need a server with a publicly available IP address. In other words, your laptop, your Raspberry Pi, or a private server can host your bot. Socket Mode is perfect for small applications that you do not intend to distribute via the App Directory .
Configure Your Application To start this tutorial, you will need a Slack application with the proper permissions and Socket Mode activated. You can refer to this documentation to create your app and add the permissions. I also wrote a…