Building ChatGPT apps with OpenAI Apps SDK and Node.js: reading tool output and saving on ChatGPT tokens
Building a language learning app with OpenAI Apps SDK and saving on OpenAI tokens
More.18 October 2025
Building ChatGPT apps with OpenAI Apps SDK and Node.js: simple UI and reading input
ChatGPT apps are based on MCP and allow you to embed any custom UI inside ChatGPT. In this blog post we cover the basics of building ChatGPT apps with UI.
More.12 October 2025
Vercel Fluid Compute vs unhandled exceptions
Vercel Fluid Compute brigns costs down and makes serverless functions faster. But it mau also bring down your applications in unexepected places if you are on Next.js 13 and have unhandled exceptions.
More.20 September 2025
Writing an MCP server that talks to a SQL database
Learn how to write an MCP serve that interacts with a SQL database and returns JSON data. We'll also explore how with just very few MCP tools an LLM becomes an incredibly powerful beast!
More.30 August 2025
Building a simple MCP server with Node.js
Let's build a super simple MCP server with Node.js
More.23 August 2025
Intro to MCP: using an MCP server
An short & practical introduction into MCP. We'll consume a Linear MCP server with Claude Desktop.
More.21 August 2025
Vibe coding a Greek learning app without knowing Greek
How I vibe coded an app for learning Greek without... knowing Greek to begin with! Plus, using ElevenLabs for voice cloning, Flux by Black Forest Labs for images, and etc.
More.19 July 2025
Streaming JSON from OpenAI API
OpenAI APIs can take up to 10 seconds to respond. It's too long for a user to wait. So instead we should stream results to a user. It's easy with text, but dealing with JSON is not straightforward. This blog posts explains how to work around it.
More.8 October 2023
Change Jest mock per test
Changing implementation of Jest mocks per test can be confusing. This blog post will present a simple solution for that. You’ll see how each test can get its own mock for both constant values and functions. The solution doesn’t rely on using `require()`.
More.20 February 2021
Managing technical debt
Often engineering teams struggle with technical debt. They are busy with building features and fixing bugs, but that’s not going well due to a huge amount of technical debt. However, they hardly get any time to fix any of the debt. In this article I’m going to share my experience on how to manage technical debt and get it fixed.
More.30 January 2021