• OPENDEV HUB V1.0• API STATUS: 100% OPERATIONAL• CLIENT ENGINE: LOADED & CACHED• TRENDING TECH: TAILWIND V4, NEXT.JS 16, RUST, GO• ZERO AUTH REQUIRED
OPENDEVHUB

Command Palette

Search for a command to run...

DEVELOPER RELEASES

DEVELOPER NEWS STREAM

Direct logs, engine updates, and framework notifications parsed from curated RSS feeds and announcements, updated hourly.

Moving a Next.js App Router app from Capacitor server.url to an embedded offline-first build (Android + iOS)
android2026-09-25
Alexandre SaiegAlexandre Saieg

Moving a Next.js App Router app from Capacitor server.url to an embedded offline-first build (Android + iOS)

I have an app in production on Android and iOS built with Next.js 16 (App Router, Server Components,...

We block first paint with an inline script on purpose, and the list inside it is generated
nextjs2026-09-26
Daniel PertuDaniel Pertu

We block first paint with an inline script on purpose, and the list inside it is generated

A synchronous script in head, an eslint-disable above it, and 45 paths serialised into it from a shared module because the two copies of that list had already drifted into two pages rendering the wrong colour.

One content registry, four consumers, and the RSS feed that inherited an editorial order
nextjs2026-09-26
Daniel PertuDaniel Pertu

One content registry, four consumers, and the RSS feed that inherited an editorial order

66 blog posts, one array, and four places that read it: the index page, the Blog JSON-LD, the sitemap and a hand written RSS feed. Writing this post is how I found out the feed is not in date order.

One string is the page title, the h1 and the JSON-LD headline, which makes shortening it a content edit
seo2026-09-26
Daniel PertuDaniel Pertu

One string is the page title, the h1 and the JSON-LD headline, which makes shortening it a content edit

A 24 page content cluster where metaTitle is rendered three times. Why that is deliberate, the 12 character tax the Next.js title template adds, and the trap it sets for anyone tidying up a title for SEO.

Your title template spends ten of your sixty characters, and nobody counts them
seo2026-09-26
Daniel PertuDaniel Pertu

Your title template spends ten of your sixty characters, and nobody counts them

Enforcing meta title and description budgets in node --test across 38 pages, most of which are generated. Why the suffix is read from the layout, and why unparseable has to fail rather than skip.

A data export needs a field explaining what is not in it
privacy2026-09-26
Daniel PertuDaniel Pertu

A data export needs a field explaining what is not in it

Two self-service GDPR routes, and the four engineering decisions in them: a note field, a fail-closed guard, a sentinel contributor, and an order of operations.

More JavaScript arrives after our landing page loads than before it
performance2026-09-26
Daniel PertuDaniel Pertu

More JavaScript arrives after our landing page loads than before it

Measured on our own landing page, 295 KB of script arrives before the load event and 325 KB after it. The split is deliberate, and the interesting part is the error buffer that makes it safe.

Our query timeout had to be set on the Postgres role, because the pooler throws away everything else
postgres2026-09-26
Daniel PertuDaniel Pertu

Our query timeout had to be set on the Postgres role, because the pooler throws away everything else

A SET statement_timeout in application code that never did anything, a startup parameter PgBouncer refuses outright, and why the number we settled on is 15 seconds rather than something tighter.

Why Your useEffect Runs Twice in Development (And Why You Shouldn't "Fix" It)
react2026-09-25
Anas SheikhAnas Sheikh

Why Your useEffect Runs Twice in Development (And Why You Shouldn't "Fix" It)

This causes a very specific, very common reaction, a developer sees a console.log inside useEffect...

How I Built VoiceMax: Reading Emotion From a Voice Recording With Three Small AI Flows
ai2026-09-25
Tanbir Hossain RamimTanbir Hossain Ramim

How I Built VoiceMax: Reading Emotion From a Voice Recording With Three Small AI Flows

By Tanbir Hossain Ramim. Project page: VoiceMax. Source: github.com/TanbirRamim/VoiceMax. VoiceMax...

I got tired of $30/mo paywalls, so I built a 100% free digital asset vault using Next.js
showdev2026-09-26
NiteshNitesh

I got tired of $30/mo paywalls, so I built a 100% free digital asset vault using Next.js

Hey DEV community! As a developer and creator, I’ve always found it frustrating how heavily gated...

I uploaded a green square to a Next.js store and got stored XSS
security2026-09-25
Oopssec StoreOopssec Store

I uploaded a green square to a Next.js store and got stored XSS

Upload a malicious SVG to the admin product image field and get stored XSS that fires for every...

Prismic Pricing 2026: Free Tier Limits, Per-Seat Costs & When to Upgrade
headlesscms2026-09-26
Nayan KyadaNayan Kyada

Prismic Pricing 2026: Free Tier Limits, Per-Seat Costs & When to Upgrade

Exact Prismic pricing tiers for 2026: free plan limits, per-seat costs, what triggers an upgrade, and how it compares to Sanity and Contentful.

Cloudflare cached our 404s: why a new page kept 404ing after a good deploy
cloudflare2026-09-26
EscrozonEscrozon

Cloudflare cached our 404s: why a new page kept 404ing after a good deploy

We run Escrozon, an escrow marketplace for digital assets, behind Cloudflare. A while ago we shipped...

Architectural Breakdown: Can Two Local AI Agents Build an App Without Me? I Gave Them 6 Rounds to Fi
python2026-09-26
Muhammad HammadMuhammad Hammad

Architectural Breakdown: Can Two Local AI Agents Build an App Without Me? I Gave Them 6 Rounds to Fi

![Architecture...

I Built a Free Sci-Hub Alternative from Iraq - 250M Papers, No Paywall
ai2026-09-25
mahmood al-dulaimimahmood al-dulaimi

I Built a Free Sci-Hub Alternative from Iraq - 250M Papers, No Paywall

Why I built this I'm Ehsan from Baghdad, Iraq. At my university, accessing research is...