TILens turns technical updates into a focused daily brief: official releases,
trusted reporting, and practitioner analysis, deduplicated and organized by topic.
Building an Interactive Rain-on-Glass Effect with Three.js and WebGL I've been experimenting with Three.js and WebGL while working on my personal portfolio. One of those experiments turned into Rain on Glass. An…
A few years ago, while working on a Java and Thymeleaf application, I faced an interesting frontend challenge. One of its workflows involved collecting notary-related information through a form that spanned multiple…
1000-7 My dream calculator come true. I had to run debugging, and do other adjustments to resume, but now the next submission of a retelling is ready. Without further ado, let me tell you about another of my projects…
Disclosure: we built and maintain the tool in this post (email-list-cleaner, MIT). This article was written with AI assistance and reviewed by us. Bounces hurt sender reputation, and many "list verification" services…
HaulFare is a free US car shipping price guide. Quote requests go to one licensed auto transport broker, which confirms the actual price, so the site's job is to publish honest, current estimates. Nearly every page…
My WordPress website was scoring in the high 90s on mobile PageSpeed Insights. The layout looked right, the navigation worked on desktop, and the mobile view in browser DevTools behaved as expected. Then I picked up my…
There are billions of phones out there that can already run AI models locally, but most apps don't use that at all. Sending every AI request to a server is wasteful, especially for simple ones, and there are a lot of…
If you’ve ever built a fintech application that touches bank data, you likely remember the dark ages of financial engineering: screen scraping. In that primitive era, users handed over their raw banking…
The same evening I shipped this, Chrome opened "New in DevTools" and proudly announced DevTools for agents: AI that reads your CSS rules. Thanks Google, I'll take it as a sign I'm on the right track. Their version is…
На многих сайтах встречаются элементы, которые хотелось бы убрать: навязчивые баннеры, всплывающие окна, рекламные блоки или просто ненужные части интерфейса. Современные блокировщики рекламы позволяют не только…
Building CloudiCraft Studio: An Interactive Cloudinary AI Media Suite and URL Inspector Imagine you're building a modern web application or content platform that showcases hundreds of photos and videos. Everything looks…
A compound-interest calculator is one formula and about forty lines of JavaScript. The formula isn't the hard part. The hard part is that money has cents, and your floats don't. I built a compound-interest calculator as…
Vite is the default for new frontend projects in 2026. That doesn't mean your Webpack app is broken. The 30-second version: Why Vite feels so fast Vite serves your source as native ES modules and transforms files on…
Building an epoxy resin calculator sounds simple until you realize the math under the hood spans geometry, unit systems, waste modeling, mix-ratio arithmetic, and multi-layer scheduling. In this post we walk through…
Disclosure: I'm Mohammed, founder of MemorySync. I drafted this article with AI assistance and reviewed it for accuracy against the official MemorySync and AI SDK docs. The code is adapted from the docs and I haven't…
A calculator can look polished and still be wrong. An inventory estimate can use the right formula against the wrong stock figure. A worksheet can print a neat answer key that belongs to a different set of questions.…
Your page looks perfect in Chrome. Headline, pricing, FAQ, a nice comparison table. But an AI crawler doesn't open Chrome. It sends one HTTP request, gets back whatever your server returns, and moves on. If your…
Anyone who plays chess knows the familiar frustration of post-game engine review. You play a move that feels completely natural and intuitive. You turn on Stockfish, and the evaluation bar drops off a cliff. The engine…
Your browser can detect your NAT type in 30 lines of JavaScript Ever had a video call that connects fine on one network but refuses to establish peer-to-peer on another? Or a game where voice chat works for everyone…
Sooner or later every JavaScript developer copies an object, changes the copy, and finds the original changed too. The usual fixes are the spread operator, the old JSON.parse(JSON.stringify(obj)) trick, and the newer…