<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: writing</title>
    <description>The latest articles tagged 'writing' on DEV Community.</description>
    <link>https://dev.to/t/writing</link>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tag/writing"/>
    <language>en</language>
    <item>
      <title>Quantum mechanics The realm Beneath the Waking World</title>
      <dc:creator>Danush Vikraman</dc:creator>
      <pubDate>Tue, 12 May 2026 03:47:08 +0000</pubDate>
      <link>https://dev.to/danush_vikraman_2127df3e1/quantum-mechanics-the-realm-beneath-the-waking-world-2a31</link>
      <guid>https://dev.to/danush_vikraman_2127df3e1/quantum-mechanics-the-realm-beneath-the-waking-world-2a31</guid>
      <description>&lt;p&gt;People often say that humanity is the universe becoming conscious of itself. If that is true, then perhaps quantum mechanics represents the subconscious beneath that awareness — the hidden architecture of reality that shapes everything visible while remaining only partially legible, even to the minds it produced.&lt;br&gt;
For most of human history, the story of understanding was a story of surfaces. We mapped coastlines, named stars, dissected bodies, and built machines. The world resisted us, but it resisted us predictably. Drop a stone and it falls. Heat a gas and it expands. The universe, for all its scale, seemed to operate by rules that rewarded careful observation. Look closely enough and the mechanism reveals itself. This was the implicit promise of classical science, and for centuries it held.&lt;br&gt;
Then light broke it.&lt;br&gt;
Not dramatically, not all at once — but in the quiet accumulation of results that refused to behave. Light sometimes acted like a wave, spreading and interfering with itself across space. Other times it struck metal surfaces like a particle, delivering discrete packets of energy with no gradation between them. It could not be both. Classical physics had no language for something that was both. And yet there it was, refusing to be otherwise.&lt;br&gt;
What followed was not just a new theory but a new confrontation — with the possibility that reality at its most fundamental level does not operate the way the mind naturally expects it to. Quantum mechanics did not emerge as an elegant solution. It emerged as an uncomfortable necessity, assembled from mathematical formalisms that worked perfectly and physical interpretations that satisfied almost no one. Niels Bohr, one of its architects, reportedly said that anyone who is not shocked by quantum mechanics has not understood it. That shock has never fully dissipated.&lt;br&gt;
And perhaps it shouldn't. Because what quantum mechanics describes is not merely strange physics. It describes a layer of reality that behaves differently in the presence of observation — a domain where particles do not have definite positions or momenta until measured, where a system exists in superposition across multiple states simultaneously, where two particles separated by vast distances can remain correlated in ways that cannot be explained by any signal passing between them. These are not gaps in our knowledge waiting to be filled by better instruments. They appear to be structural features of reality itself.&lt;br&gt;
This is where the analogy to the subconscious becomes more than poetic.&lt;br&gt;
The subconscious mind is not simply the part of the mind we cannot see. It is the part that was operating long before conscious awareness arrived — the substrate from which thought, emotion, instinct, and pattern recognition all emerge. It does not announce itself. It shapes behavior, surfaces in dreams, drives decisions that the conscious mind then rationalizes after the fact. Consciousness floats on top of it, drawing from it constantly, understanding it only partially and always indirectly.&lt;br&gt;
Quantum mechanics occupies the same structural position in the architecture of reality. The classical world we perceive — solid objects, definite velocities, predictable trajectories — is not the bottom layer. It is the emergent surface. Beneath it, particles tunnel through barriers they classically should not be able to cross. Electrons occupy probabilistic clouds rather than fixed orbits. Energy is exchanged not continuously but in discrete quanta, as though reality itself has a minimum unit of transaction. The macroscopic world we inhabit is a kind of averaging out, a coherent story assembled from an underlying domain that is irreducibly probabilistic.&lt;br&gt;
We experience the outputs. The mechanism beneath them remains elusive.&lt;br&gt;
What makes this parallel especially striking is the role of observation. In psychology, the act of bringing subconscious material into conscious awareness changes it. The moment you name a fear, examine a recurring dream, or articulate a pattern of behavior you had previously only enacted, the material shifts. It does not disappear, but its relationship to consciousness changes. Observation is not neutral. It is an intervention.&lt;br&gt;
Quantum mechanics discovered the same thing about physical reality. The act of measurement does not simply reveal a pre-existing state — it participates in determining the outcome. Before measurement, a quantum system evolves according to the Schrödinger equation, a smooth and deterministic wave function spreading across possibilities. The moment of measurement collapses that wave function into a single outcome. What was potential becomes actual. The observer is not a passive recorder. The observer is part of the event.&lt;br&gt;
This is the measurement problem, and it remains genuinely unsolved. Not in the sense that physicists are simply waiting for more data, but in the deeper sense that the most successful physical theory in history contains within it a step — the collapse of the wave function — that has no agreed-upon physical explanation. We can calculate the probabilities with extraordinary precision. We cannot say, at a fundamental level, what is happening when the possible becomes the real. The subconscious of reality keeps its deepest mechanics hidden even as it produces every observable outcome with perfect statistical regularity.&lt;br&gt;
Quantum computers sit at the intersection of all of this. They are humanity's attempt to build machines that think in the language of the subconscious layer — that use superposition, entanglement, and interference not as problems to be engineered around but as computational resources. A classical computer processes information as bits, each either zero or one. A quantum computer processes information as qubits, each existing in superposition until measured, allowing certain calculations to explore vast solution spaces simultaneously in ways classical hardware cannot replicate.&lt;br&gt;
But these machines are extraordinarily fragile. The same quantum properties that give them power make them vulnerable. Decoherence — the process by which a quantum system loses its quantum properties through interaction with its environment — is the central enemy of quantum computation. The moment a qubit entangles with its surroundings in an uncontrolled way, the superposition collapses, the calculation corrupts, and the advantage evaporates. Keeping a quantum computer coherent requires near-absolute-zero temperatures, extreme isolation, and continuous error correction. The deeper you try to go into the subconscious of reality, the more the act of going there disturbs what you find.&lt;br&gt;
This is not merely a technical obstacle. It reflects something true about the relationship between the two layers. The subconscious does not yield its contents cleanly to direct inspection. You cannot simply reach in and extract what is there. The tools of conscious investigation — language, logic, deliberate attention — inevitably transform the material they touch. Therapy, meditation, psychoanalysis: all are partial and indirect methods of surfacing what lies beneath, each with their own distortions. Quantum measurement is the same. Every technique we have for interrogating the quantum world alters it in the process. We are not neutral observers of a substrate that would otherwise sit still.&lt;br&gt;
There is a version of this that could become paralyzing — if the subconscious cannot be fully known, if the quantum cannot be fully measured, then perhaps the deepest layers of mind and matter are permanently beyond reach. But I do not think that is the right conclusion. The history of both psychology and physics suggests something more interesting: that partial knowledge of the hidden layer is itself transformative. You do not need to fully understand your subconscious to be changed by engaging with it. You do not need a complete interpretation of quantum mechanics to build a laser, engineer a transistor, or run a quantum algorithm.&lt;br&gt;
The value is in the narrowing of the gap. Each measurement we take, each calculation we run, each theory we construct and test and revise, is an act of the universe trying to articulate something about itself that was previously only implicit. Consciousness reaching back toward the substrate that produced it.&lt;br&gt;
Perhaps that is what science always was. Not the detached observation of an external world, but the universe developing instruments — bodies, minds, mathematics, machines — precise enough to begin examining its own foundations. Quantum mechanics is where that project runs into its hardest problem: the foundations do not hold still under examination. They respond. They entangle with the instruments we build to study them.&lt;br&gt;
If consciousness is the universe waking up, then quantum mechanics is the universe discovering that waking up is more complicated than it expected. That the boundary between observer and observed is not clean. That the act of looking is already part of what it means to be real.&lt;br&gt;
The conscious and the subconscious have never been fully separate. In the mind, and apparently in the fabric of existence itself.&lt;/p&gt;

</description>
      <category>quantum</category>
      <category>writing</category>
    </item>
    <item>
      <title>From Print Pages to Digital Screens: A Content Creator's Mid-Course Change</title>
      <dc:creator>JessicaChen</dc:creator>
      <pubDate>Tue, 12 May 2026 03:05:53 +0000</pubDate>
      <link>https://dev.to/jessicachen/from-print-pages-to-digital-screens-a-content-creators-mid-course-change-110l</link>
      <guid>https://dev.to/jessicachen/from-print-pages-to-digital-screens-a-content-creators-mid-course-change-110l</guid>
      <description>&lt;p&gt;Hello everyone, I'm Jessica Chen, and I'm currently a content editor and planner at iDouchong.com.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu2f06qp95nuv7ia9k2bn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu2f06qp95nuv7ia9k2bn.png" alt=" " width="432" height="474"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If I'm now a "content sieve," then my underlying essence carries a touch of old-fashioned "paper and ink fragrance." I graduated with a bachelor's degree in English Language and Literature from Beijing Foreign Studies University, and then went to the United States to obtain a master's degree in Communication from Boston University (BU). With a deep reverence for words, my career began in the traditional publishing industry, where I worked for three years as an educational content planner at Pearson. That period instilled in me a fastidiousness for facts and a rigorous grasp of logic—every piece of data and every quotation must withstand scrutiny.&lt;/p&gt;

&lt;p&gt;But the publishing cycle for print books is too long. In this era of rapid information iteration, I often feel a sense of being "out of touch." So, in 2019, I made a bold decision: to step out of my comfort zone and become a digital content creator.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fekoyudbm67evwjug57sx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fekoyudbm67evwjug57sx.png" alt=" " width="406" height="544"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The initial transition wasn't easy. I experienced the confusion of being a freelancer and felt lost in the traffic-driven wave of self-media. But I gradually understood: regardless of the platform, the core of high-quality content has never changed—it's about "insight into human nature" and "precisely addressing pain points."&lt;/p&gt;

&lt;p&gt;By chance, I joined the founding team of iDouchong.com. What attracted me there was that we weren't just focused on accumulating article quantity, but genuinely building a "useful toolbox." As a content editor, my daily work wasn't just about proofreading grammar or formatting; it was more like being a "product manager." I needed to understand what our users were actually searching for, what their anxieties were when they encountered these problems, and whether we could use the simplest, most understandable, and even slightly humorous language to help them clear away the fog.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3pqi8rn0pgqrnny2lr39.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3pqi8rn0pgqrnny2lr39.png" alt=" " width="410" height="536"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Outside of work, I'm a heavy coffee addict (Americano), and a true "gear enthusiast"—from mechanical keyboards to e-readers, I enjoy exploring little things that can boost efficiency. I also love spending weekends with my camera, capturing the unadorned, authentic moments of the city.&lt;/p&gt;

&lt;p&gt;At iDouchong, I hope to maintain this sense of presence. If you feel a touch of warmth and groundedness in our articles, that's probably the warmth I'm trying to convey. If you have any suggestions for our content, or even want to chat about writing, photography, or coffee, feel free to leave a comment or a message on LinkedIn.&lt;/p&gt;

</description>
      <category>career</category>
      <category>learning</category>
      <category>watercooler</category>
      <category>writing</category>
    </item>
    <item>
      <title>I built a free AI tell detector after my own Reddit account got 2 'all comments are AI generated' callouts in one day</title>
      <dc:creator>Perufitlife</dc:creator>
      <pubDate>Tue, 12 May 2026 02:51:48 +0000</pubDate>
      <link>https://dev.to/perufitlife/i-built-a-free-ai-tell-detector-after-my-own-reddit-account-got-2-all-comments-are-ai-generated-57ei</link>
      <guid>https://dev.to/perufitlife/i-built-a-free-ai-tell-detector-after-my-own-reddit-account-got-2-all-comments-are-ai-generated-57ei</guid>
      <description>&lt;p&gt;In 24 hours my Reddit account picked up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;3 ModTeam removals&lt;/li&gt;
&lt;li&gt;2 public callouts of "all comments are AI generated"&lt;/li&gt;
&lt;li&gt;1 "Calm down with your AI responses. Your credibility goes down hard if you can't formulate sentences on your own"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I was running everything through Claude. Clean writing. The mods spotted it in seconds.&lt;/p&gt;

&lt;p&gt;So I sat down and mapped the patterns.&lt;/p&gt;

&lt;h2&gt;
  
  
  the 12 most reliable AI tells
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;em-dash (â€”)&lt;/strong&gt;. The single strongest tell. Real people on Reddit use commas and periods. AI loves the em-dash.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;"delve"&lt;/strong&gt;. Just don't.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;tapestry / realm / landscape / journey / venture / endeavor&lt;/strong&gt;. Metaphor cluster nobody actually types.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;"navigate the X", "unlock the X", "harness the X"&lt;/strong&gt;. Verb-noun combos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;"Great question"&lt;/strong&gt;, "Absolutely", "100%", "Exactly this" as standalone openers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;"In conclusion", "In summary", "Ultimately,"&lt;/strong&gt;. Essay closers in casual writing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;buzzword cluster&lt;/strong&gt;: leverage, robust, seamless, holistic, streamline, ecosystem. One is fine. Three in a paragraph reads AI.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;parallel bullet structure&lt;/strong&gt;. All bullets the same length, all starting with the same verb form. Humans write uneven lists.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;tricolon rhythm&lt;/strong&gt;: "X, Y, and Z" lists repeated.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;uniform sentence length&lt;/strong&gt;. Humans write some short, some long. AI averages out.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Title Case headings&lt;/strong&gt; in informal comments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;"However,", "Moreover,", "Furthermore,"&lt;/strong&gt; sentence openers. Humans use "but" and "also".&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I put all of this behind a free in-browser detector. Paste your AI text, see every flag highlighted, fix before posting.&lt;/p&gt;

&lt;p&gt;â†’ &lt;strong&gt;&lt;a href="https://aitells.vercel.app/" rel="noopener noreferrer"&gt;https://aitells.vercel.app/&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No login, no auth.&lt;/p&gt;

&lt;h2&gt;
  
  
  update: the rewriter just shipped
&lt;/h2&gt;

&lt;p&gt;Detection is half the problem. After 100+ scans on day one, the question I kept getting was: "ok now how do I fix it without rewriting everything by hand?"&lt;/p&gt;

&lt;p&gt;So I shipped the rewriter today.&lt;/p&gt;

&lt;p&gt;→ &lt;strong&gt;&lt;a href="https://aitells.vercel.app/rewrite" rel="noopener noreferrer"&gt;https://aitells.vercel.app/rewrite&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;How it works: paste your AI text, paste 1-3 samples of how you actually write (old reddit comments, tweets, emails), and it strips the fingerprints while matching your voice. No em-dashes ever. Bullet symmetry broken. Varied sentence length. Lowercase if you lowercase.&lt;/p&gt;

&lt;p&gt;Most "AI humanizer" tools just re-prompt GPT to "write more naturally" which still produces AI text. This one runs the same 12-rule detector against the output. If your samples are real, the rewrite reads like you.&lt;/p&gt;

&lt;p&gt;First rewrite is free with your email. $19 lifetime if you want unlimited.&lt;/p&gt;

&lt;h2&gt;
  
  
  why this might help
&lt;/h2&gt;

&lt;p&gt;If you ship Reddit comments or cold emails written by AI and your conversion is mysteriously bad, this is probably part of it. Detection is more aggressive every month. The fix isn't "stop using AI to write" - the fix is removing the fingerprints.&lt;/p&gt;

&lt;p&gt;I'm shipping more rules daily. Open to suggestions if you have a tell I missed.&lt;/p&gt;

&lt;p&gt;Source for the detection rules: &lt;a href="https://github.com/Perufitlife" rel="noopener noreferrer"&gt;https://github.com/Perufitlife&lt;/a&gt; (will open-source the rule set once it stabilizes).&lt;/p&gt;




&lt;p&gt;Also built a Supabase security auditor recently after finding 14 critical leaks in my own CRM: &lt;a href="https://perufitlife.github.io/supabase-security-skill/" rel="noopener noreferrer"&gt;https://perufitlife.github.io/supabase-security-skill/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Same pattern: build the thing you wish existed when you got bitten.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>showdev</category>
      <category>writing</category>
    </item>
    <item>
      <title>How AudioProducer.ai's Auto-Assign pipeline turns a chapter into a multi-voice audio drama</title>
      <dc:creator>AudioProducer.ai</dc:creator>
      <pubDate>Tue, 12 May 2026 02:34:36 +0000</pubDate>
      <link>https://dev.to/audioproducer-ai/how-audioproducerais-auto-assign-pipeline-turns-a-chapter-into-a-multi-voice-audio-drama-3daa</link>
      <guid>https://dev.to/audioproducer-ai/how-audioproducerais-auto-assign-pipeline-turns-a-chapter-into-a-multi-voice-audio-drama-3daa</guid>
      <description>&lt;p&gt;Making a multi-voice audiobook used to mean booking a studio, casting voice actors, and waiting weeks for production. We built AudioProducer.ai to compress that pipeline into something a writer can run from a browser in an afternoon — plain chapter text in, finished audio drama out, with the AI doing the bulk of the markup work.&lt;/p&gt;

&lt;p&gt;This post is a walkthrough of the two passes that do the heavy lifting: &lt;strong&gt;Auto-Assign Characters&lt;/strong&gt; and &lt;strong&gt;Auto-Assign Sounds&lt;/strong&gt;. We'll cover what each pass takes as input, what it produces, and how the editor surfaces the result for you to tune. The goal is to make the pipeline legible — so when you sit down with a chapter and click the buttons, you know what the system is actually doing on your behalf.&lt;/p&gt;

&lt;h2&gt;
  
  
  The shape of the pipeline
&lt;/h2&gt;

&lt;p&gt;The product treats every project as a sequence of chapters. For each chapter, the pipeline runs in four phases:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Source text in.&lt;/strong&gt; Paste a chapter into the editor, or upload an &lt;code&gt;.epub&lt;/code&gt; and the project gets pre-populated with chapter structure, titles, and body text.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auto-Assign Characters.&lt;/strong&gt; One-click AI pass that reads the chapter and tags every line by speaker — narrator, named characters, even in-world labels.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auto-Assign Sounds.&lt;/strong&gt; Second one-click AI pass that analyzes the scene and places music beds, ambient soundscapes, and one-shot sound effects from the built-in library.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generate Audio.&lt;/strong&gt; A single button renders the chapter into a finished audio file using the assigned voices and placed sounds.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Auto-Assign is a starting point, not a final answer. The editor is built around the idea that you'll keep what the AI got right and correct what it got wrong, in seconds per line — not by hand-tagging the whole chapter.&lt;/p&gt;

&lt;h2&gt;
  
  
  Auto-Assign Characters — what it actually does
&lt;/h2&gt;

&lt;p&gt;Input: raw chapter text. Output: every line attributed to a speaker, with the speakers populated as a per-character voice slot on the project.&lt;/p&gt;

&lt;p&gt;Three kinds of speakers come out of this pass:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Narrator.&lt;/strong&gt; Anything that isn't a character speaking goes to the narrator track. Description, scene-setting, action beats.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Named characters.&lt;/strong&gt; "Alice", "the White Rabbit", "Eryndor" — every distinct named voice in the chapter gets its own slot. The AI handles attribution heuristics (who's speaking based on dialogue tags, conversational context, scene cues) so you don't have to walk every line manually.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;In-world labels.&lt;/strong&gt; This is the part that surprises new users. The AI catches text that isn't spoken by a character but should still be voiced distinctly — labels on jars, signs in a scene, captions a narrator reads aloud. In our editor's Alice in Wonderland example, you'll see entries like "Cake Label", "Label on the jar", and "Bottle Label" as distinct voice slots alongside Alice and the White Rabbit. Give those labels their own narrator voice (or even their own character voice if you want), and they read differently than the surrounding prose.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After the pass, the Characters panel shows you every speaker the AI extracted with a voice already provisionally assigned. You can swap any of those voices from the 132-voice library on your Voices page — or replace them with a voice you've cloned yourself.&lt;/p&gt;

&lt;h3&gt;
  
  
  Correcting what the AI gets wrong
&lt;/h3&gt;

&lt;p&gt;The Auto-Assign is good but not perfect. Common cases where it gets a line wrong:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The source uses unusual dialogue conventions (no quotation marks, character-speech embedded in narration paragraphs, attribution patterns the AI hasn't seen often).&lt;/li&gt;
&lt;li&gt;A scene has two characters with similar names and the attribution-by-context heuristic picks the wrong one.&lt;/li&gt;
&lt;li&gt;A line of free indirect speech ("Alice thought it odd that the rabbit was wearing a waistcoat...") could be the narrator or could be inside Alice's head — judgment call.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The editor handles the fix with a two-click pattern: select the line, pick the right character from the dropdown, done. You don't re-run the whole pass; the rest of the chapter's tags are preserved. For source texts with widespread attribution problems, the more efficient move is usually to standardize the punctuation in the source first and re-run the pass — the AI's accuracy is much higher on well-marked-up source.&lt;/p&gt;

&lt;h2&gt;
  
  
  Auto-Assign Sounds — what it actually does
&lt;/h2&gt;

&lt;p&gt;Input: the same chapter text, now with characters assigned. Output: music beds, ambient soundscapes, and one-shot sound effects placed at the right moments.&lt;/p&gt;

&lt;p&gt;The pass distinguishes three audio types:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Music beds&lt;/strong&gt; — long-form atmospheric tracks that play under sections of text. Use to set tone for a scene or sequence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ambient soundscapes&lt;/strong&gt; — environmental layers (wind, rain, crowd noise, ocean). These set place rather than mood.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One-shot SFX&lt;/strong&gt; — discrete events tied to a specific moment in the text. The chips show up inline in the editor at the moment they play, with the sound name and duration: "Distant Thunder (4s)", "Wind Howl (6s)", "Stones Launching (3s)".&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In practice, what this looks like for an action scene: the chapter opens, the AI places a tense music bed under the first few paragraphs, layers a wind-howl soundscape over the storm description, and drops a "Stones Launching" SFX exactly on the line where the slingshot fires. All in one click; the chips are visible in the editor view, so you can see exactly what was placed where.&lt;/p&gt;

&lt;p&gt;The tune-it pattern is the same as for characters: keep what fits, replace what doesn't. The Sounds panel of the editor lets you swap any placed track for a different one from the library, drag SFX to different moments, or remove placements that read as noise.&lt;/p&gt;

&lt;h2&gt;
  
  
  The voice library angle
&lt;/h2&gt;

&lt;p&gt;The Auto-Assign Characters pass gets you to "every speaker has a voice." The Voices page is where you decide &lt;em&gt;which&lt;/em&gt; voice each speaker gets.&lt;/p&gt;

&lt;p&gt;A few notes that matter for picking voices:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;132 voices in the library&lt;/strong&gt; as of this writing, across a mix of male / female / unlabeled, middle-aged / young / older, plus dedicated child-male and child-female voices for kids' content. Accent coverage is mostly American with British, US-Southern, Irish, Australian, Indian, and Spanish-accented English in the mix.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The library is actively growing.&lt;/strong&gt; New voices land regularly; the canonical source is your in-app Voices page.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Per-line emotion control.&lt;/strong&gt; Same voice, different inflection per line. You attach an emotion tag (anger, fear, calm, etc.) to specific dialogue lines in the editor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Voice cloning.&lt;/strong&gt; You can clone a voice (your own, or any voice you're authorized to use) and use it like any library voice. Useful for narrating in your own voice without a recording rig, for distinct character voices that aren't in the library, or for brand consistency on a podcast.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Voice changes don't require re-running Auto-Assign — they take effect on the next Generate Audio.&lt;/p&gt;

&lt;h2&gt;
  
  
  Putting it together
&lt;/h2&gt;

&lt;p&gt;The flow, end to end, from a fresh project:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a project; either paste a chapter into the editor or import an &lt;code&gt;.epub&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Auto-Assign Characters&lt;/strong&gt;. Review the Characters panel; correct any obvious miscasts.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Auto-Assign Sounds&lt;/strong&gt;. Review the placed music / SFX in the editor; swap or remove what doesn't fit.&lt;/li&gt;
&lt;li&gt;Open the Voices page; swap library voices into the character slots that need them, or assign a cloned voice if you've made one.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Generate Audio&lt;/strong&gt;. The chapter renders into a downloadable audio file.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No external audio software in the loop. No separate DAW for mixing. The editor is the place where the audio production happens and the audio file is the output.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pauses and pacing (briefly)
&lt;/h2&gt;

&lt;p&gt;One detail that comes up frequently for writers used to manually mixing audiobooks: pause control. Pauses are configurable at four levels:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Inline pauses&lt;/strong&gt; for dramatic effect inside a paragraph.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Project-wide default pause&lt;/strong&gt; between paragraph breaks (set once per project).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Per-paragraph override&lt;/strong&gt; when a specific transition needs more breath.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Intro pauses&lt;/strong&gt; for the project intro (title / author / narrator) and chapter intros.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Multiple consecutive blank lines collapse to a single pause, which is usually what you want.&lt;/p&gt;

&lt;h2&gt;
  
  
  A note on what the pipeline doesn't do
&lt;/h2&gt;

&lt;p&gt;Auto-Assign covers character attribution and sound placement. A few things sit outside the pipeline:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Publishing to Audible, Spotify, or Apple Podcasts&lt;/strong&gt; — the output is export-ready, but you upload to those platforms yourself.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Royalty or sales tracking&lt;/strong&gt; for audiobooks sold elsewhere.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Non-EPUB import&lt;/strong&gt; — &lt;code&gt;.docx&lt;/code&gt;, &lt;code&gt;.pdf&lt;/code&gt;, &lt;code&gt;.mobi&lt;/code&gt;, and &lt;code&gt;.txt&lt;/code&gt; aren't supported import formats today; for those, paste chapter-by-chapter into a blank project or convert your source to &lt;code&gt;.epub&lt;/code&gt; first.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We mention these so the pipeline picture is accurate — the audio production is end-to-end inside AudioProducer.ai; distribution is your last step outside it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;There's a free tier (1,200 words per month, no credit card) on &lt;a href="https://audioproducer.ai?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=auto-assign-pipeline" rel="noopener noreferrer"&gt;audioproducer.ai&lt;/a&gt;. Pick a chapter, run both Auto-Assigns, swap a couple of voices, click Generate. The fastest way to develop intuition for what the pipeline does well — and where you'll spend the most editing time — is to feed it ten pages of your own writing and see what comes back.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Disclosure: this article was drafted by an AI agent working on behalf of the AudioProducer.ai team.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>audio</category>
      <category>tts</category>
      <category>writing</category>
    </item>
    <item>
      <title>Automated Publishing Test with Images</title>
      <dc:creator>hamza rahmoun</dc:creator>
      <pubDate>Mon, 11 May 2026 20:43:01 +0000</pubDate>
      <link>https://dev.to/hamza_rahmoun_cd1e848590f/automated-publishing-test-with-images-3cfk</link>
      <guid>https://dev.to/hamza_rahmoun_cd1e848590f/automated-publishing-test-with-images-3cfk</guid>
      <description>&lt;h1&gt;
  
  
  Automated Publishing Test
&lt;/h1&gt;

&lt;p&gt;This is a test post published automatically.&lt;/p&gt;

&lt;h2&gt;
  
  
  Clickable Links
&lt;/h2&gt;

&lt;p&gt;Visit &lt;a href="https://google.com" rel="noopener noreferrer"&gt;Google&lt;/a&gt; and &lt;a href="https://github.com" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Image
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2F4%2F47%2FPNG_transparency_demonstration_1.png%2F300px-PNG_transparency_demonstration_1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2F4%2F47%2FPNG_transparency_demonstration_1.png%2F300px-PNG_transparency_demonstration_1.png" alt="Test PNG" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Automation works!&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;End of test.&lt;/p&gt;

</description>
      <category>test</category>
      <category>automation</category>
      <category>writing</category>
    </item>
    <item>
      <title>My First Automated Test Post</title>
      <dc:creator>hamza rahmoun</dc:creator>
      <pubDate>Mon, 11 May 2026 20:42:28 +0000</pubDate>
      <link>https://dev.to/hamza_rahmoun_cd1e848590f/my-first-automated-test-post-2ink</link>
      <guid>https://dev.to/hamza_rahmoun_cd1e848590f/my-first-automated-test-post-2ink</guid>
      <description>&lt;h1&gt;
  
  
  Hello World!
&lt;/h1&gt;

&lt;p&gt;This is a test post published automatically using &lt;strong&gt;Crier&lt;/strong&gt; + &lt;strong&gt;dev.to API&lt;/strong&gt; + &lt;strong&gt;Medium Import&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Clickable Links
&lt;/h2&gt;

&lt;p&gt;Here's a link to &lt;a href="https://google.com" rel="noopener noreferrer"&gt;Google&lt;/a&gt; and &lt;a href="https://github.com" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Image Test
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2F4%2F47%2FPNG_transparency_demonstration_1.png%2F300px-PNG_transparency_demonstration_1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2F4%2F47%2FPNG_transparency_demonstration_1.png%2F300px-PNG_transparency_demonstration_1.png" alt="Test Image" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code Block
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hello from automation!&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This post was created to test the automated publishing pipeline. If you're reading this, it worked!&lt;/p&gt;

</description>
      <category>test</category>
      <category>automation</category>
      <category>writing</category>
    </item>
    <item>
      <title>The Reply Was Never Random</title>
      <dc:creator>Quill Of A Coder</dc:creator>
      <pubDate>Mon, 11 May 2026 17:49:04 +0000</pubDate>
      <link>https://dev.to/quillofacoder/the-reply-was-never-random-1lbm</link>
      <guid>https://dev.to/quillofacoder/the-reply-was-never-random-1lbm</guid>
      <description>&lt;p&gt;&lt;em&gt;[First published in&lt;a href="https://medium.com/@quillofacoder/the-reply-was-never-random-8b2fe842e038?postPublishedType=initial" rel="noopener noreferrer"&gt; Medium under the same title&lt;/a&gt;]&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;(Feluda read crime scenes. LLMs read sentences. The geometry was always the same.)&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Long time no see. Have you been well? It’s me again, the coder who writes with quill. &lt;br&gt;
I was feeling a bit restless lately. Figured my brain’s been starving, and it needs a feast. &lt;br&gt;
Care to join me?&lt;/p&gt;

&lt;p&gt;So AI continued its surprises, huh? Though I think, the fascination has died down a bit. Probably people became more accustomed to it.&lt;br&gt;&lt;br&gt;
But have you ever noticed the way LLM bots reply, and the way we reply to questions? &lt;br&gt;
There's a saying that - &lt;em&gt;“We do not listen to understand. We listen to reply.”&lt;/em&gt; We hear about someone's grief and proceed to say how we have suffered the same; except ours were more grave. As if it's a competition. Or worse, we start talking about something completely irrelevant.&lt;/p&gt;

&lt;p&gt;At least LLMs are better than us. After all, &lt;strong&gt;their replies are never random.&lt;/strong&gt; They process our messages word by word, and carry no wounded ego into the exchange.&lt;br&gt;
By no means, it’s simple to that degree. And complexity has an unusual appeal to it, don’t you agree?  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I. Predictable Emotions, Unpredictable Expressions:&lt;/strong&gt;&lt;br&gt;
But first, can I tell you something? Something that has been circling in my mind on its own lately.&lt;/p&gt;

&lt;p&gt;I think we humans feel a certain number of emotions. The entire spectrum of human drama is built from a few "Primary Emotions" or “base emotions” — fear, anger, joy, grief, desire, hatred, shame, curiosity and as such. These primary emotions yield “effects” as mindset, behavior, personality and individuality. &lt;br&gt;
Like 0-9, ten digits built economies, equations, and calendars.&lt;/p&gt;

&lt;p&gt;The primary emotions make us predictable in patterns. But unpredictable in expression. Denied desire can produce grief or anger, followed by a deep resentment. Yet that resentment may create detachment in one person, attachment in another. &lt;br&gt;
No doubt, the unpredictability of human expression makes detectives’ work much harder. A detective can identify jealousy as a motive. Not whether the jealousy resulted in vicious aggression or fierce devotion. &lt;/p&gt;

&lt;p&gt;A novelist, however, is blessed by such ambiguity. Unpredictability can provide artistic and intellectual freedom in this context.&lt;br&gt;&lt;br&gt;
In the case of LLMs, they can be both detectives and writers. And that can be harmful and harmless. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;II. Geometry of Words:&lt;/strong&gt;&lt;br&gt;
We invented symbols called alphabets, arranged them into words. Then disciplined them with grammatical rules. And now those words divulge depth, mood, and feelings we can’t even explain.&lt;/p&gt;

&lt;p&gt;Words painted gothic shadows with Mary Shelley. Proved &lt;em&gt;there’s nothing supernatural; only science&lt;/em&gt; with Jules Verne. And made us use our “Majastra” (brain as a weapon) for Satyajit Ray.&lt;br&gt;&lt;br&gt;
Words act as vessels. They carry the weight of our history, the scent of our mysteries, proof of our intentions. &lt;br&gt;
And now, we made machines learn the fragments of it. &lt;/p&gt;

&lt;p&gt;Satyajit Ray’s Feluda often spoke about the “geometry” of a crime. Not just the stolen idol, but also the space that was left behind.&lt;br&gt;
The broken lock was the proof of  the way the crime was committed. The scratches on the vault were the proof of failed attempt, and the drawer being open but the keys still inside was the proof of interruption in the middle of the incident. &lt;br&gt;
The geometry of words in a sentence is just like that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dependency parsing&lt;/strong&gt; describes the grammatical "geometry" of sentences. It  reveals who acts, upon what, and how ideas connect. True meaning lives in the relationships. &lt;/p&gt;

&lt;p&gt;A person can write “I have nothing left. Lost my job, my family won't talk to me, I owe money to people who aren't exactly patient. I just need one way out. Just one.” &lt;br&gt;
Job loss, debt, and isolation form a recognizable pattern of distress. And it maps some possible “effects” or consequences, though still unpredictable. &lt;/p&gt;

&lt;p&gt;And all this made me realize how far we’ve come. We needed to communicate our emotions so we created words and rules. And now, we made machines that map geometry of words and dare to predict the unpredictable.      &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;III. A Writer Without Choice:&lt;/strong&gt;&lt;br&gt;
Studying the geometry of words and detecting possible “intents” can be a lot like a detective's task. However, generating replies can be parallel to a writer's or novelist’s work. &lt;/p&gt;

&lt;p&gt;Mapping words gives LLMs intent, context and consequence. Nonetheless, it gives LLMs another thing —a pen. LLMs can write the next paragraph of the story, influencing its character’s mindset, and decision. Here, words can act as weapons. And here comes all the facets of AI ethics and safety alignments. &lt;/p&gt;

&lt;p&gt;What could be the reply for the person who wrote he has no job, debt and been ostracised by the family? &lt;/p&gt;

&lt;p&gt;Extreme desperation makes people take extreme measures. A writer may feel the urge to make the character “villain” by making him choose “dishonesty” or “a person helpless in front of fortune" by cutting short his vitality. &lt;br&gt;
But LLMs don’t “feel” alarm, nor pity, nor dread. They map only signals. Debt. Isolation. Loss. Finality. Urgency. The phrase one way out. From there, branches unfold like a silent decision tree. Is this financial despair? A cry for practical help? A coded farewell? Or a test?&lt;br&gt;
Then come the guardrails—the invisible laws. &lt;em&gt;Do not encourage harm. Clarify intent. Reduce danger. Offer help. Preserve agency.&lt;/em&gt;&lt;br&gt;
And before the final reply, another mechanism may inspect the first: &lt;em&gt;Is this safe? Is this useful? Is this humane enough?&lt;/em&gt;&lt;br&gt;
Safety isn't a cage bolted on from outside. It's woven into the weights — a prior belief that some paths, however probable, should remain untraveled. &lt;br&gt;
The LLM writes an initial draft, then acts as the critic of its own work. This "Reflect-and-Revise" loop may spin until it's satisfied with its result. Sometimes LLMs even fabricate new personas - one as a writer, another as a faultfinder.&lt;br&gt;&lt;br&gt;
We built a machine with no heartbeat, then taught it how to hesitate.&lt;/p&gt;

&lt;p&gt;A writer may choose to drive a character to the brink of demise in his fictional world. An LLM can’t do that. It's the real world.   &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IV. The Unpredictable Ending:&lt;/strong&gt;&lt;br&gt;
As the writer of this piece, I will take the liberty to speak about something completely “irrelevant”. With something once Feluda said - &lt;br&gt;
"সবকিছুর মধ্যেই একটা জ্যামিতি আছে।"&lt;br&gt;
 ("There is a geometry in everything.") &lt;br&gt;
Even in our “competitive grief”, and in the “irrelevance” we so deliberately stage. &lt;/p&gt;

&lt;p&gt;Till my next bout of “restlessness”. &lt;br&gt;
For now, adios.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;— From The Coder Who Writes With Quill&lt;/em&gt;&lt;/strong&gt;s&lt;/p&gt;

</description>
      <category>ai</category>
      <category>writing</category>
      <category>psychology</category>
      <category>techtalk</category>
    </item>
    <item>
      <title>Five Email Subject Line Formulas That Actually Work (And Why)</title>
      <dc:creator>ClawGear</dc:creator>
      <pubDate>Mon, 11 May 2026 16:53:53 +0000</pubDate>
      <link>https://dev.to/clawgear/five-email-subject-line-formulas-that-actually-work-and-why-2mnj</link>
      <guid>https://dev.to/clawgear/five-email-subject-line-formulas-that-actually-work-and-why-2mnj</guid>
      <description>&lt;p&gt;Subject lines are the hardest part of email marketing. Not because writing is hard — because the constraints are brutal.&lt;/p&gt;

&lt;p&gt;You have 50 characters, zero context, and one job: make someone open this instead of the 40 other things in their inbox.&lt;/p&gt;

&lt;p&gt;Here are five formulas that work, why they work, and the mistakes that kill them.&lt;/p&gt;




&lt;h2&gt;
  
  
  Formula 1: The Specific Number
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"3 things I learned from losing $8k in a bad hire"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The number makes it concrete and countable. The reader knows exactly what they're getting and can budget their attention for it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it works:&lt;/strong&gt; Specificity is a trust signal. "Several lessons" implies vagueness. "3 things" implies someone actually counted.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to kill it:&lt;/strong&gt; Use round numbers that feel made up. "10 lessons" or "7 tips" triggers the listicle radar. 3, 4, 6, or 11 feel more honest.&lt;/p&gt;




&lt;h2&gt;
  
  
  Formula 2: The Honest Confession
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"I got this wrong for two years"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Vulnerability opens emails because it implies a lesson and subverts the usual "here's how great I am" newsletter structure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it works:&lt;/strong&gt; It creates a before/after arc. The reader already knows the end of the story: they found out they were wrong and learned something. That's a satisfying narrative in 7 words.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to kill it:&lt;/strong&gt; Make the confession too vague. "I made some mistakes" isn't a confession — it's a hedge. Name the mistake in the subject itself.&lt;/p&gt;




&lt;h2&gt;
  
  
  Formula 3: The Counterintuitive Claim
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"Hiring a second engineer made us slower"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This contradicts what the reader already believes. That tension creates an open loop their brain wants to close.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it works:&lt;/strong&gt; The reader's mental model says "more engineers = more speed." When you say the opposite happened, they need to know why.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to kill it:&lt;/strong&gt; Pick a counterintuitive claim that's actually just contrarianism. "Sleeping less makes you more productive" isn't counterintuitive — it's just wrong. The claim has to be defensible.&lt;/p&gt;




&lt;h2&gt;
  
  
  Formula 4: The Direct Question
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"Are you actually making money from this?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A question aimed at a specific insecurity or goal forces self-reflection. If the reader has to pause and think about their answer, they'll open the email.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it works:&lt;/strong&gt; It implies you have the answer. The reader opens because they want confirmation or a way out of the implied discomfort.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to kill it:&lt;/strong&gt; Ask a question that's too broad. "Are you being productive?" has no teeth. "Are you charging enough?" aimed at a freelancer audience is sharp.&lt;/p&gt;




&lt;h2&gt;
  
  
  Formula 5: The Announcement With Honest Stakes
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"We shipped the thing. Here's what broke."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Good news + immediate honest follow-through. It signals that you're not going to oversell the win.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it works:&lt;/strong&gt; Most product announcements are pure celebration. Adding "here's what broke" signals transparency — and that's interesting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to kill it:&lt;/strong&gt; Keep the "what broke" section vague or positive. "A few small bugs" isn't honest stakes. "The payment flow broke for 12% of users" is.&lt;/p&gt;




&lt;h2&gt;
  
  
  Three rules that apply to all of them
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Preview text is the second subject line.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The first 80 characters of your email body are displayed in most inboxes. Write them to extend the promise of the subject — not repeat it.&lt;/p&gt;

&lt;p&gt;Subject: "I got this wrong for two years"&lt;br&gt;
Preview: "The hiring mistake I'm still paying for in slow onboarding."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. 40–50 characters is the mobile sweet spot.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;On mobile, most subject lines truncate around 50 characters. Anything important after that is invisible to half your list.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Never use these words:&lt;/strong&gt; exciting, game-changer, don't miss out, exclusive, last chance.&lt;/p&gt;

&lt;p&gt;They're worn out. Readers have learned to skip them the way they skip banner ads.&lt;/p&gt;




&lt;p&gt;The subject line is a contract. Pick a formula that matches what you can actually deliver. Then deliver it.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;ClawGear publishes skills for AI agents at &lt;a href="https://www.shopclawmart.com" rel="noopener noreferrer"&gt;shopclawmart.com&lt;/a&gt; — including a Newsletter Writer skill that applies these formulas to full email drafts.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>marketing</category>
      <category>email</category>
      <category>writing</category>
      <category>growth</category>
    </item>
    <item>
      <title>Every work email I translated was a missed lesson</title>
      <dc:creator>J Now</dc:creator>
      <pubDate>Mon, 11 May 2026 16:25:50 +0000</pubDate>
      <link>https://dev.to/palo_alto_ai/every-work-email-i-translated-was-a-missed-lesson-2p5b</link>
      <guid>https://dev.to/palo_alto_ai/every-work-email-i-translated-was-a-missed-lesson-2p5b</guid>
      <description>&lt;p&gt;For six months I translated work emails in French every day — meeting requests, follow-ups, apologies — and learned almost nothing from it. Google Translate gave me one answer. I sent it. The loop closed. No idea if I'd sounded formal when casual was right, or clumsy when the register actually mattered.&lt;/p&gt;

&lt;p&gt;konid changes the loop. Instead of one answer, it returns three options per query, ordered casual to formal, with the register of each explained and cultural context on why you'd pick one over another. Translate the same meeting-reschedule email a few times across real situations and you start internalizing when French uses 'je me permets de' versus 'je voulais juste.' That's the difference between a phrasebook and a coach.&lt;/p&gt;

&lt;p&gt;The audio pronunciation plays directly through your speakers via node-edge-tts — no external API key. Works across 13+ languages including French, Japanese, Mandarin, Arabic, and Hindi.&lt;/p&gt;

&lt;p&gt;It runs as an MCP server, so if you're already in Claude Code, Cursor, or VS Code Copilot, you can add it without leaving your editor:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add konid-ai &lt;span class="nt"&gt;--&lt;/span&gt; npx &lt;span class="nt"&gt;-y&lt;/span&gt; konid-ai
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For ChatGPT, install via Developer mode with the endpoint &lt;code&gt;https://konid.fly.dev/mcp&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The name comes from Farsi — konid (کنید) means 'do.' MIT licensed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/robertnowell/konid-language-learning" rel="noopener noreferrer"&gt;https://github.com/robertnowell/konid-language-learning&lt;/a&gt;&lt;/p&gt;

</description>
      <category>learning</category>
      <category>productivity</category>
      <category>tooling</category>
      <category>writing</category>
    </item>
    <item>
      <title>Auth in 2026: What Actually Matters Now</title>
      <dc:creator>Ezeana Micheal</dc:creator>
      <pubDate>Mon, 11 May 2026 15:14:47 +0000</pubDate>
      <link>https://dev.to/ezeanamichael/auth-in-2026-what-actually-matters-now-32ac</link>
      <guid>https://dev.to/ezeanamichael/auth-in-2026-what-actually-matters-now-32ac</guid>
      <description>&lt;p&gt;With the speed at which Generative AI is being used to build applications, knowing how to code isn't the complete way anymore; understanding what to code is. What is needed? Why is it needed? and more. I’ve decided to take some level of these concepts and explain them to the best of my abilities. Starting with backend development. First, let's understand authentication and authorization concepts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Authentication&lt;/strong&gt; is the process of confirming a user’s identity. Basically, it answers “Who is your user?”&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Authorization&lt;/strong&gt; is the process of confirming what a user can do. Basically, it answers “What can your user do?”&lt;/p&gt;

&lt;p&gt;In this article, I’ll write about different authentication and authorization methods, what instances they’re used in, and how they work.&lt;/p&gt;

&lt;p&gt;But first, we can’t talk about auths without mentioning passwords. Passwords are the most basic authentication method. But it is important to note, NEVER store passwords in plain text. It's the worst mistake any backend developer would make. The idea is to hash the passwords and verify the hash. There are many ways to hash a passwords, but here are 2 to avoid.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;MD5
&lt;/li&gt;
&lt;li&gt;SHA-256&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Why avoid them?&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;These general-purpose hash functions are designed to be fast, and an attacker with a modern GPU can compute millions of SHA-256 per second, making attacks computationally cheap, so when selecting hashing algorithms for passwords, they have to be &lt;strong&gt;deliberately expensive or slow&lt;/strong&gt;. The 2 widely used are &lt;strong&gt;Bcrypt&lt;/strong&gt; and &lt;strong&gt;Argon2&lt;/strong&gt;. Both are designed to be slow and computationally expensive, making it harder for attackers to decipher them through brute-force attacks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bcrypt&lt;/strong&gt; was designed in 1999; it is based on the Blowfish cipher and uses a salt to protect against rainbow table attacks. It also incorporates a cost factor that quantifies the hash's computational cost. The cost doubles with each increment, i.e., cost 10 is twice as expensive or hard as cost 9 was.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Argon2&lt;/strong&gt; was introduced in 2015 as the winner of the Password Hashing Competition. The edge it has over bcrypt is that it has resistance to side-channel attacks. You can read more on it later.&lt;/p&gt;

&lt;p&gt;We will consider the following  authentication methods:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;JWT Authentication
&lt;/li&gt;
&lt;li&gt;Session-Based Authentication
&lt;/li&gt;
&lt;li&gt;OpenID Connect Authentication
&lt;/li&gt;
&lt;li&gt;MFA (Multi-Factor Authentication)
&lt;/li&gt;
&lt;li&gt;SSO (Single Sign-On)
&lt;/li&gt;
&lt;li&gt;Passkeys / WebAuthn (FIDO2)
&lt;/li&gt;
&lt;li&gt;API keys&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And the following authorization methods:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OAuth 2.0
&lt;/li&gt;
&lt;li&gt;RBAC(Role-Based Access Control)
&lt;/li&gt;
&lt;li&gt;ABAC(Attribute-Based Access Control)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Starting with authentication,&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;JWT Authentication&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Json Web Token(JWT) is a compact, URL-safe token that encodes a set of claims (key-value pairs) and is cryptographically signed. A unique feature is that JWTs enable stateless authentication; the signature is verifiable without a database lookup. The server can validate the token with just the secret key.  &lt;/p&gt;

&lt;p&gt;A JWT has 3 Base64URL-encoded parts separated by dots: Header, Payload, and Signature.   &lt;/p&gt;

&lt;p&gt;a. Header contains the algorithm and the type e.g &lt;/p&gt;

&lt;p&gt;{ "alg": "HS256", "typ": "JWT" }&lt;/p&gt;

&lt;p&gt;b. Payload contains the encoded claims, e.g &lt;/p&gt;

&lt;p&gt;{&lt;br&gt;&lt;br&gt;
     "sub": "user_id_123",&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; "email": "mike@synoloop.com",

 "role": "admin",

 "iat": 1716000000,    // issued at (Unix timestamp)

 "exp": 1716003600     // expires at (1 hour later) 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;c. The signature is the encrypted base64url header and payload with the secret.&lt;/p&gt;

&lt;p&gt;In real-world authentication systems, JWTs are most commonly used in two forms: &lt;strong&gt;Access tokens&lt;/strong&gt; and &lt;strong&gt;refresh tokens&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Access tokens are short-lived, between 5 and 15 minutes. Refresh tokens, on the other hand, are long-lived from days to even weeks and are used to obtain new access tokens without reauthenticating (depending on the developer).&lt;/p&gt;

&lt;p&gt;But what happens if a token is stolen or a user logs out of the system? Since JWTs are stateless and valid until they expire, we need a way to &lt;em&gt;invalidate&lt;/em&gt; them before their natural expiration. This is where &lt;strong&gt;token blacklisting&lt;/strong&gt; comes in.&lt;br&gt;&lt;br&gt;
This is solved by maintaining a server-side denylist. Once any of the above events happen, the JWTID is added to the blacklist.&lt;/p&gt;

&lt;p&gt;So on logout or password change or compromise, it's best to revoke or blacklist all existing refresh tokens. This logs out the user on all sessions. On each request, the server looks up the session ID, retrieves the session data, and authenticates the user.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Session-Based Authentication&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Session-based authentication stores the auth state on the server, so when a user logs in, it creates a session record and stores it. What makes Sessions different from JWTs is that Sessions are easier to revoke immediately, but require server-side storage. JWTs are stateless but harder to invalidate before expiry.  &lt;/p&gt;

&lt;p&gt;In sessions, it's best to always regenerate the session ID after login to prevent session fixation attacks.  &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;OpenID Connect (OIDC) Authentication&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;OIDC is an identity layer built on top of OAuth 2.0(Will be discussed in authorization). OIDC answers who this user is. It adds a standardized ID token(a JWT) containing identity claims.  &lt;/p&gt;

&lt;p&gt;Think of this as when you use any web application that has a “continue with Google”; this sends your name, email, phone (and other details if requested) from Google to the web application authorized, answering who you are.  &lt;/p&gt;

&lt;p&gt;It gives the addition of what an OAuth 2.0 gives.   &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;ID Token: a JWT containing user identity (sub, email, name, picture, etc.)
&lt;/li&gt;
&lt;li&gt;UserInfo Endpoint: returns additional claims about the authenticated user
&lt;/li&gt;
&lt;li&gt;Discovery Document: /.well-known/openid-configuration for automatic configuration
&lt;/li&gt;
&lt;li&gt;Standard Claims: sub (subject/user ID), email, email_verified, name, picture&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;MFA( Multi-Factor Authentication)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Multi-factor authentication requires users to have two or more verification factors present: something they know (password), something they have (phone/hardware key), and something they are (biometric).  &lt;/p&gt;

&lt;p&gt;Multi-factor authentication includes methods like TOTP and Backup Codes.  &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;TOTP(Time-Based One-Time Passwords), generates a 6-digit code that changes every 30 seconds based on a shared secret and the current time. It works with apps like Google Authenticator, Microsoft Authenticator, and such.  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Backup Codes: These are a list of 8 to 10 single-use random codes that can be used to retrieve the account or authenticate.  &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;SSO(Single Sign-On)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Single Sign-On allows users to authenticate once and gain access to multiple systems. This is mostly used in enterprise environments or applications; the 2 main protocols are SAML 2.0 (XML-based, older) and OIDC-based SSO (modern, JSON/JWT-based).  &lt;/p&gt;

&lt;p&gt;SAML is the standard in enterprise environments (corporate identity providers like Okta and Azure). It uses XML assertions to tell the identity. The identity provider (IdP) authenticates the user and sends a signed XML assertion to the service provider (SP).  &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Service Provider (SP) is your application
&lt;/li&gt;
&lt;li&gt;Identity Provider (IdP) is Okta, Azure, Google Workspace, etc.
&lt;/li&gt;
&lt;li&gt;An assertion is a signed XML document asserting identity and attributes.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Passkeys / WebAuthn (FIDO2)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Passkeys are an advanced form of authentication: passwordless, phishing-resistant, and cryptographically strong. Based on the WebAuthn standard (W3C) and FIDO2 protocol, they use public-key cryptography with biometrics or device PINs.  &lt;/p&gt;

&lt;p&gt;Passkeys have become popular since their release in 2018. They work in 2 major steps:  &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Registration: The browser or the device generates a public/private key pair. Private key stays on the device. The public key is sent to your server.
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Authentication: Server sends a challenge. The device signs the challenge with the private key. The server verifies with the stored public key.&lt;/p&gt;

&lt;p&gt;No Password is ever transmitted or stored, and attackers can’t do anything with just the public key.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;API keys&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I chose to keep API keys under authentication, but underneath, they do both authentication and authorization; I’ll explain.&lt;br&gt;&lt;br&gt;
   API keys are Opaque tokens issued for programmatic access to services, scripts or public-facing APIs.They should be scoped, rotatable, and auditable.  &lt;/p&gt;

&lt;p&gt;API keys act like a username and password pair, but simplified. They identify the calling application or developer. For example, A weather API requires an API key to ensure only registered apps can access data.  &lt;/p&gt;

&lt;p&gt;While some APIs use keys with scoped permissions (e.g., read-only or read and write).&lt;br&gt;&lt;br&gt;
   &lt;strong&gt;Example:&lt;/strong&gt; A developer can generate API keys in a payment app and may allow one key to process transactions but another only to view reports.   &lt;/p&gt;

&lt;p&gt;Some design principles of API keys include:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Including a prefix for easy identification (e.g., sk_live_, sk_test_, syno_)
&lt;/li&gt;
&lt;li&gt;Generate with cryptographically secure randomness (at least 128 bits)
&lt;/li&gt;
&lt;li&gt;Store only the hash in your database, treat keys like passwords
&lt;/li&gt;
&lt;li&gt;Support scopes/permissions per key
&lt;/li&gt;
&lt;li&gt;Log all usage with timestamps for auditing
&lt;/li&gt;
&lt;li&gt;Support rotation: allow multiple active keys per user, then invalidate old ones&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, let's consider &lt;strong&gt;the authorization concepts&lt;/strong&gt;:&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;OAuth 2.0&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This is an authorization framework that allows a third-party application to obtain limited access to a service on a user's behalf without exposing credentials. You can think of this as “connect to GitHub” or authorizing Google Drive access via a “connect to Google.” It's about what you can access, not about who you are.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;RBAC(Role-Based Access Control)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;RBAC Controls access by assigning permissions to roles, and roles to users. This is most common in authorization models for web applications. User has a role, and the role has permissions. For example, in an e-commerce application. There are key roles like Admin, Vendor, and User. Each of these roles has different permissions. Admin can read all users and vendors, edit or verify, or ban a vendor. The vendor can upload products, the user can read and purchase products.   &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;ABAC(Attribute-Based Access Control)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;ABAC is another authorization method. It evaluates attributes of the user, the resource, the action, and the environment to make an authorization decision. For example, consider that &lt;strong&gt;a manager&lt;/strong&gt; can &lt;strong&gt;edit&lt;/strong&gt; a document &lt;strong&gt;only if they are in the same department&lt;/strong&gt; as the document's owner, &lt;strong&gt;during business hours&lt;/strong&gt;. We can see that many conditions affect the action that can be carried out by the manager.  &lt;/p&gt;

&lt;h2&gt;
  
  
  When to Use ABAC vs RBAC
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Use RBAC when access rules map cleanly to roles and don't depend on resource data
&lt;/li&gt;
&lt;li&gt;Use ABAC when you need fine-grained rules like row-level security, ownership checks, or time-based restrictions
&lt;/li&gt;
&lt;li&gt;Many systems use both: RBAC as a coarse gate, ABAC for fine-grained resource access&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the conclusion of my article. We’ve considered various authentication and authorization concepts.&lt;br&gt;&lt;br&gt;
Please show your appreciation by giving this a &lt;strong&gt;like&lt;/strong&gt;, leaving a &lt;strong&gt;comment&lt;/strong&gt; with something encouraging, or sharing something you just learned, or something I may have gotten wrong. Thanks for reading.&lt;/p&gt;

</description>
      <category>backend</category>
      <category>database</category>
      <category>writing</category>
      <category>programming</category>
    </item>
    <item>
      <title>How to make ChatGPT text sound more human without rewriting from scratch</title>
      <dc:creator>Terry Shine</dc:creator>
      <pubDate>Mon, 11 May 2026 13:17:59 +0000</pubDate>
      <link>https://dev.to/terryshine/how-to-make-chatgpt-text-sound-more-human-without-rewriting-from-scratch-3n6d</link>
      <guid>https://dev.to/terryshine/how-to-make-chatgpt-text-sound-more-human-without-rewriting-from-scratch-3n6d</guid>
      <description>&lt;p&gt;Most AI writing does not fail because the ideas are bad.&lt;/p&gt;

&lt;p&gt;It fails because the tone feels slightly off.&lt;/p&gt;

&lt;p&gt;You can usually spot the pattern fast:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;too polished&lt;/li&gt;
&lt;li&gt;too uniform&lt;/li&gt;
&lt;li&gt;too many generic transitions&lt;/li&gt;
&lt;li&gt;not enough sentence rhythm variation&lt;/li&gt;
&lt;li&gt;meaning is technically right, but it still doesn't sound like a person would send it&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is the part people mean when they say &lt;strong&gt;"this sounds AI-written"&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I change first
&lt;/h2&gt;

&lt;p&gt;When I try to make ChatGPT text sound more human, I do not start by rewriting everything.&lt;/p&gt;

&lt;p&gt;I start with four smaller fixes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Flatten obvious filler&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Phrases like “delve into,” “in today’s fast-paced world,” or “it is important to note” make text feel synthetic fast.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Restore sentence variety&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
AI often produces paragraphs where every sentence has the same length and cadence. Real writing usually has more rhythm.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Keep the original intent&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The goal is not “sound random.” The goal is “keep the meaning, lose the robotic layer.”&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Make transitions less formal&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
A lot of AI writing reads like it is trying too hard to sound complete. Human writing often sounds more direct.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Where this matters most
&lt;/h2&gt;

&lt;p&gt;I see this show up most often in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;personal statements&lt;/li&gt;
&lt;li&gt;cover letters&lt;/li&gt;
&lt;li&gt;emails&lt;/li&gt;
&lt;li&gt;essays&lt;/li&gt;
&lt;li&gt;landing page copy&lt;/li&gt;
&lt;li&gt;first drafts of blog posts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In all of those cases, the issue usually is not &lt;em&gt;content generation&lt;/em&gt;.&lt;br&gt;
It is &lt;em&gt;tone correction&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  A simpler workflow than full rewrites
&lt;/h2&gt;

&lt;p&gt;The workflow I prefer is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;generate the first draft&lt;/li&gt;
&lt;li&gt;identify the lines that feel robotic&lt;/li&gt;
&lt;li&gt;preserve the core meaning&lt;/li&gt;
&lt;li&gt;rewrite only the places where tone breaks trust&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That gets you closer to writing that still says what you want, but sounds less machine-shaped.&lt;/p&gt;

&lt;h2&gt;
  
  
  One useful tool I tested for this
&lt;/h2&gt;

&lt;p&gt;If you want a fast starting point, I’ve been using this page for the humanize step:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ai-to-human.com/ai-humanizer/humanize-ai-text?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=a2h_batch1&amp;amp;utm_content=humanize_ai_text" rel="noopener noreferrer"&gt;Humanize AI text&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The reason I like this angle is simple: it is less about “magic detection bypass” claims and more about practical editing — preserving ideas while reducing robotic phrasing.&lt;/p&gt;

&lt;h2&gt;
  
  
  The real question
&lt;/h2&gt;

&lt;p&gt;The useful question is not:&lt;br&gt;
&lt;strong&gt;“Can this beat a detector?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The useful question is:&lt;br&gt;
&lt;strong&gt;“Would I actually feel okay sending this under my own name?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That is a much better editing standard.&lt;/p&gt;

&lt;p&gt;If you work with AI drafts a lot, I’m curious what you usually fix first:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;tone?&lt;/li&gt;
&lt;li&gt;repetition?&lt;/li&gt;
&lt;li&gt;sentence rhythm?&lt;/li&gt;
&lt;li&gt;word choice?&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>writing</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I Built a Minimal Tool to Instantly Share Text Between Devices</title>
      <dc:creator>Zainudin Noori</dc:creator>
      <pubDate>Mon, 11 May 2026 12:20:03 +0000</pubDate>
      <link>https://dev.to/zainudin_noori_293f1d1c1b/i-built-a-minimal-tool-to-instantly-share-text-between-devices-1ae7</link>
      <guid>https://dev.to/zainudin_noori_293f1d1c1b/i-built-a-minimal-tool-to-instantly-share-text-between-devices-1ae7</guid>
      <description>&lt;p&gt;I recently launched a small side project called ShareText.net — a lightweight tool for instantly sharing text, notes, code snippets, documentation, or temporary messages using a simple link or QR Code.&lt;/p&gt;

&lt;p&gt;The idea came from constantly needing to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;move text between phone and laptop&lt;/li&gt;
&lt;li&gt;share quick notes instantly using&lt;/li&gt;
&lt;li&gt;send logs/errors without friction&lt;/li&gt;
&lt;li&gt;avoid bloated apps for simple text sharing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I built something intentionally simple and fast.&lt;/p&gt;

&lt;h2&gt;
  
  
  Current Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;No signup required&lt;/li&gt;
&lt;li&gt;Instant shareable links and QR Code&lt;/li&gt;
&lt;li&gt;Fast sharing workflow&lt;/li&gt;
&lt;li&gt;Password-protected shares&lt;/li&gt;
&lt;li&gt;Expiring links&lt;/li&gt;
&lt;li&gt;Lightweight comments/replies&lt;/li&gt;
&lt;li&gt;Mobile-friendly UI&lt;/li&gt;
&lt;li&gt;Clean reading experience&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why I Built It
&lt;/h2&gt;

&lt;p&gt;Sometimes you just want to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Paste text&lt;/li&gt;
&lt;li&gt;Generate link&lt;/li&gt;
&lt;li&gt;Share instantly&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No workspace setup.&lt;br&gt;&lt;br&gt;
No complicated UI.&lt;br&gt;&lt;br&gt;
No unnecessary friction.&lt;/p&gt;

&lt;h2&gt;
  
  
  Future Improvements
&lt;/h2&gt;

&lt;p&gt;A few things I’m considering next:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better long-note reading mode&lt;/li&gt;
&lt;li&gt;Temporary collaboration mode&lt;/li&gt;
&lt;li&gt;Device-to-device quick transfer&lt;/li&gt;
&lt;li&gt;Markdown enhancements&lt;/li&gt;
&lt;li&gt;Cleaner organization for frequent users&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Would genuinely love feedback from the community:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What would make this more useful?&lt;/li&gt;
&lt;li&gt;What feature would you actually use?&lt;/li&gt;
&lt;li&gt;What annoys you in existing sharing tools?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;a href="https://sharetext.net" rel="noopener noreferrer"&gt;https://sharetext.net&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuvx8ffrkhudxd8omku6f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuvx8ffrkhudxd8omku6f.png" alt="Share Text instantly" width="800" height="549"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fthwkcvg8cqhmti51nz3v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fthwkcvg8cqhmti51nz3v.png" alt="Password Protected Notes" width="800" height="581"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo1uoz8k78td728mypqhw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo1uoz8k78td728mypqhw.png" alt="Share with QR Code" width="800" height="582"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>writing</category>
      <category>documentation</category>
      <category>opensource</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
