EMIT Solution Blog
Practical knowledge,
not boilerplate.
Niche articles on web, AI and accessibility - from real work, not a content template.

Finding ads clicks in the Umami API when type=utm_source answers with 400
How to break Google Ads traffic down to campaign and keyword in a cookieless Umami, why the obvious metrics call fails, which time zone the API returns and when filtered views show wrong session durations.

The Core Web Vitals thresholds did not change in 2026
A fact check on the claims circulating about Core Web Vitals in 2026. Thresholds, Chromium changelogs, CrUX figures and a timeline of what actually changed.

With Astro server rendering, the platform decides cost, cold start and data protection
Vercel, Netlify, Cloudflare Workers or your own Node process. What the four Astro adapters really change under the hood, which unit each one bills by, and how long the chain of processors gets.

PageSpeed Insights does not measure your LCP, it calculates it
Why the default mode simulates through Lantern, how the last node in the dependency graph sets the LCP value, and how to put observedLargestContentfulPaint next to the simulated number.

Deferring loading until after the LCP, gated by the PerformanceObserver
Why loading=lazy, requestIdleCallback and window.load do not reliably keep decorative layers out of the LCP chain, and how a gate on the largest-contentful-paint entry solves it.

The focusgroup attribute replaces the hand-written roving tabindex
Chrome 150 and Edge 150 ship focusgroup: arrow-key navigation, one tab stop and a focus memory, declared in HTML. What the syntax actually looks like, which roles the browser hands out along the way, and what is still open on the assistive technology side.

Without the APP_KEY a Coolify restore only brings back an empty interface
Coolify backs databases up to S3, but its own database holds SSH keys, environment variables and S3 credentials in encrypted form only. Where the APP_KEY lives, what exactly fails without it, what the documented restore path looks like, and how to assemble a restore drill from it.

Swapping tools mid-conversation without losing the prompt cache
Claude Opus 5 brought along a beta header that adds or withdraws tools between the turns of a conversation without expiring the prompt cache. How it works technically, which placement rules trigger 400s, and when Tool Search is the better choice.

The Next.js July patch only hits your project under six conditions
Nine CVEs in the Next.js security release of 20 July 2026. Which of them actually affect a normal installation comes down to six conditions that you can check in five minutes against package.json, next.config and your codebase.

Your build strips the AI marker out of the image
sharp removes all metadata by default when it converts to WebP and AVIF. Astro and Next.js call sharp in exactly that way. What gets lost along the way, and which configuration saves the marker.

Finding vulnerabilities with AI: the workflow decides, not the model
An AI finds 19 zero-days in Redis in 90 minutes while open source projects drown in worthless AI security reports. Both are the same phenomenon. How an AI code audit needs to be structured so you end up with verified findings instead of a list that is 80 percent noise.

Dependabot now waits three days: setting up dependency cooldowns properly
Since July 2026 GitHub delays Dependabot version updates by three days by default. Why that waiting period protects against supply chain attacks, why security updates still arrive immediately, and how to tune the cooldown in dependabot.yml for your project.

Testing Hetzner's free AI on German: Qwen3.6 against real office tasks
How good is the model now running for free on German servers when it comes to the German language? I tested Qwen3.6-35B through Hetzner's inference API with seven typical office tasks, from email classification to formal replies. With my own measurements, verbatim outputs, one reproducible language bug and two undocumented API traps.

Hetzner now hosts OpenClaw: free AI assistant instances as an experiment
Quietly and without any announcement, Hetzner is offering hosted OpenClaw instances at experiments.hetzner.com, in three sizes from Shrimp to Lobster, free for the duration of the experiment. I spun one up. What works, what is locked, what the confusing cost display means and who this experiment is for.

Hetzner Inference: the new AI API serving Qwen3.6, OpenAI-compatible on EU servers
Since July 2026 Hetzner has been running an experimental AI inference API. OpenAI-compatible, servers in Germany and Finland, free during the test phase. What the offering can do today, what it is already good for, and why the missing data processing agreement is the one limitation that matters most.

Disclosing AI-edited listing photos without spoiling the listing
Virtually staged and AI-optimised photos have long been routine in property listings. From 2 August 2026 the EU AI Act requires them to be recognisable as AI-edited, and New York is proposing the same for rental listings. Where the note belongs so it meets the duty without disfiguring the listing: in the caption, discreetly on the image, in the description text, or as a quiet info symbol on your own website.

Astro 7.1: setting up a Content Security Policy without hand-maintaining the header
Astro 7.1 shipped on 16 July 2026 - a minor release with no breaking changes. The practical win: the built-in Content Security Policy is now more granular. How to set it up step by step, plus the smaller changes to pagination, content collections and the dev server.

Where's my replacement part? How a kitchen studio shows complaint status instead of calling back
A scratch in the worktop, the replacement is on order with the manufacturer - and the customer calls every few days asking where it is. Each call costs office time, and despite a perfectly normal process the customer grows unhappier. How a status page on the parcel-tracking principle catches the queries and turns the complaint back into a satisfied customer.

Nothing new in weeks? How a climbing gym keeps its routes visible instead of losing them in the story
New boulders are the reason regulars come back - but the news about them sits in an Instagram story for 24 hours and is then gone. Why the gym software and the climbing app don't solve this, and how a permanent sector page on your own site shows what's freshly set and when the next section is due.

Thinking through your own funeral in peace: a pre-planning form that doesn't feel like a contract
Many people want to arrange their funeral in advance, before their families have to guess in the moment. But online they land on anonymous calculators and insurer forms that feel like signing a contract. How a funeral director can instead offer a calm, dignified wishes questionnaire - one that orders your own ideas rather than selling something.

Today's flavours: how an ice cream parlour shows its rotating menu and allergens online
An artisan gelateria rotates which 15 of its 30 flavours are in the counter each day. Anyone with an allergy or a favourite flavour has to call or drive on the off chance. Why the Instagram story and off-the-shelf menu tools don't solve it - and how a lean page shows the day's flavours and allergens while handling the labelling duty at the same time.

When a winery opens for the season: reaching the regulars who drive to you
A seasonal tavern opens only a few weeks a year, the dates shift and are often fixed only shortly beforehand. The most loyal guests, the ones who travel to get there, are exactly the ones who miss it. Why regional listings and newsletters don't solve this - and how a lean, own solution reaches your regulars without handing the relationship to a portal.

The bank details question, asked for the hundredth time: how a tenant self-service portal retires the noticeboard
At 7pm a tenant asks for the bank details for the rent - the IBAN is in the lease, on the last service charge statement, and has been pinned to the noticeboard for three weeks. The phone still rings. Why noticeboards and circular letters fail structurally as a channel, which ten questions make up most routine calls, and how a lean tenant self-service portal catches them without turning into a full-blown tenant portal.

The View Transitions API: smooth page transitions without a framework
Soft transitions between two pages used to be an SPA luxury you bought with React or GSAP. The native View Transitions API delivers them in a few lines of CSS - now on classic multi-page websites too. What works in 2026, with runnable code, the browser limits, and when the effort is actually worth it.

Sold three weeks ago, the phone still rings: keeping property listings in sync instead of updating four forms by hand
A prospective buyer calls about a flat that sold three weeks ago - one portal never got the memo. Why a listing is a copy, not a live view, what the German OpenImmo data standard actually solves, and how portals, your own site and Facebook Marketplace can all stay in sync from a single source.

Twenty invoices, one wrong account: why coding errors in property management only surface in autumn
Every morning brings twenty to thirty incoming invoices - contractors, heat cost allocators, insurers, waste haulers - and each one needs three decisions before it can even be paid: which building, which cost category, which budget year. The mistake rarely shows up right away; it surfaces in autumn, when the advisory board reviews the annual statement. How to secure that assignment before the error happens - and where a human still has to decide.

AI virtual staging: what works in 2026 for listing photos
Empty or cluttered apartments can be furnished digitally for listing photos within minutes - far cheaper and faster than traditional home staging. What the technology genuinely delivers in 2026, the details that give a bent chair leg or an invented window away, and why real estate photos in particular now fall under the EU AI Act's disclosure duty and the older question of misleading advertising.

Fifteen rental applications, fifteen formats: when the most sensitive applicant data arrives in chaos
For a sought-after flat, 15 of 25 applicants often send a full tenant self-disclosure - as a scan, a phone photo or a filled-in form, in completely different formats. How to compare income, credit history and completeness fairly, without the most sensitive documents sitting for weeks in someone's personal inbox.

Embed Google reviews on your website - without an expensive widget, GDPR-compliant
Google reviews on your website build trust - but the usual widgets cost a monthly subscription, slow the page down and load third parties unasked. The better way: fetch the reviews yourself once a day, cache them and render them. Fast, free, no consent banner - with the code and the pitfalls from practice.

Scrollytelling like TikTok: a website you swipe through instead of scrolling past
Plain scrolling is boring. How scrollytelling brings the TikTok experience - one moment after another, snapping, interactive - to a website: the right stack, the building blocks (pin, scrub, snap) and the bugs most people trip over, above all the snapping that fights the smooth scrolling.

The Saturday-night call: how a property manager handles out-of-hours emergencies without picking up
A dripping pipe at 9 p.m., and the private phone rings. The real problem isn't being reachable, it's the chain of decisions that has to happen in the first five minutes: emergency or not, which trade, which on-call partner, which building. How to structure that first contact - and where a human still has to step in.

Recreating Apple's Liquid Glass in CSS: the physics, the code and the pitfalls
Apple's Liquid Glass looks magical and is a minefield on the web. How the effect really works with CSS and SVG, from light refraction to working code to the three Chromium quirks that quietly break the effect without you noticing.

The same buyer questions every time: automating replies without going cold
A sought-after flat draws 40 to 60 enquiries in two days - nearly all asking the same five questions. How an estate agent catches that flood automatically and still stays personal: what can actually be automated, why the off-the-shelf chatbot is the wrong reflex, and where data protection has a say.

Entire: the former GitHub CEO's new Git network
Former GitHub chief Thomas Dohmke has launched Entire, a distributed Git network. What it really does today, why AI agents are the actual reason behind it, and who it's already worth watching for.

AI in the trades: what saves a business time
Almost every AI-for-tradespeople list comes from someone selling a subscription. A web developer sorts it honestly: which AI actually saves a trade business time, what's just costly marketing - and when your own system beats yet another subscription.

Labelling AI content on your website: turn the obligation into a trust signal
From 2 August 2026, published AI-generated content must be labelled under the EU AI Act. But the law prescribes neither a wording nor a specific badge. How to meet the duty without it sounding like a warning - with an honest, positive frame instead of an off-putting AI stamp.

Upgrading to Astro 7 in practice: build time halved, zero code changes
I migrated this website from Astro 6 to Astro 7: one command, not a single code fix, build time down from 22 to 11 seconds. What the Rust compiler and Rolldown actually deliver, which breaking changes matter, and how to test the whitespace trap properly.

WebMCP: AI agents can now act on your website - what you have to secure first
WebMCP lets AI agents do more than read your site - they book, submit, order. What you as the operator have to secure, and what GDPR and the confirm-to-pay rule mean here.

WebGL and Accessibility: How 3D Websites Become Compliant Without Dropping Three.js
A canvas is invisible to screen readers. How 3D websites built with WebGL and Three.js still become accessible and compliant - with code patterns and a checklist.

Vibe Coding in technical due diligence: what investors really check
Your product is vibe-coded, the funding round is close - and the investor checks code quality. What technical due diligence looks for, and how to get ahead of it.