You are browsing as a guest. Sign up (or log in) to start making projects!

bluecorexux

@bluecorexux

Joined June 1st, 2026

  • 3Devlogs
  • 1Projects
  • 1Ships
  • 7Votes
Ship

This is my first JS project. I spent two weeks learning the language and built this. The challenging parts weren't the Slack API — it was the stuff around it. Handling permission errors without crashing, figuring out that Gemini and OpenAI have completely different API formats, and setting up a Linux server to keep it running 24/7 after my laptop closes.
To test it, install it to your workspace using the "Add to Slack" button in the README. Commands are limited for now so the README covers everything in under a minute. Start with /haaitzzabot-ping to check it is alive, then try /haaitzzabot-summarize

Try project → See source code →
Open comments for this post

1h 42m 36s logged

Devlog 3
Built an OAuth server using Express so users can install the bot into their own Slack workspaces via an “Add to Slack” button.

Got a shallow knowledge on how OAuth works and learnt how to build a express server to catch the code and proceed with OAuth

Deployed it as a second systemd daemon on Hack Club’s server. Now both the bot and the OAuth server run 24/7 without my laptop being on.

0
Original post
@bluecorexux

Devlog 3
Built an OAuth server using Express so users can install the bot into their own Slack workspaces via an “Add to Slack” button.

Got a shallow knowledge on how OAuth works and learnt how to build a express server to catch the code and proceed with OAuth

Deployed it as a second systemd daemon on Hack Club’s server. Now both the bot and the OAuth server run 24/7 without my laptop being on.

Replies

Loading replies…

0
2
Open comments for this post

1h 13m 21s logged

Devlog 2
Turns out one AI provider isn’t enough — so I added OpenAI support to the /summarize command via the -model flag.

The interesting part wasn’t the API call itself. It was realising that Gemini and OpenAI have completely different request formats — different URLs, different auth methods, different JSON body structures. So I had to refactor the whole AI section: pulled the Gemini logic into its own askGemini() function, then built an askOpenAI() twin next to it. Also learned the hard way that OpenAI’s free tier doesn’t exist for developers. Got a clean 429 back .

Finally SSHed into Hack Club’s server, set the bot up as a systemd service, and now it just… runs. 24/7.

0
Original post
@bluecorexux

Devlog 2
Turns out one AI provider isn’t enough — so I added OpenAI support to the /summarize command via the -model flag.

The interesting part wasn’t the API call itself. It was realising that Gemini and OpenAI have completely different request formats — different URLs, different auth methods, different JSON body structures. So I had to refactor the whole AI section: pulled the Gemini logic into its own askGemini() function, then built an askOpenAI() twin next to it. Also learned the hard way that OpenAI’s free tier doesn’t exist for developers. Got a clean 429 back .

Finally SSHed into Hack Club’s server, set the bot up as a systemd service, and now it just… runs. 24/7.

Replies

Loading replies…

0
2
Open comments for this post

5h 21m 48s logged

Dev Log 1
Joined Stardance at the start of June — now it’s about to end. Spent a month learning a language that took its developer 10 days to prototype!

Finally shipped my first JS project: a Slack bot.

Still a bash loyalist at heart, so I built a CLI parser (a minimal implementation) that lets users interact with the bot like a command-line tool.
I’ve added a /summarize command to help me triage unread messages across Slack. It fetches the last n hours of messages (-time flag) from a target channel (selectable via -channel flag), pipes them to the Gemini API, and lets users fine-tune the AI’s output with a custom -prompt flag.

The dopamine hit of shipping this without blindly dumping AI-generated code was unmatched — the kind of serotonin you only get from debugging your own stack traces at 1 AM. And somewhere along the way, I learned to collaborate with the weirdo.

0
Original post
@bluecorexux

Dev Log 1
Joined Stardance at the start of June — now it’s about to end. Spent a month learning a language that took its developer 10 days to prototype!

Finally shipped my first JS project: a Slack bot.

Still a bash loyalist at heart, so I built a CLI parser (a minimal implementation) that lets users interact with the bot like a command-line tool.
I’ve added a /summarize command to help me triage unread messages across Slack. It fetches the last n hours of messages (-time flag) from a target channel (selectable via -channel flag), pipes them to the Gemini API, and lets users fine-tune the AI’s output with a custom -prompt flag.

The dopamine hit of shipping this without blindly dumping AI-generated code was unmatched — the kind of serotonin you only get from debugging your own stack traces at 1 AM. And somewhere along the way, I learned to collaborate with the weirdo.

Replies

Loading replies…

0
8

Followers

Loading…