SShortSingh.

Programming

0
ProgrammingDEV Community ·

SMTP 250 OK Is Not Enough: Developer Logs 24% Bounce Rate on Verified Emails

A developer discovered on July 15 that 12 out of 50 email addresses bounced despite all returning a 250 OK response during prior SMTP handshake verification. The 24% failure rate exposed a key limitation of relying solely on SMTP checks, which cannot detect role accounts, catch-all domains, or greylisting behavior. To investigate, the developer ran the same list through a third-party API that checks MX records, breach history, role-account flags, and provider identity. The deeper validation revealed metadata that standard SMTP handshakes do not surface, such as whether an address is a role account or has been flagged in known data breaches. The findings highlight why multi-layered email validation is more reliable than SMTP verification alone for production mailing campaigns.

0
ProgrammingDEV Community ·

How to prevent AI coding agents from making destructive changes without human approval

AI coding agents can edit files, run commands, and alter configurations in seconds, raising questions about authority rather than capability. A proposed governance framework classifies agent actions into low-impact reversible tasks, high-risk destructive operations, and undefined-authority situations that require a human approval gate. Before executing any hard-to-reverse action, the agent must document the impact, a rollback path, the justification, and explicit human sign-off — otherwise execution halts. The framework also enforces evidence-based success claims, meaning an agent can only mark a change complete when observable proof exists, not merely the absence of visible errors. A free Portuguese-language starter kit with four policy and checklist files has been published on GitHub, while a more comprehensive paid governance kit is available for R$39.90.

0
ProgrammingDEV Community ·

Four-Step Workflow to Hand Off a Coding Project Between AI Agents

A developer-shared workflow addresses a common problem: when an AI coding agent hits its usage limit mid-project, the new agent lacks the contextual history behind the code. The proposed solution uses a 'Living Memory Room' — a shared space where the current agent documents key decisions, failed attempts, workarounds, and next steps before signing off. The outgoing agent leaves a structured handoff note, and the incoming agent reads it alongside the actual code repository to reconstruct full context. This approach works whether the previous session is still active or has already ended, with the developer manually filling gaps if needed. The method is model-agnostic, supporting switches between hosted agents, different model providers, or local tools.

0
ProgrammingDEV Community ·

Solo Founders Should Match Marketing Channels to Time, Not the Other Way Round

A practical guide for solo founders argues that most marketing plans fail not from lack of effort but because they are designed for more time and staffing than actually exists. The core advice is to decide available hours first, then choose a single channel that fits within them, rather than adopting a channel and hoping time will follow. Batch-producing content well ahead of schedule is recommended so that inevitable interruptions — such as customer bugs or support demands — do not halt output entirely. Most solo founders realistically have around two hours per week for marketing, which is sufficient for one compounding channel but not for two or three. The piece warns that choosing a plan built for four hours while only having two is the primary reason solo marketing efforts collapse.

0
ProgrammingDEV Community ·

AI Made Your Team More Productive — Layoffs Should Not Be the Default Response

As AI tools speed up engineering and implementation work, some companies are using the efficiency gains as justification for reducing headcount rather than expanding output. Critics argue this overlooks a key reality: most teams still have a backlog of valuable, unfinished work that faster employees could now address. A 2023 NBER study found AI assistance raised customer support productivity by roughly 14%, with the largest gains among less experienced workers. Meanwhile, research from a P&G experiment suggested AI-assisted individuals could match the output of full teams on certain innovation tasks. The core argument is that measurable payroll savings should not automatically take priority over harder-to-quantify growth opportunities that a retained, AI-augmented team could deliver.

0
ProgrammingDEV Community ·

AgentHop tool lets developers switch OpenAI Codex profiles without repeated logins

A developer built AgentHop to solve the friction of managing multiple OpenAI Codex profiles across personal, client, and experimental workspaces. Previously, switching contexts required logging out, reconfiguring the environment, and re-authenticating each time, disrupting workflow. AgentHop provides a CLI-based dashboard that displays each profile's current status — ready, close, or blocked — along with reset times, so users can assess availability at a glance. The tool also runs as a Linux system tray application, allowing one-click profile switching without opening a full dashboard. During development, the author discovered that switching profiles could also change visible session history, since Codex stores both account identity and session state in the same local directory.

0
ProgrammingDEV Community ·

How a CSS substring selector silently broke a balance puzzle's triangle shape

A developer at a software team traced two subtle UI bugs to an overly broad CSS attribute selector using the substring match pattern `[class*='border-t']`, which unintentionally targeted unrelated Tailwind utility classes like `border-teal-500` and `border-transparent`. Because CSS triangles are constructed entirely from borders, stripping the top border via a global `!important` override deleted a fulcrum triangle in a balance puzzle rather than merely resizing it. A teal-bordered circle also lost its top edge, but the invisible nature of global overrides meant neither issue triggered any automated test. The fix required just one character of change — switching to an exact class selector `.border-t` — to prevent unrelated classes sharing the same prefix from being matched. The incident highlights a key rule for utility-CSS frameworks: before using a substring attribute selector, verify that no other framework class contains the same string.

0
ProgrammingDEV Community ·

One Bug, Five Engineering Layers: A Practical Guide to LLM Agent Design

A deliberately broken three-line Python duration parser — which misreads 250ms as 250.0 seconds instead of 0.25 — serves as the basis for comparing five distinct LLM engineering approaches. The five layers are prompt, context, harness, loop, and graph engineering, each differing in what is designed and how the system responds to failure. The framework draws on an August 2026 preprint titled 'Graph Engineering in the Era of LLM Agents,' which proposes graph engineering as a method for coordinating tasks, agents, and runtime state. Tools like LangGraph support this model by allowing workflow graph nodes to contain either model calls or conventional code. The article uses a fixed input-output contract for the parser to objectively evaluate repairs produced at each engineering layer.

0
ProgrammingDEV Community ·

Developer builds AI compliance tool where humans must make the final call

A developer created ClauseWatch, a compliance workflow app built with Sanity, where an AI agent helps navigate contradictory regulations but is explicitly blocked from making final decisions. The system uses a five-state workflow — raised, gathering, review, decided, and dismissed — with each transition specifying which actor, human or agent, is permitted to execute it. The agent can prepare all supporting material but cannot sign off on a compliance decision, a step reserved exclusively for a human. The project was built in a single session using Claude Code and is aimed at small companies where one person typically handles compliance responsibilities. The developer noted several AI coding missteps during development, including a leaked API token, incorrect corrections to Sanity's own documentation, and a patch script that reported success without making any changes.

0
ProgrammingDEV Community ·

GitHub Action adds zero-config WCAG 2.2 accessibility checks to pull requests

A new open-source GitHub Action called axe-core-action lets development teams automatically scan web pages for accessibility violations on every pull request without complex setup. Built on axe-core CLI, it tests a given URL against WCAG standards — including wcag2a, wcag2aa, wcag21aa, and wcag22aa — and fails the build when violations meet or exceed a configurable severity threshold. Each violation is surfaced as a GitHub annotation showing the rule ID, failing CSS selector, and a summary, alongside a Markdown table in the job summary. According to Deque, axe-core catches roughly 57% of accessibility issues by count, meaning the tool is intended as a regression-prevention floor rather than a full audit. The action is available under an MIT licence on GitHub at syntropydigital/axe-core-action.

0
ProgrammingDEV Community ·

Developer adds reusable style variants to shadcn/ui Input component using CVA

A developer building an invoice management application encountered repetitive styling when using the shadcn/ui Input component, having to copy the same class names every time the component was used. To solve this, they researched how other shadcn/ui components handle styling and discovered the concept of variants via the class-variance-authority (CVA) library. Unlike the Button component, the Input component does not ship with built-in variants, prompting the developer to create a custom one. They modified the default Input component by integrating CVA to define reusable style groupings, making it easy to apply consistent or alternate styles without repeating class names. The approach leverages shadcn/ui's flexible architecture, allowing any UI component to be extended with custom variants.

0
ProgrammingDEV Community ·

Developer Builds AI Cyberpunk Story Generator Using Sanity CMS and Google Gemini

A developer has created CyberDreams AI, an experimental web application that generates short cyberpunk stories by combining structured content from Sanity CMS with Google Gemini's generative AI. The project uses five content categories — characters, locations, technologies, threats, and events — stored in Sanity as building blocks for story generation. Each time a user clicks 'Generate CyberDream,' the app randomly selects one item from each category and sends the combination to Gemini, which produces a unique narrative. The application is built with Next.js, TypeScript, Tailwind CSS, and is deployed on Vercel. The project explores how structured CMS content can serve as creative fuel for AI-generated outputs, rather than simply being displayed as traditional website content.

0
ProgrammingDEV Community ·

Developer builds local-first visual IDE to avoid cloud lock-in and messy exported code

A developer has created NotCodes, a desktop IDE that combines visual layout editing with a local TypeScript AST parser, as an alternative to cloud-based visual builders. The tool writes changes directly to the user's local disk without relying on remote compilation servers, giving developers full ownership of their code. It outputs standard React, React Native, and Node.js codebases designed to be indistinguishable from handwritten code, with no proprietary runtime dependencies. The creator argues that cloud-hosted builders force vendor lock-in and produce unmaintainable code, while prompt-driven UI tools lack precise layout control as projects scale. The project raises broader questions about whether the low-code stigma discourages developers from adopting visual tools, even when those tools generate clean, portable code locally.

0
ProgrammingDEV Community ·

Why AI Models Process Hindi and Tamil Far Less Efficiently Than English

AI language models tokenize text differently across languages, and Indian languages like Tamil and Hindi require significantly more tokens than English to express the same sentence. A test comparing five languages found that while English needed about one token per word, Tamil required nearly eleven, making Indian-language AI interactions costlier and slower. This disparity stems from how tokenizers are trained using an algorithm called Byte Pair Encoding, which learns efficient text chunks based on frequency in training data. Since most AI training datasets are heavily English-dominated, Indic scripts receive far fewer opportunities to form compact, efficient tokens. The result is that Indian-language users face higher processing costs and slower responses for conveying the same information an English speaker can express more cheaply.

0
ProgrammingHacker News ·

US-Denmark Defense Agreements of 1951 and 2004 Released as Public PDF

The US State Department has made available a PDF document outlining defense agreements between the United States and Denmark, covering treaties from 1951 and 2004. These agreements form the legal framework governing defense cooperation between the two NATO allies. The document is hosted on the official State Department website. It was shared on Hacker News, attracting minimal discussion at the time of reporting.

0
ProgrammingDEV Community ·

Developer Builds EchoCadence, a Vocabulary App Designed for Better Word Retention

A developer named Divya created EchoCadence, a vocabulary learning application aimed at helping users retain new words more effectively. The project was shared on DEV Community on September 19 as part of a hackathon submission. EchoCadence was built for challenges including MLHacks, DevChallenge, and TigerData. The app focuses on making vocabulary stick through a structured learning approach. The post garnered six reactions from the developer community.

0
ProgrammingDEV Community ·

SMTP 250 OK Does Not Guarantee Delivery, Developer's 50-Email Test Reveals

A developer running a 50-address email campaign on July 15 received a 250 OK response from every recipient server during SMTP handshakes, yet 12 emails — a 24% failure rate — bounced hours later. The SMTP 250 OK status only confirms that a server accepted the message envelope, not that the target mailbox exists or will deliver the message to a real user. Running the same list through a deeper email validation API exposed hidden issues including role accounts, catch-all domains, greylisted servers, and addresses tied to hundreds of known data breaches. A test with the address test@gmail.com illustrated the gap: it scored 75 out of 100 and passed basic checks, but carried a role-account flag and 579 breach records that SMTP alone never surfaced. The findings suggest that developers relying solely on SMTP handshakes for email validation risk significant bounce rates and should use multi-factor validators that check MX behavior, breach history, and account type.

0
ProgrammingDEV Community ·

How Freelancers Can Track Overdue Invoices Using a Simple Spreadsheet

A freelancer and spreadsheet tool creator has outlined a free method for tracking unpaid invoices using Google Sheets or Excel, without the need for dedicated accounting software. The system centres on two key sheets: an Invoices log capturing details like due dates, amounts, and status, and a Chase Log recording every follow-up action taken. A suggested chase cadence begins on the invoice due date and escalates in polite steps every three to five working days, with all communications documented for potential dispute resolution. The author emphasises consistent data entry and a simple dashboard to surface only the metrics that influence weekly action, such as total outstanding and overdue count. The guide is framed as an organisational tool only, with readers directed to qualified professionals and GOV.UK for tax, VAT, and late-payment legal compliance.

← NewerPage 1119 of 3220Older →