Blog

147 posts. Browse by tag.
Latest posts

May 1, 2026
Building Software for Humans and Agents
I've been building a library and a framework in parallel, and the same design constraint keeps showing up in both: every piece of software now has two audiences, humans and agents. Here's what that changes — for libraries, and for frameworks.

Mar 13, 2026
Announcing Keryx: A Full-Stack TypeScript Framework for APIs and MCP Servers
After 14 years of building Actionhero, I built a new framework from scratch. Keryx lets you write one Action class and deploy it across HTTP, WebSocket, CLI, background tasks, and MCP — all with the same validation and middleware.
Archive
2026
2025
2024
2023
Introducing Airbyte Destinations V2 - Typing & DedupingAug 29, 2023
Airbyte Checkpointing: Ensuring Uninterrupted Data SyncsJun 1, 2023
Upgrading our Community Pull Requests ExperienceApr 28, 2023
Accelerating Alpha Connectors to Airbyte Cloud: 57 New Connectors Ready For TakeoffMar 1, 2023
The Road to GA: Understanding Airbyte Connector Release StagesJan 19, 2023
Architecture Notes: 2022 CFTJan 3, 2023
2022
2021
Running a Node app on both IPv4 and IPv6Aug 16, 2021
Heroku Slack NotificationsJun 11, 2021
Bundle and Distribute Next.js Sites via NPMJun 3, 2021
Why are database columns 191 characters?May 14, 2021- Don't Do Background Jobs on Google Cloud RunApr 13, 2021
Don’t use Underscores in your HTTP Headers Mar 17, 2021
SQL Dialect differences in SequelizeMar 4, 2021
Gifit: Turn Screen Recordings into GIFsFeb 12, 2021
Defer Transaction Side-Effects in Node.jsJan 21, 2021
2020
Developing Grouparoo on macOS Big SurNov 13, 2020
Fullstack Typescript - Create an APIOct 16, 2020
Save your High Water Marks as StringsSep 14, 2020
Sharing Code in Next.JS Apps with PluginsJul 23, 2020
Pull the Data you Actually WantMay 22, 2020
Continuous Deployment for NPM PackagesMay 7, 2020
2020 Actionhero Developer Survey ResultsMar 1, 2020
Production Node Applications with Docker — 3 DevOps Tips for Shutting Down ProperlyFeb 18, 2020
2019
Proxying free Heroku Dynos though Cloudflare to a custom domainDec 30, 2019
Markdown in React and Custom Page ElementsDec 2, 2019
Actions, Tasks, and Destructured Params- The Illustrated Actionhero Community QAOct 21, 2019
Github SponsorshipOct 19, 2019
Online and Offline Sync — The Illustrated Actionhero Community Q&AOct 15, 2019
Failing a Task — The Illustrated Actionhero Community Q&AOct 7, 2019
Actionhero for Real-time Games — The Illustrated Actionhero Community Q&ASep 30, 2019
Using Next.JS to build Static Dynamic Websites… and never pay for font-end hosting again!Sep 13, 2019
Keep that VPN Connected (MacOS)Aug 9, 2019
The Voom Software Engineering Interview ProcessMar 21, 2019
Controlling your Magic Painting with your wordsJan 8, 2019
2018
Repeat Rate: What are you Actually Measuring?Dec 31, 2018
Data Science vs AnalyticsNov 1, 2018
Tips for Building International Products and CompaniesOct 9, 2018
Customizable "Other" Option in Google FormsJun 22, 2018
Testing javascript applications with Selenium, Async/Await, and JestMar 28, 2018
Goodbye Scoreboard GuruJan 4, 2018
2017
ActionHero V18: Async/AwaitOct 7, 2017
CloudFlare and Server-Side React: Overzealous Optimization with Auto-MinifyAug 14, 2017
Looking for a new ElasticDump Maintainer. It could be you!Jun 9, 2017
Don't be a Jerk - The Open Source LicenseApr 3, 2017
Scoreboard Guru Initial ReleaseMar 23, 2017
Why Choose ActionheroFeb 28, 2017
2016
On Ethical Ad-Supported BusinessesDec 23, 2016
Actionhero + Standard.jsDec 14, 2016
Deploying to Flynn from Travis.CIOct 29, 2016
Productionizing Flynn and Hosting your Root Domain(s)Oct 28, 2016
ActionHero v15.1.2: Security ReleaseOct 28, 2016
ActionHero and Node.JS v7Oct 26, 2016
Too many Chrome Tabs = Node.JS Server CrashOct 11, 2016
Ruby, Homebrew, and OSX Sierra UpgradesSep 22, 2016
ActionHero V15.0.0 and Release CadenceAug 7, 2016
Building and Testing ActionHero PluginsJul 25, 2016
Ansible, LetsEncrypt!, NGINX, and ActionHeroJul 23, 2016
ActionHero’s Resque UIJul 7, 2016
Actionhero v14 and a problem with recursive configurationJun 24, 2016
A memory leak in node (ActionHero)May 28, 2016
Actionhero Community - Now on SlackMay 16, 2016
Good Old Games, Modern Resolutions, and Windows gaming on OSXMay 14, 2016
Background Tasks in Node.js: A survey with Redis.May 11, 2016
ActionHero + Tessel2Apr 24, 2016
ElasticDumpApr 22, 2016
Forklift: Moving Big Databases Around in RubyApr 22, 2016
It has been so longApr 22, 2016
switchboard.chatJan 9, 2016
2015
2014
2013
- ActionHero 7.x.xDec 4, 2013
- Ruby and MavericksOct 28, 2013
- On InclusionOct 14, 2013
ActionHero TutorialsJul 5, 2013- Authentication with ActionHero AgainJun 10, 2013
ActionHero v4.1.0Jun 6, 2013
On Task SystemsMar 24, 2013
When does API-First Not Apply?Mar 19, 2013
API-First.com rebootMar 10, 2013- The Real Reason I Will Not Be Your Technical CoFounderFeb 28, 2013
- Authentication with ActionHeroFeb 18, 2013
Makara — a read-write splitting adapter for Active RecordJan 29, 2013- ActionHero v4.2.2Jan 13, 2013
ownCloud + DreamHost: Your own Unlimited DropBox for 13$/moJan 7, 2013
2012
Jekyll, Markdown, and MoreDec 23, 2012
Delete old git branches already merged into masterDec 20, 2012
On Domains and Connections with node.jsDec 13, 2012
Exception Patterns in node.jsDec 4, 2012
What do you do when Softpedia scrapes you projects?Nov 24, 2012
actionhero-client turns 1.0.0Nov 17, 2012
GitHub ResumeOct 4, 2012
Production Deployment with node.js ClustersSep 10, 2012
NPM and run-scriptSep 9, 2012
npm and generatorsAug 12, 2012
actionHero V3: Return of the HeroAug 2, 2012
I am a nerdJul 31, 2012
ActionHero++ (now at level 2!)May 23, 2012
Electric ImpMay 22, 2012
ActionHero: Actions vs TasksApr 11, 2012
PhoneGap and Push NotificationsApr 11, 2012
Deploying node.js applications with CapistranoApr 4, 2012
cURL your way into the Google Analytics APIApr 4, 2012
Testing actionHero with blitz.ioMar 30, 2012
ActionHero.js is now at version 1Mar 18, 2012- Hacked! (or: A reminder about why unix permissions matter)Feb 24, 2012
San Francisco from a Yinzer’s Point of ViewFeb 17, 2012- Small update to npm phidgets packageFeb 16, 2012
Pivotal Tracker, Phidgets, and Nerf GunsFeb 15, 2012
nodeSpider updated: Now based on ActionHeroFeb 13, 2012
Travis-CI is raising money. Give them Money!Feb 7, 2012
Unicorns in Node or When does the cluster module mater?Feb 1, 2012
nodeChecker update: now with SSH and Sockets!Jan 30, 2012
Unicorns & Web ServersJan 27, 2012
node.js running on a Phidgets SBC2 board!Jan 16, 2012
GitHireJan 14, 2012
On NodeJS and PhidgetsJan 14, 2012
Running node on a Phidget BoardJan 14, 2012
2011
Announcing ActionHero.jsDec 23, 2011- NodeChecker — Big Board DashboardingDec 11, 2011
A reminder that the webKit console is also rendered (sometimes)Dec 3, 2011
Node Spider (writing a real time messaging relay in nodeJS)Dec 1, 2011
A Blog!?Nov 2, 2011- Agile Business Intelligence @ Pivotal LabsNov 2, 2011

















