<?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: Tux Not Found</title>
    <description>The latest articles on DEV Community by Tux Not Found (@tuxnotfound).</description>
    <link>https://dev.to/tuxnotfound</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%2F3809539%2F052b6aee-61f8-4b57-b836-02c12186c407.jpg</url>
      <title>DEV Community: Tux Not Found</title>
      <link>https://dev.to/tuxnotfound</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tuxnotfound"/>
    <language>en</language>
    <item>
      <title>My build-in-public tool showed I had quit. So I rebuilt it on itself.</title>
      <dc:creator>Tux Not Found</dc:creator>
      <pubDate>Wed, 07 Oct 2026 18:18:09 +0000</pubDate>
      <link>https://dev.to/tuxnotfound/my-build-in-public-tool-showed-i-had-quit-so-i-rebuilt-it-on-itself-5h5j</link>
      <guid>https://dev.to/tuxnotfound/my-build-in-public-tool-showed-i-had-quit-so-i-rebuilt-it-on-itself-5h5j</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://openstage.dev/blog/rebuilt-on-itself?ref=launch" rel="noopener noreferrer"&gt;Openstage blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Openstage turns your GitHub commits, along with notes, posts and milestones you add, into a public timeline, so people can follow what you build without assembling it from five tabs. I made it in the spring. My own timeline on it is the first thing a visitor sees.&lt;/p&gt;

&lt;p&gt;On June 20 I stopped committing. I did not decide to stop. I had a job search to run, a client winding down, and other projects pulling at me. The last commit sat on my laptop, never pushed. For 82 days my page on Openstage told anyone who looked exactly what had happened: nothing.&lt;/p&gt;

&lt;p&gt;That is the whole point of the product. It shows the work, including the absence of it. I had built a tool to prove consistency and it was proving the opposite about me, in public, at the top of my own landing page.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the page showed
&lt;/h2&gt;

&lt;p&gt;Eleven accounts, most of them friends. A "Posted" tab that had never held a post. A file for AI crawlers that cheerfully announced the eleven. A July plan to recruit thirty-six named builders by direct message that I never sent a single message from, because that's really not my style and I should have known it.&lt;/p&gt;

&lt;p&gt;Nobody had paid for Pro. Not once. I had told myself that was a reach problem. It was, but it was not only that.&lt;/p&gt;

&lt;h2&gt;
  
  
  What was broken underneath
&lt;/h2&gt;

&lt;p&gt;When I came back on September 10 I did not start with features. I started by reading my own app as if I had never seen it.&lt;/p&gt;

&lt;p&gt;Email had never worked. Not once since the app existed. The Stripe checkout sent receipts to an address I had made up. Signing in asked GitHub for read and write access to every private repo you own, and commit messages from those repos went public by default. The dashboard made 178 calls to a URL shortener on every load, with a cache key that never repeated.&lt;/p&gt;

&lt;p&gt;None of this was visible from the outside. All of it was visible from the inside, if I had looked.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I changed
&lt;/h2&gt;

&lt;p&gt;The product is smaller now and says one thing. Your GitHub commits become your proof-of-work page. It is useful with zero other users, because the page is the point, not the network.&lt;/p&gt;

&lt;p&gt;I rebuilt the weekly recap twice. The first version wrote your post for you. I ran it against three real accounts and it picked the wrong commits every time, because no program knows which of your commits mattered this week. The second version lists them and you choose. You write the sentence. It only hands you the list.&lt;/p&gt;

&lt;p&gt;Private repos are off by default now. If you turn one on, the commit messages show and the links do not. Code private, build public. Shared repos sync too, so a team shows up on the repo they share.&lt;/p&gt;

&lt;p&gt;Email works. Subscribe works. The checkout sends real receipts. There is a content security policy. The landing page sells one product instead of three.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I am running it this time
&lt;/h2&gt;

&lt;p&gt;I wrote a ten-week plan with dated gates and a verdict on November 15 that does not move. Each gate has a number it needs and what happens if it misses. I have already reversed three decisions in it, in writing: the recap that wrote for you, the recap as the reason to use the product, and hiding private repos entirely. The first gate passed four days late, with one condition scored on weaker evidence than I had planned.&lt;/p&gt;

&lt;p&gt;I post my own recap every week, and I am showing up where builders talk instead of waiting to be found.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where it stands
&lt;/h2&gt;

&lt;p&gt;Eleven accounts before the relaunch. One more since, and I have not told anyone yet. This post is me telling people. Three visitors from my first clip, no signups from it. Zero payments from anyone who is not me. The first stranger to take a hard look wrote back that the execution was strong and the audience was thin. That is the same diagnosis as my own plan.&lt;/p&gt;

&lt;p&gt;So this post is the honest version of a launch. The product works. The question I am spending the next six weeks on is whether anyone wants it. If you build in public and want one link that keeps itself up to date, here is mine, and yours can be here as well.&lt;/p&gt;

&lt;p&gt;Mine: &lt;a href="https://openstage.dev/tuxnotfound?ref=launch" rel="noopener noreferrer"&gt;openstage.dev/tuxnotfound&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Yours: &lt;a href="https://openstage.dev/your_username?ref=launch" rel="noopener noreferrer"&gt;openstage.dev/your_username&lt;/a&gt;&lt;/p&gt;




</description>
      <category>showdev</category>
      <category>buildinpublic</category>
      <category>rails</category>
      <category>sideprojects</category>
    </item>
    <item>
      <title>X Communities is shutting down May 30. Here's what I built for builders who need a permanent home.</title>
      <dc:creator>Tux Not Found</dc:creator>
      <pubDate>Wed, 20 May 2026 17:37:43 +0000</pubDate>
      <link>https://dev.to/tuxnotfound/x-communities-is-shutting-down-may-30-heres-what-i-built-for-builders-who-need-a-permanent-home-5g08</link>
      <guid>https://dev.to/tuxnotfound/x-communities-is-shutting-down-may-30-heres-what-i-built-for-builders-who-need-a-permanent-home-5g08</guid>
      <description>&lt;p&gt;X Communities shuts down May 30.&lt;/p&gt;

&lt;p&gt;If you've been using the &lt;code&gt;#buildinpublic&lt;/code&gt; community there to document your indie dev journey — that timeline is gone. The posts, the context, the progress log you've been building for months.&lt;/p&gt;

&lt;p&gt;I've been in the same boat. I build things in public and I want a record of it that doesn't disappear when a platform decides to restructure, pivot, or shut down.&lt;/p&gt;

&lt;p&gt;So I built &lt;a href="https://openstage.dev" rel="noopener noreferrer"&gt;Openstage&lt;/a&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  What it is
&lt;/h3&gt;

&lt;p&gt;A public profile page for builders. Your URL is &lt;code&gt;openstage.dev/yourusername&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Connect GitHub and your commits start flowing into your timeline automatically. Add milestones, shipped features, links, notes manually. It becomes a living record of what you built and when.&lt;/p&gt;

&lt;p&gt;Here's mine: &lt;a href="https://openstage.dev/tuxnotfound" rel="noopener noreferrer"&gt;openstage.dev/tuxnotfound&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Why it's different
&lt;/h3&gt;

&lt;p&gt;Most build-in-public tools are either:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Social feeds&lt;/strong&gt; (Twitter, IH) — ephemeral, algorithm-dependent, rented space&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Changelogs&lt;/strong&gt; (GitHub releases) — dev-facing, not built for public storytelling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Personal blogs&lt;/strong&gt; — great but manual and slow&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Openstage sits in the gap: a public-facing builder profile that maintains itself from your GitHub activity, permanent, and fully yours.&lt;/p&gt;




&lt;h3&gt;
  
  
  What's in it
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;🔗 Profile at &lt;code&gt;openstage.dev/yourusername&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;⚙️ GitHub OAuth sync — commits auto-appear on your timeline&lt;/li&gt;
&lt;li&gt;📝 Manual entries: milestones, shipped features, links, notes, releases&lt;/li&gt;
&lt;li&gt;🔥 Streaks — consecutive days with any activity&lt;/li&gt;
&lt;li&gt;📊 Analytics (Pro) — views, countries, referrers, entry clicks&lt;/li&gt;
&lt;li&gt;OG card, embed widget, GitHub README badge&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Free forever for the core profile. Pro tier is $7/month or $49 lifetime.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;If you're losing your X Communities home&lt;/strong&gt;, come claim your profile before May 30. Takes 2 minutes with GitHub OAuth.&lt;/p&gt;

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

&lt;p&gt;Drop your openstage link in the comments — I'll follow along.&lt;/p&gt;

</description>
      <category>buildinpublic</category>
      <category>devjournal</category>
      <category>showdev</category>
      <category>sideprojects</category>
    </item>
    <item>
      <title>I built a free developer conversion tools site (JSON TypeScript, YAML↔JSON, and more)</title>
      <dc:creator>Tux Not Found</dc:creator>
      <pubDate>Fri, 06 Mar 2026 09:47:05 +0000</pubDate>
      <link>https://dev.to/tuxnotfound/i-built-a-free-developer-conversion-tools-site-json-typescript-yaml-json-and-more-34im</link>
      <guid>https://dev.to/tuxnotfound/i-built-a-free-developer-conversion-tools-site-json-typescript-yaml-json-and-more-34im</guid>
      <description>&lt;p&gt;I kept finding myself with 6 different browser tabs open for the same repetitive conversions — paste JSON here, convert YAML there, decode some Base64 somewhere else.&lt;/p&gt;

&lt;p&gt;So I built &lt;a href="https://codeconvert.dev" rel="noopener noreferrer"&gt;codeconvert.dev&lt;/a&gt; to have them all in one place.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;JSON → TypeScript&lt;/strong&gt; — paste JSON, get TypeScript interfaces instantly&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JSON ↔ CSV&lt;/strong&gt; — convert between formats&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;YAML ↔ JSON&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;XML ↔ JSON&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ENV ↔ JSON&lt;/strong&gt; — .env files and JSON back and forth&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Base64&lt;/strong&gt; encode/decode&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;URL encode/decode&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Epoch ↔ Date&lt;/strong&gt; — timestamp conversions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JSON Formatter&lt;/strong&gt; — format and validate&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why I built it
&lt;/h2&gt;

&lt;p&gt;The JSON→TypeScript one is the main reason. Every time I hit a new API endpoint I'd end up writing interfaces by hand or copy-pasting into some sketchy random site. Having it clean and fast in one place saves a surprising amount of friction.&lt;/p&gt;

&lt;p&gt;Everything is free, no sign-up required.&lt;/p&gt;

&lt;p&gt;Would genuinely love feedback — what converters are you reaching for that aren't here? What would make this actually useful for your workflow?&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>typescript</category>
      <category>tools</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
