<?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: Daniel Moya</title>
    <description>The latest articles on DEV Community by Daniel Moya (@danimoya_espch).</description>
    <link>https://dev.to/danimoya_espch</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4188333%2Faa11043d-713c-4350-acda-95b35b4bd541.png</url>
      <title>DEV Community: Daniel Moya</title>
      <link>https://dev.to/danimoya_espch</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/danimoya_espch"/>
    <language>en</language>
    <item>
      <title>How Vim in AI-era would looks like?</title>
      <dc:creator>Daniel Moya</dc:creator>
      <pubDate>Sat, 07 Nov 2026 16:17:03 +0000</pubDate>
      <link>https://dev.to/danimoya_espch/how-vim-in-ai-era-would-looks-like-bpk</link>
      <guid>https://dev.to/danimoya_espch/how-vim-in-ai-era-would-looks-like-bpk</guid>
      <description>&lt;p&gt;I just revamped AIVim, my open-source terminal editor built with Python and Textual.&lt;/p&gt;

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

&lt;p&gt;The part I care about most isn’t generating code. It’s keeping control afterward: reviewing individual changes, rejecting them, and rolling back when needed.&lt;/p&gt;

&lt;p&gt;The GIF shows a simpler flow: write an instruction, leave a blank line, and keep typing while it becomes code. Each accepted block is one undoable edit.&lt;/p&gt;

&lt;p&gt;I use agentic tools nowadays but at work, sometimes I do small edits in scripts using small local models, and this is useful (and better when the model has high token throughput ..  and TTFT is low)&lt;/p&gt;

&lt;p&gt;Enjoy, BR,&lt;br&gt;
Daniel&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>python</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Scoring wiki pages for staleness, with reasons you can read</title>
      <dc:creator>Daniel Moya</dc:creator>
      <pubDate>Thu, 29 Oct 2026 10:34:07 +0000</pubDate>
      <link>https://dev.to/danimoya_espch/scoring-wiki-pages-for-staleness-with-reasons-you-can-read-3b26</link>
      <guid>https://dev.to/danimoya_espch/scoring-wiki-pages-for-staleness-with-reasons-you-can-read-3b26</guid>
      <description>&lt;p&gt;I'm Daniel Moya, the developer of LiveWiki.&lt;/p&gt;

&lt;p&gt;A score alone doesn't help much. "This page is 0.7 stale" tells a writer nothing. So each LiveWiki page gets an AI staleness score &lt;em&gt;with the reasons&lt;/em&gt; it may be out of date, and the reasons are what people act on.&lt;/p&gt;

&lt;p&gt;How teams use it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Sort pages by score to build a review list.&lt;/li&gt;
&lt;li&gt;Read the reasons to decide whether to update, merge or retire a page.&lt;/li&gt;
&lt;li&gt;Let AI propose the edit if you like; it stays a draft until a person approves it.&lt;/li&gt;
&lt;li&gt;Answers keep linking their source, so readers can check what they're told.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Try it: open the sample workspace at &lt;a href="https://livewiki.foor.tech" rel="noopener noreferrer"&gt;https://livewiki.foor.tech&lt;/a&gt; (no signup) and compare a page's reasons with your own judgement. The free plan covers up to 5 members.&lt;/p&gt;

&lt;p&gt;– Daniel Moya, developer&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>documentation</category>
      <category>ai</category>
      <category>knowledgemanagement</category>
    </item>
    <item>
      <title>Three ways to move a Confluence space into LiveWiki (and what I'd check first)</title>
      <dc:creator>Daniel Moya</dc:creator>
      <pubDate>Thu, 22 Oct 2026 09:37:20 +0000</pubDate>
      <link>https://dev.to/danimoya_espch/three-ways-to-move-a-confluence-space-into-livewiki-and-what-id-check-first-516g</link>
      <guid>https://dev.to/danimoya_espch/three-ways-to-move-a-confluence-space-into-livewiki-and-what-id-check-first-516g</guid>
      <description>&lt;p&gt;I'm Daniel Moya, the developer of LiveWiki. This post covers how its Confluence import works.&lt;/p&gt;

&lt;p&gt;LiveWiki accepts Confluence content three ways: an XML export, an HTML export, or directly through the Confluence Cloud API. MediaWiki sites import from their XML export.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'd check before migrating
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Start with your most-viewed pages, not the whole space.&lt;/li&gt;
&lt;li&gt;After import, look at each page's AI staleness score. It lists reasons a page may be out of date, which gives you a review list instead of a guess.&lt;/li&gt;
&lt;li&gt;Ask a few real questions. Answers come only from published pages and link their source, so a wrong answer points straight at the page to fix.&lt;/li&gt;
&lt;li&gt;Turn on the team: co-editing is real time, and AI edits stay drafts until a person approves them.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Try it:&lt;/strong&gt; open the sample workspace at &lt;a href="https://livewiki.foor.tech" rel="noopener noreferrer"&gt;https://livewiki.foor.tech&lt;/a&gt; (no signup) to see imported pages, staleness reasons and sourced answers. If it fits, the free plan covers up to 5 members, or take the 30-day trial with no card.&lt;/p&gt;

&lt;p&gt;– Daniel Moya, developer&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>documentation</category>
      <category>confluence</category>
      <category>productivity</category>
    </item>
    <item>
      <title>The 6 checks I run before sending a single cold email</title>
      <dc:creator>Daniel Moya</dc:creator>
      <pubDate>Fri, 16 Oct 2026 08:21:47 +0000</pubDate>
      <link>https://dev.to/danimoya_espch/the-6-checks-i-run-before-sending-a-single-cold-email-34fh</link>
      <guid>https://dev.to/danimoya_espch/the-6-checks-i-run-before-sending-a-single-cold-email-34fh</guid>
      <description>&lt;p&gt;You wrote the email, picked the list, and hit send. A week later the replies are near zero and you can't tell whether people ignored you or never saw it. Usually it's the second one. Here's the checklist I go through before any cold campaign:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;SPF&lt;/strong&gt;: &lt;code&gt;dig TXT yourdomain.com&lt;/code&gt; should return exactly one &lt;code&gt;v=spf1 ...&lt;/code&gt; record that includes every service sending for you, ending in &lt;code&gt;~all&lt;/code&gt; or &lt;code&gt;-all&lt;/code&gt;. Two SPF records means SPF fails.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DKIM&lt;/strong&gt;: find your provider's selector (for example &lt;code&gt;google._domainkey&lt;/code&gt;) and run &lt;code&gt;dig TXT selector._domainkey.yourdomain.com&lt;/code&gt;. No key means mail you can't prove is yours.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DMARC&lt;/strong&gt;: &lt;code&gt;dig TXT _dmarc.yourdomain.com&lt;/code&gt;. Start at &lt;code&gt;p=none; rua=mailto:...&lt;/code&gt; so you get reports, then move to &lt;code&gt;quarantine&lt;/code&gt; once things line up.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MX&lt;/strong&gt;: the sending domain needs working MX records. A domain that can't receive mail looks disposable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Spam words and formatting&lt;/strong&gt;: words like "free!!!", "guaranteed", all-caps subject lines, image-only emails and link shorteners all hurt.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Warm-up and throttling&lt;/strong&gt;: a new mailbox sending 200 emails on day one is a red flag. Ramp up slowly and spread sends through the day.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Try this today: run the three &lt;code&gt;dig&lt;/code&gt; commands above on your sending domain before your next campaign. It's a short check, and it can save the whole send.&lt;/p&gt;

&lt;p&gt;Disclosure: I'm the developer of MarkOn, an AI SDR in free private beta. It runs these SPF/DKIM/DMARC, MX, spam-word, warm-up and throttling checks for you, then writes personalised sequences without templates. If you'd rather not run dig by hand, it's a private beta: leave a comment and I'll send you an invite.&lt;/p&gt;

</description>
      <category>email</category>
      <category>deliverability</category>
      <category>dns</category>
      <category>sales</category>
    </item>
  </channel>
</rss>
