I’ve been using Claude Code for a while now, and one thing that always bugged me was not knowing when it finished running a long task. You ask Claude to refactor a large codebase or generate a bunch of tests, then you switch to another window to check Slack, Discord or get up to date on Hacker News. Twenty minutes later you realize you forgot to check if Claude finished! Anthropic recently released Claude Code hooks, and they offer a simple solution to this problem! Let’s dive into how yo...| Stanislav Khromov
I’ve been building static single page apps using adapter-static for a while now, and I love how simple the deployment story is – just upload a folder of files and you’re done! If you are unfamiliar with this adapter, it compiles down your app to a folder of HTML, CSS and JavaScript files. A couple of months ago, the SvelteKit maintainers added two features that really caught my attention. They were actually both part of Advent of Svelte in 2024. With these new features, we can make our ...| Stanislav Khromov
If you’re working on web applications today, you might have heard that re-renders are bad for performance. But why is that exactly? And more importantly – how can we spot these performance issues in our Svelte and SvelteKit applications? In this post, I’ll introduce you to svelte-render-scan, a visual debugging tool I created that helps you see exactly when and where your Svelte components are updating the DOM. We’ll explore why re-renders matter, how Svelte’s approach differs from ...| Stanislav Khromov
If you’re a programmer, you’re likely already using AI and large language models in your workflow. For some time now, Claude Sonnet has been the undisputed king of models used for programming. It has earned the top spot in multiple code-focused benchmarks, such as the Aider LLM leaderboard and LiveBench. But that dominance might be changing. Google’s Gemini 2.5 Pro has quickly overtaken the top spot from Sonnet 3.7 in many benchmarks. It also sports a 1 million token context window—ab...| Stanislav Khromov
Streaming in SvelteKit is a powerful feature that allows you to load data progressively. In a nutshell, streaming allows your SvelteKit app to send an initial content response to the browser quickly, while fetching and sending additional data as it becomes available. This can make your app feel more responsive, especially when dealing with slow data sources. While streaming data loads you can easily show loading spinners. What is streaming? In a traditional SvelteKit application without strea...| Stanislav Khromov
If you’ve been following AI news lately, you might have heard about the “strawberry test”. It’s a simple question that stumps many AI models: How many R’s are in the word “strawberry”? This seemingly easy task highlights some interesting limitations in large language models (LLMs). Prefer a video version of this blog post? Watch below: Why is counting so hard for LLMs? To understand why this simple task is challenging for AI, we need to look at how Large Language Models work. LL...| Stanislav Khromov
For the past two years, I’ve been on the receiving end of a passive aggressive win-back campaign from Dropbox. The feud originally started when I migrated away from Dropbox and hence canceled my subscription while leaving them saddled with over a terabyte of my data to carry forever, like a camel in the digital desert. After all, why wouldn’t I? I was assured by their help forums that my files would not be deleted, no matter what: However, this hasn’t prevented Dropbox from trying to ge...| Stanislav Khromov
After using LLMs like ChatGPT, Claude and Gemini for coding assistance, I’ve noticed a significant improvement in their capabilities over the past two years. However, getting consistently good results can still be a tricky process. Here are five key tips I’ve learned for getting better code from AI models. Include Your Entire Codebase The first and most impactful tip is to provide the AI with your complete codebase as context, not just isolated snippets. This helps the model understand yo...| Stanislav Khromov
The amount of JavaScript you ship to your users directly impacts your site’s performance. A smaller bundle size means faster initial loading times and an overall snappier experience for end users. In this post, I’ll show you how to analyze your SvelteKit bundle size and optimize it by moving heavy dependencies to the server. Analyzing Bundle Sizes Before we start, let’s set up a tool to visualize our bundle sizes. We’ll use rollup-plugin-visualizer, which works great with SvelteKit. I...| Stanislav Khromov
With the release of Svelte 5 and its new runes syntax, many developers are wondering how to get reliable AI assistance that understands the latest features in Svelte 5 working with ChatGPT, Claude, Continue, Cursor and other tools. The challenge with AI and new frameworks When a new major framework version is released, AI tools often struggle to provide accurate code samples since they were trained on older documentation. This creates two main problems: The official solution: llms.txt As part...| Stanislav Khromov
While we’ve seen AI assistants like Claude create impressive small-scale projects like small scripts or simple games like Flappy Bird clones, their potential for real-world, large-scale software development has remained largely untapped. In this post, I want to share a programming workflow that allows you to harness the power of long context models for substantial, existing projects. The Evolution of AI Prompting To understand the significance of this approach, let’s first look at the dif...| Stanislav Khromov