🌍 Dev.to

Three public HTTP APIs I read daily without registering for a key

My daily trends fetch is a Node.js script that runs in GitHub Actions, hits three APIs, and writes a JSON file that feeds my X-drafts pipeline later in the day. None of the three sources require an API key. No OAuth flow, no dashboard signup, no rate-limit token to rotate. That sounds trivial, but it matters for CI pipelines. Every API key stored in GitHub Secrets is a secret that can expire, a secret that has to be rotated when a team member leaves, a secret that creates a failure surface. K...
🌍 Dev.to

Automatically Renewing Tailscale HTTPS Certificates on PiKVM

It is appropriate to continue using ssl_certificate /etc/kvmd/nginx/ssl/server.crt ; ssl_certificate_key /etc/kvmd/nginx/ssl/server.key ; in /etc/kvmd/nginx/ssl.conf , with a systemd timer checking the certificate expiration and updating these two files only when necessary. The official PiKVM documentation also describes placing the Tailscale certificate in /etc/kvmd/nginx/ssl/server.{crt,key} , setting the group to kvmd-nginx , and then restarting kvmd-nginx ....
🌍 Dev.to

Build vs Buy: What Founders Get Wrong About Templates

Every week a founder DMs me the same question: "Should I build my React Native app from scratch or buy a template?" Here's the framework I use to answer it, plus the five wrong assumptions that make the debate louder than it needs to be. TL;DR Differentiation lives in the product (AI pipeline, marketplace mechanics, workflow)? Buy a template and spend your engineering budget on the differentiation. Differentiation lives in the infrastructure (custom protocol, native aud...
🌍 Dev.to

Open Source WordPress Contribution: My July 2026 Recap

July felt different from the start. I opened the month with a WooCommerce logging bug and closed it 24 pull requests later, spread across 9 different WordPress repositories. Some fixes took ten minutes. One took a full week of back and forth with a maintainer over a single line of code. This post is my open source WordPress contribution recap for July 2026. I am sharing the actual code from each pull request, not just a list of links, so you can see what changed and why it mattered. ...
🌍 Dev.to

It speaks German. It cannot read a part number.

Local speech synthesis on a laptop, tested against the text that fills industrial documents. TL;DR Tested Qwen3-TTS 1.7B (Apache 2.0) on Apple Silicon against forty German sentences full of part numbers, acronyms, dates and currency. Raw text derails: the model stops mid-identifier and reads twenty seconds of unrelated fluent German, no error. A text rewrite layer removes that completely, and what's left sits in identifiers. Polly on the same sentences, raw: zero derailments, no rules....
🌍 Dev.to

Git: ডেভেলপার ও শিক্ষার্থীদের জন্য একটি পূর্ণাঙ্গ গাইড

🚀 Git: ডেভেলপারদের জন্য Version Control-এর সম্পূর্ণ গাইড "Code লিখা যতটা গুরুত্বপূর্ণ, সেই code-এর পরিবর্তনগুলো সঠিকভাবে manage করাও ততটাই গুরুত্বপূর্ণ।" আপনি যদি Web Development, Software Development অথবা Programming শেখেন, তাহলে খুব দ্রুতই Git নামটির সঙ্গে পরিচিত হবেন। শুরুতে Git-এর commandগুলো একটু কঠিন মনে হতে পারে। git add , git commit , git push , git pull , branch , merge —সবকিছু একসাথে দেখলে মাথা ঘুরে যেতে পারে! 😅 কিন্তু চিন্তার কিছু নেই। এই লেখায় আমরা একদম...
Linking Go pprof Samples to OpenTelemetry Traces with OTLP Profiles
🌍 Dev.to

Linking Go pprof Samples to OpenTelemetry Traces with OTLP Profiles

Traces tell us which request was slow. CPU profiles tell us which functions consumed CPU time. Can we start from a slow span and open only the CPU profile samples captured while that span was running? This article explores that question by converting Go's built-in pprof data into OTLP Profiles, then linking individual Profile Samples to OpenTelemetry Trace and Span IDs. The final result is a Grafana workflow that starts from a GET /cpu-heavy span and opens a Pyroscope flame graph contain...
🌍 Dev.to

I accidentally built a forward-deployed engineer's field kit

A year ago I deleted @anthropic-ai/sdk from a project and wrote about 150 lines of TypeScript to replace it. The reason I gave myself was honest and boring. The SDK pulled node:fs/promises in through an agent-toolset module, which broke the browser bundle. I could have waited for a browser-clean entry point. Instead I hand-rolled an SSE parser and wrote a post about why . I filed that away as a bundler story. Then I read a line in a piece about tooling for forward-deployed engi...
🌍 Dev.to

You're importing pako to gzip data. `CompressionStream` does it natively.

Compressing data before writing it to IndexedDB or sending it over a slow connection is a real optimization. When a cached API response is too large for reliable storage, or when you need to shrink a JSON payload before POSTing it, pako.gzip() is the standard reach. But pako is a pure-JavaScript port of zlib — written in user space to fill a gap the browser had at the time. The CompressionStream API is that gap closing. The API CompressionStream is a transform stream — da...
🌍 Dev.to

Filament v4.12 and v5.7: 92% Faster Forms, and the Security Fixes You Still Have to Turn On

Originally published at hafiz.dev Filament shipped its biggest performance release since the v4 launch on August 6. Versions v4.12.6 and v5.7.6 promote the beta the team asked the community to test in late June onto the stable channels for both major versions, and the headline numbers are real: form fields render up to 92% faster, tables up to 52% faster, all in a non-breaking minor release. So run composer update . Today. The same release resolves what the team describes as a han...
🌍 Dev.to

Canary a Free-Tier Model Promotion With Rate Limits, Truncation, and a Shadow Gate

A violating event order first Here is a sequence I have seen cause a quiet production regression when a team switched an agent backend to a free model endpoint to cut cost: t1 router shifts 100% of traffic to the free endpoint t2 free endpoint starts returning 429s under burst load t3 client retries with exponential backoff; retry storm triples offered load t4 endpoint truncates long completions to stay within its throughput budget t5 agent parses a truncated JSON tool call, sil...
🌍 Dev.to

Multi-tenant DKIM in Haraka: two signatures on one message

In my previous post I described a catch-all email forwarder built on Haraka, and I waved at the bring-your-own-domain case with one lazy sentence: "a small additive queue_outbound hook that reuses the DKIM signing stream." That sentence hid the hardest part of the whole system. This post is the part I skipped: how to DKIM-sign outbound mail for hundreds of customer domains , with per-tenant keys living in a database, from a single Haraka instance. It's what powers custom domains ...
HackerNews

Everything you do is being recorded

https://www.theatlantic.com/technology/2026/05/ai-wearable-s... https://archive.is/JxaZ7 Comments URL: https://news.ycombinator.com/item?id=49230477 Points: 280 # Comments: 227
HackerNews

Show HN: Voice driven murder mystery, Interview AI suspects with your voice

Hey HN! I'm excited to show off this really fun project I put together. I originally built this project 2-3 years ago, AI was already booming at the time, however voice AI agents were still very early. I loved my proof of concept at the time, but wasn't quite happy with it. I recently had the desire to check out the tech again, and know many of you will be interested. Interviews are speech to speech with OpenAI's gpt-realtime-2.1 over WebRTC. This model is... expensive, and because of that, I ha...
HackerNews

Auto mode is now the default in Claude Code

Article URL: https://claude.com/blog/auto-mode-default-in-claude-code Comments URL: https://news.ycombinator.com/item?id=49239021 Points: 168 # Comments: 152
🌍 Dev.to

Groq Returned Empty Content. The Bug Was Hiding in Reasoning Tokens.

This article was originally published on Jo4 Blog . We use Groq's gpt-oss-safeguard model to classify pages behind freshly created short links. Most pages take a few hundred tokens to score. Some don't. And the ones that don't were silently failing — for weeks — until we noticed the symptom: a small but consistent stream of links stuck in "preview pending" forever. Here's what we found. The Problem The classifier wraps a single Groq chat completion. Send page text, ge...
🌍 Dev.to

How to Set Up Rate Limiting on Any Web App (Free, No Code Changes)

The Problem Your login page, search endpoint, or contact form is getting hammered. Rate limiting is the fix — but implementing it in application code means finding every endpoint, writing middleware, choosing a storage backend, and deploying changes. On a WAF, you set it once and it applies everywhere. Why WAF-Level Rate Limiting Is Better Approach Code-Level WAF-Level Setup time Hours to days 5 minutes Code changes Required None ...
🌍 Dev.to

Building SaarDB, Part 6: How SQL Queries Become Key-Value Operations

In Blog 5, we built a SQL parser. It can take this: INSERT INTO payments VALUES ( 500 , payment_1 , pending , 1 ) and turn it into a struct: InsertIntoTable { TableName : "payments" , ColumnValues : [] string { "500" , "payment_1" , "pending" , "1" }, } But this is still not enough for the storage engine. Our storage engine only knows how to store key-value pairs. It does not know what a table is. It...
🌍 Dev.to

Geo-Blocking: Block Malicious Traffic from Specific Countries (2-Minute Setup)

Why Geo-Block? Not every country needs to reach your server. If you run a local business in Brazil, you don't need traffic from North Korea. If you serve customers in the EU, you probably don't need visitors from 150 other countries hitting your login page. Geo-blocking at the WAF level stops unwanted traffic before it ever reaches your application. No CPU spent. No database queries wasted. No bandwidth consumed. The Numbers from My Server After 30 days of logging, I check...