<?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: tolongames</title>
    <description>The latest articles on DEV Community by tolongames (@tolongames).</description>
    <link>https://dev.to/tolongames</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2733163%2Fae7a2e44-5c62-48f8-9694-304bbdab5ffc.png</url>
      <title>DEV Community: tolongames</title>
      <link>https://dev.to/tolongames</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tolongames"/>
    <language>en</language>
    <item>
      <title>Scribelog — TypeScript-first logger for Node.js</title>
      <dc:creator>tolongames</dc:creator>
      <pubDate>Thu, 21 Aug 2025 09:25:13 +0000</pubDate>
      <link>https://dev.to/tolongames/scribelog-typescript-first-logger-for-nodejs-2n4m</link>
      <guid>https://dev.to/tolongames/scribelog-typescript-first-logger-for-nodejs-2n4m</guid>
      <description>&lt;p&gt;I built &lt;strong&gt;Scribelog&lt;/strong&gt; to stop wasting time wrestling with logger configs. It’s a TypeScript-first, configurable logger for Node apps with sensible defaults, useful adapters, and features you actually need in production — masking secrets, requestId propagation, batching, multiple transports, and easy child loggers. Give it a spin.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why you might care
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;TypeScript-first + great DX&lt;/strong&gt; — full types and autocompletion out of the box.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiple transports (Console, File, HTTP, WebSocket, TCP, UDP) + batching&lt;/strong&gt; — send logs where they belong and reduce I/O with AsyncBatch.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Framework adapters&lt;/strong&gt; — ready middleware/plugins for Express, Koa, Fastify, NestJS and Next.js so integration is trivial.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security &amp;amp; observability extras&lt;/strong&gt; — built-in sensitive-data masking, automatic request/trace ID propagation via AsyncLocalStorage, and optional automatic error handling.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Current release: &lt;strong&gt;v2.0.0&lt;/strong&gt; (freshly published). Weekly downloads are low right now — perfect time to try it and provide feedback.&lt;/p&gt;




&lt;h2&gt;
  
  
  Quick start (copy-paste)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm i scribelog
&lt;span class="c"&gt;# or: pnpm add scribelog&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;createLogger&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;format&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;scribelog&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;logger&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;createLogger&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;level&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;info&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;format&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;format&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;combine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="nx"&gt;format&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
    &lt;span class="nx"&gt;format&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;simple&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
  &lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;logger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;info&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Scribelog ready!&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;logger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;warn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;This is a warning&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;detail&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;cache near limit&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;(Check the README for JSON/file/http transports, batching and masking examples.) ([npm][1])&lt;/p&gt;




&lt;h2&gt;
  
  
  Integrations &amp;amp; common uses
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;code&gt;adapters.express.createMiddleware({ logger })&lt;/code&gt; to log requests with requestId and duration.&lt;/li&gt;
&lt;li&gt;Attach &lt;code&gt;AsyncBatch&lt;/code&gt; to an HTTP transport to buffer and gzip logs before sending to your collector.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;format.maskSensitive([ 'password', 'token', 'apiKey' ])&lt;/code&gt; to redact secrets before they leave your process.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  TL;DR — when to try Scribelog
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;You want &lt;strong&gt;typed&lt;/strong&gt; logging in Node + good defaults (timestamp, splat, errors).&lt;/li&gt;
&lt;li&gt;You need quick adapters for web frameworks (Express/Fastify/Nest/Next).&lt;/li&gt;
&lt;li&gt;You want built-in masking + requestId propagation without wiring AsyncLocalStorage yourself.&lt;/li&gt;
&lt;li&gt;You want a good, advanced and highly configurable logging library for Node.js&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Links / feedback
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;GitHub (docs, issues, PRs): &lt;a href="https://github.com/tolongames/scribelog" rel="noopener noreferrer"&gt;https://github.com/tolongames/scribelog&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;npm package: &lt;a href="https://www.npmjs.com/package/scribelog/" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/scribelog/&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you try it: open an issue with any rough edges, or drop a PR with an example for your framework — I’ll iterate fast. If you post this somewhere, ping me (&lt;a class="mentioned-user" href="https://dev.to/tolongames"&gt;@tolongames&lt;/a&gt;) and I’ll answer questions in the thread.&lt;/p&gt;

</description>
      <category>logging</category>
      <category>javascript</category>
      <category>typescript</category>
      <category>node</category>
    </item>
    <item>
      <title>Indie Game Dev Looking for Team Members</title>
      <dc:creator>tolongames</dc:creator>
      <pubDate>Wed, 16 Jul 2025 19:01:36 +0000</pubDate>
      <link>https://dev.to/tolongames/indie-game-dev-looking-for-team-members-20ko</link>
      <guid>https://dev.to/tolongames/indie-game-dev-looking-for-team-members-20ko</guid>
      <description>&lt;p&gt;Hello everyone!&lt;/p&gt;

&lt;p&gt;I'm an &lt;strong&gt;indie game dev&lt;/strong&gt; who is assembling a small team to begin work on a &lt;strong&gt;new 2D game&lt;/strong&gt; — and we're searching for passionate and imaginative individuals to join us from the ground up. No complete concept yet — we'd like to develop it together as a group.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 What is the project?
&lt;/h2&gt;

&lt;p&gt;Currently, we're still in the brainstorming phase and determining the precise game concept — &lt;strong&gt;you can influence it from the very beginning&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;What we do know:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We're beginning with a &lt;strong&gt;2D game&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;We'll be using &lt;strong&gt;Unity&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;We also aim to venture into &lt;strong&gt;3D games&lt;/strong&gt; in the future.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🤝 Who we're looking for
&lt;/h2&gt;

&lt;p&gt;We're not incorporating a company or making official hires. Just creating a &lt;strong&gt;friendly, collaborative team&lt;/strong&gt; to work together on something awesome. You don't have to be an expert — just come with your enthusiasm and creativity!&lt;/p&gt;

&lt;p&gt;We’d love to connect with people who are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🎨 &lt;strong&gt;2D Artists / Pixel Artists&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🔊 &lt;strong&gt;Composers / Sound Designers&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🧠 &lt;strong&gt;Game Designers / Level Designers&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;💻 &lt;strong&gt;Unity Programmers (C#)&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;👀 Or anyone excited to build a game from scratch!&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🚀 What we provide
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;An opportunity to co-create something right from scratch&lt;/li&gt;
&lt;li&gt;A relaxed and artistic atmosphere — no stress, just enthusiasm&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open communication and mutual decision-making&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In case the game goes commercial: &lt;strong&gt;equitable profit distribution to all contributors&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📬 How to join us
&lt;/h2&gt;

&lt;p&gt;Interested? Want to help shape a new game from day one? Let’s chat!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Discord:&lt;/strong&gt; &lt;code&gt;onlytolon&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Or leave a comment here on Dev.to and I'll respond&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>gamedev</category>
      <category>unity3d</category>
      <category>unity2d</category>
    </item>
  </channel>
</rss>
