<?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: zhoudejie</title>
    <description>The latest articles on DEV Community by zhoudejie (@ssshooter).</description>
    <link>https://dev.to/ssshooter</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%2F62194%2F0848fbc0-9292-43df-85ec-ce7518ebbc35.png</url>
      <title>DEV Community: zhoudejie</title>
      <link>https://dev.to/ssshooter</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ssshooter"/>
    <language>en</language>
    <item>
      <title>Your launch listing is a backlink. Most of them are worthless.</title>
      <dc:creator>zhoudejie</dc:creator>
      <pubDate>Thu, 08 Oct 2026 03:19:07 +0000</pubDate>
      <link>https://dev.to/ssshooter/your-launch-listing-is-a-backlink-most-of-them-are-worthless-a21</link>
      <guid>https://dev.to/ssshooter/your-launch-listing-is-a-backlink-most-of-them-are-worthless-a21</guid>
      <description>&lt;p&gt;Launch your product on twenty directories and you'll collect twenty backlinks. Sounds like an SEO win.&lt;/p&gt;

&lt;p&gt;Most of them are worth nothing. Here's why, and how to check in ten seconds.&lt;/p&gt;

&lt;h2&gt;
  
  
  A backlink is a vote. Nofollow is an abstention.
&lt;/h2&gt;

&lt;p&gt;When one site links to another, search engines read it as a vote of confidence: this page is worth your attention. Enough votes, and you rank higher.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;rel="nofollow"&lt;/code&gt; makes the link say "don't count this vote." It still works for humans — people can click through — but it passes no ranking credit to your site. For SEO purposes, it's decoration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why directories love nofollow
&lt;/h2&gt;

&lt;p&gt;Directories get spammed. Thousands of submissions, plenty of them junk. So most of them do the safe thing: every outbound link on the site gets &lt;code&gt;rel="nofollow"&lt;/code&gt; automatically.&lt;/p&gt;

&lt;p&gt;The result: their "get listed, boost your SEO" pitch is empty. You get the listing, whatever traffic comes with it, and zero ranking credit. Sometimes you're paying for it — with money, or with a backlink badge on your own homepage — in exchange for a vote that was never cast.&lt;/p&gt;

&lt;p&gt;Some directories are honest about this. Many aren't. The marketing page says "dofollow backlink"; the actual listing page says &lt;code&gt;rel="nofollow"&lt;/code&gt;. Always check the page, not the pitch.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to check in ten seconds
&lt;/h2&gt;

&lt;p&gt;Open a listing page, view the page source, and search for the listed site's domain. Find the &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; tag pointing at it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;a href="https://yoursite.com" rel="nofollow"&amp;gt;&lt;/code&gt; — worthless for SEO&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;a href="https://yoursite.com"&amp;gt;&lt;/code&gt; — a real vote&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you see &lt;code&gt;nofollow&lt;/code&gt;, &lt;code&gt;sponsored&lt;/code&gt;, or &lt;code&gt;ugc&lt;/code&gt; in that rel attribute, the link passes no ranking credit. Google treats all three as "don't count this."&lt;/p&gt;

&lt;h2&gt;
  
  
  What we do instead
&lt;/h2&gt;

&lt;p&gt;Every &lt;a href="https://debutpin.com" rel="noopener noreferrer"&gt;DebutPin&lt;/a&gt; listing links out to the maker's site as a dofollow link. No &lt;code&gt;rel="nofollow"&lt;/code&gt; on the way out — view-source any product page and see for yourself.&lt;/p&gt;

&lt;p&gt;Why: it's reciprocal. Our free tier asks makers to put a dofollow link back to DebutPin on their own site. You give us ranking credit; we give it back. A one-way deal would be us taxing your SEO for nothing.&lt;/p&gt;

&lt;p&gt;One honest caveat: a backlink helps, but nobody can promise you rankings or traffic — not us, not anyone. Anyone selling a guaranteed position is selling something they can't deliver. What we can promise is simpler: the link we give you is a real vote, not an abstention.&lt;/p&gt;

&lt;h2&gt;
  
  
  The short version
&lt;/h2&gt;

&lt;p&gt;Before you submit anywhere for "SEO value":&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Check an existing listing's page source for &lt;code&gt;rel="nofollow"&lt;/code&gt; on outbound links.&lt;/li&gt;
&lt;li&gt;If it's nofollow, value the listing for traffic and community only — not SEO.&lt;/li&gt;
&lt;li&gt;Never trade a dofollow link from your own homepage for a nofollow link back. That's a bad trade.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://debutpin.com" rel="noopener noreferrer"&gt;Submit your product&lt;/a&gt;, get a real link. That's the whole pitch.&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>seo</category>
      <category>marketing</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Writing Mind Maps in Plain Text: An Introduction to the Mind Elixir Text Format</title>
      <dc:creator>zhoudejie</dc:creator>
      <pubDate>Fri, 21 Aug 2026 01:15:00 +0000</pubDate>
      <link>https://dev.to/ssshooter/writing-mind-maps-in-plain-text-an-introduction-to-the-mind-elixir-text-format-1cb8</link>
      <guid>https://dev.to/ssshooter/writing-mind-maps-in-plain-text-an-introduction-to-the-mind-elixir-text-format-1cb8</guid>
      <description>&lt;p&gt;Most mind map tools rely on a graphical interface. To draw a map, you open an app and add nodes, links, and styles one by one with the mouse. This is not convenient in every situation. When you want AI to quickly generate a map outline, or save a map as plain text in your note library, or simply jot down the tree structure of an idea, the graphical interface becomes an obstacle rather than a help.&lt;/p&gt;

&lt;p&gt;Mind Elixir offers a plain text format to solve this. A few lines of indented text describe an entire mind map, and you can import it into Mind Elixir for rendering whenever you need a visual view.&lt;/p&gt;

&lt;h2&gt;
  
  
  Basic Structure
&lt;/h2&gt;

&lt;p&gt;Here is the simplest example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Root Node
  - Child Node 1
    - Child Node 1-1
    - Child Node 1-2
  - Child Node 2
    - Child Node 2-1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The syntax matches a Markdown list. The root node starts with &lt;code&gt;-&lt;/code&gt;, and each level deeper indents by two spaces. Anyone familiar with Markdown can pick it up almost instantly.&lt;/p&gt;

&lt;p&gt;The strength of this format is its universality. Any text editor can write it, and any tool that outputs text can generate it. By contrast, proprietary formats like &lt;code&gt;.xmind&lt;/code&gt; and &lt;code&gt;.mm&lt;/code&gt; are essentially binary files that cannot be read without their specific software.&lt;/p&gt;

&lt;h2&gt;
  
  
  Node IDs: Giving Nodes a Reference
&lt;/h2&gt;

&lt;p&gt;A tree structure alone is sometimes not enough. When you need to link two nodes that are not in a parent-child relationship, you need a way to reference a specific node. Mind Elixir uses the &lt;code&gt;[^id]&lt;/code&gt; syntax to tag a node:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Root
  - Node A [^id1]
  - Node B [^id2]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The ID is written after the node text, wrapped in square brackets. The name is up to you, as long as it stays unique within the document.&lt;/p&gt;

&lt;h2&gt;
  
  
  Links: Connecting Any Two Nodes
&lt;/h2&gt;

&lt;p&gt;With IDs in place, you can draw a link between any two nodes. Mind Elixir supports both bidirectional and unidirectional links.&lt;/p&gt;

&lt;p&gt;Bidirectional link:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Root
  - Node A [^id1]
  - Node B [^id2]
  - &amp;gt; [^id1] &amp;lt;-Link Label-&amp;gt; [^id2]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It starts with &lt;code&gt;&amp;gt;&lt;/code&gt;, followed by the source node ID, then the link label, and finally the target node ID. The &lt;code&gt;&amp;lt;-&lt;/code&gt; and &lt;code&gt;-&amp;gt;&lt;/code&gt; on either side of the label indicate a bidirectional relationship.&lt;/p&gt;

&lt;p&gt;A unidirectional link replaces &lt;code&gt;&amp;lt;-&lt;/code&gt; with &lt;code&gt;&amp;gt;-&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Root
  - Node A [^id1]
  - Node B [^id2]
  - &amp;gt; [^id1] &amp;gt;-Forward Link-&amp;gt; [^id2]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The full format also supports coordinate parameters to control the curvature of the link, written as &lt;code&gt;&amp;gt; [^id1] (10,20) &amp;lt;-Label-&amp;gt; (-10,-20) [^id2]&lt;/code&gt;. You can omit the coordinates when writing by hand, and Mind Elixir will calculate a reasonable placement automatically. When a map is exported back to text, the coordinates are written out so that any link shapes adjusted manually in the interface are preserved.&lt;/p&gt;

&lt;h2&gt;
  
  
  Styling: Color and Font Size
&lt;/h2&gt;

&lt;p&gt;Nodes can carry style information using a JSON-like syntax appended after the text:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Root
  - Styled Node {"color": "#e87a90"}
  - Another Node {"color": "#3298db", "background": "#ecf0f1"}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Supported properties include &lt;code&gt;color&lt;/code&gt; (text color), &lt;code&gt;background&lt;/code&gt; (background color), and &lt;code&gt;fontSize&lt;/code&gt; (font size), all accepting either a hex color code or a numeric string. This is practical enough for marking important nodes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary Nodes
&lt;/h2&gt;

&lt;p&gt;When a group of sibling nodes needs a one-line summary, you can use a summary node that starts with &lt;code&gt;}&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Root
  - Node 1
  - Node 2
  - Node 3
  - } Summary of all above nodes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;}&lt;/code&gt; summarizes all sibling nodes before it. If you only want to summarize the last few, add a number:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Root
  - Node 1
  - Node 2
  - Node 3
  - }:2 Summary of Node 2 and Node 3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;:2&lt;/code&gt; means summarizing only the last two nodes. When organizing study notes, this syntax keeps the structure clearer without creating an extra node just for the annotation.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Complete Example
&lt;/h2&gt;

&lt;p&gt;Combining the features above, here is a practical example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Project Planning
  - Phase 1: Research [^phase1]
    - Market Analysis {"color": "#3298db"}
    - Competitor Study {"color": "#3298db"}
    - }:2 Research Summary
  - Phase 2: Development [^phase2]
    - Frontend {"color": "#2ecc71"}
    - Backend {"color": "#2ecc71"}
    - Testing {"color": "#f39c12"}
    - } Development Summary
  - Phase 3: Launch [^phase3]
    - Marketing
    - Deployment
  - &amp;gt; [^phase1] &amp;gt;-Leads to-&amp;gt; [^phase2]
  - &amp;gt; [^phase2] &amp;gt;-Leads to-&amp;gt; [^phase3]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This map contains three phases, each with color-coded subtasks and a summary for the research and development phases. The three phases are connected by unidirectional links that express their sequence. The entire structure is expressed in plain text, with no graphical interface operation required.&lt;/p&gt;

&lt;h2&gt;
  
  
  When This Format Helps
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;AI-generated map outlines.&lt;/strong&gt; Large language models produce text naturally, but asking them to generate data matching a specific JSON structure tends to introduce errors. The plain text format is simple enough that models almost never get it wrong. Give the model a format example in the prompt, and it can produce a well-structured map that you then import into Mind Elixir to view and refine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;File storage and note archiving.&lt;/strong&gt; Maps saved as &lt;code&gt;.txt&lt;/code&gt; or &lt;code&gt;.md&lt;/code&gt; files do not depend on any specific software. Even if you stop using Mind Elixir later, your notes remain readable. Compared to locking data into a cloud service's proprietary format, plain text storage is more reassuring and easier to fold into an existing note management system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cross-tool collaboration.&lt;/strong&gt; Plain text is inherently easy to diff and merge. When two people edit the same map, a version control tool shows the difference as a few lines of text rather than an entire binary file that cannot be merged. This is genuinely useful for teams maintaining a shared knowledge structure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Writing Notes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Indentation must use exactly two spaces. Do not use tabs or four spaces. The parser counts hierarchy by the number of spaces, so wrong indentation breaks the structure.&lt;/li&gt;
&lt;li&gt;When using IDs, they must stay unique within the document, or links will point to the wrong node.&lt;/li&gt;
&lt;li&gt;Link statements can appear anywhere, but placing them near the related nodes keeps the file readable and maintainable.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;The Mind Elixir plain text format is a pragmatic design. It does not try to reproduce every feature of the graphical interface in text. Instead, it focuses on the core structure of a map: nodes, hierarchy, links, styling, and summaries. These elements are expressed clearly in a few lines of text.&lt;/p&gt;

&lt;p&gt;The value of the text format lies precisely in its simplicity and universality. If you use mind maps to record and organize information but find opening an app to draw every time a bit heavy, try writing in plain text first and importing into Mind Elixir when you need a visual.&lt;/p&gt;

&lt;p&gt;For reference, here is the full syntax table:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Syntax&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Plain node&lt;/td&gt;
&lt;td&gt;&lt;code&gt;- Topic&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;- My Node&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Node with ID&lt;/td&gt;
&lt;td&gt;&lt;code&gt;- Topic [^id]&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;- Node A [^id1]&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Node with style&lt;/td&gt;
&lt;td&gt;&lt;code&gt;- Topic {"prop": "value"}&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;- Node {"color": "#ff0000"}&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bidirectional link&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;gt; [^id1] &amp;lt;-Label-&amp;gt; [^id2]&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;gt; [^a] &amp;lt;-connects-&amp;gt; [^b]&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unidirectional link&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;gt; [^id1] &amp;gt;-Label-&amp;gt; [^id2]&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;gt; [^a] &amp;gt;-leads to-&amp;gt; [^b]&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Summary (all)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;} Summary text&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;} Overview&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Summary (N nodes)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;}:N Summary text&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;}:3 Last three items&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Using It in Obsidian
&lt;/h2&gt;

&lt;p&gt;If you take notes in Obsidian, the Mind Elixir Obsidian plugin lets you write and preview mind maps directly inside your notes. Write the plain text in the format above within a Markdown file, and the plugin renders it into a visual map automatically, keeping text edits and the map view in sync.&lt;/p&gt;

&lt;p&gt;Plugin page: &lt;a href="https://app.mind-elixir.com/obsidian-mindmap" rel="noopener noreferrer"&gt;https://app.mind-elixir.com/obsidian-mindmap&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mindmap</category>
      <category>mindelixir</category>
      <category>plaintext</category>
    </item>
  </channel>
</rss>
