evantahler

Joined 15 years ago

Karma
550
Submissions
255
Member since
May 2
Keeping AI safe and powerful with Arcade.dev. Previously @ Airbyte & co-founder of Grouparoo & Voom. BDFL of Keryxjs.com & Actionherojs.com

* https://www.evantahler.com * https://github.com/evantahler * https://twitter.com/evantahler

[ my public key: https://keybase.io/evantahler; my proof: https://keybase.io/evantahler/sigs/0NsPFHC3XZlVcWViIXGSMTM73ap__K4X_p3Fgj1mwm4 ]

View on Hacker News

Recent submissions

Comment · 1 month ago
Comment · 4 months ago
I’m in the weights!

So… what does this mean for the right to be forgotten?

Comment · 4 months ago
Comment · 5 months ago
Comment · 5 months ago
That guy looks nothing like Hugh Jackman
Comment · 5 months ago
Being that this is HN, do we know how they got hacked? Can we learn something about protecting our services?
Comment · 6 months ago
I wrote Actionhero in 2011 to stop duplicating handlers for HTTP and WebSocket. Fifteen years later, that same handler also needs to work for AI agents, so... here’s another framework ;)

This time I fixed all the mistakes, I promise!

Comment · 6 months ago
Comment · 6 months ago
I feel like asking the thing that you are measuring, and don’t trust, to measure itself might not produce the best measurements.
Comment · 7 months ago
Hi HN, I’m Evan. I’ve been building API frameworks in JavaScript and Typescript for over a decade (I created Actionhero), and Keryx is the distillation of everything I’ve learned, rebuilt from scratch on Bun and TypeScript.

The big idea: you write one action class with a Zod schema, and the framework serves it as an HTTP endpoint, a WebSocket handler, a CLI command, a background task, and an MCP tool with the same validation, same middleware, same `run()` method. The only thing that changes is how the request arrives.

The MCP part is what pushed me to build this. I work on AI agent infrastructure at Arcade (we do authorization and tooling for AI agents), and I kept seeing folks bolt MCP servers onto existing APIs as a separate layer with duplicated auth, duplicated schemas, and duplicated error handling. Keryx makes your API an MCP server by default — OAuth 2.1 + PKCE built in, per-session isolation, and typed errors that agents can actually distinguish.

The stack is opinionated: Bun, Zod, Drizzle ORM, Redis (for Resque-based background tasks and PubSub), PostgreSQL. No compilation step, sub-second startup.

You can try it right now:

  bunx keryx new my-app
  cd my-app
  cp .env.example .env
  bun install
  bun dev

Requires Bun, PostgreSQL, and Redis running locally (and a `createdb bun` for the default DB).

Some things I’d love feedback on:

- Is the “one action, every transport” abstraction too magical, or does it feel natural once you use it? - The MCP-native approach — is this how you’d want to add agent support to a new project? - Anything missing from the comparison table on the homepage?

Code is MIT licensed: https://github.com/actionhero/keryx

Happy to answer questions about the architecture, the MCP integration, or why I think Bun is ready for this kind of framework.

Comment · 7 months ago

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton