<?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: Eren Sümer</title>
    <description>The latest articles on DEV Community by Eren Sümer (@erenthedeveloper0).</description>
    <link>https://dev.to/erenthedeveloper0</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%2F4189472%2F3bbcd90c-23eb-497d-9b33-c981c2f3015e.png</url>
      <title>DEV Community: Eren Sümer</title>
      <link>https://dev.to/erenthedeveloper0</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/erenthedeveloper0"/>
    <language>en</language>
    <item>
      <title>I got tired of explaining what "make it look better" means to Claude, so I built Form &amp; Force</title>
      <dc:creator>Eren Sümer</dc:creator>
      <pubDate>Tue, 03 Nov 2026 19:54:20 +0000</pubDate>
      <link>https://dev.to/erenthedeveloper0/i-got-tired-of-explaining-what-make-it-look-better-means-to-claude-so-i-built-form-force-1353</link>
      <guid>https://dev.to/erenthedeveloper0/i-got-tired-of-explaining-what-make-it-look-better-means-to-claude-so-i-built-form-force-1353</guid>
      <description>&lt;p&gt;I've been using Claude Code quite heavily for frontend projects. It's genuinely impressive how much you can get done with it, but there's one particular part of the process that has always been frustrating for me.&lt;/p&gt;

&lt;p&gt;Design.&lt;/p&gt;

&lt;p&gt;Not getting a page to render. Not connecting components or setting up the application. I'm talking about the actual decisions behind a good interface.&lt;/p&gt;

&lt;p&gt;Typography, composition, visual hierarchy, interaction design, motion, little details that make a website feel considered rather than assembled.&lt;/p&gt;

&lt;p&gt;I kept running into the same situation.&lt;/p&gt;

&lt;p&gt;I'd ask Claude to build something, get a perfectly functional result, and then spend the next hour explaining why it felt generic. The usual layouts would appear, familiar gradients would show up, and animations would be added without really contributing anything to the experience.&lt;/p&gt;

&lt;p&gt;I'd ask for something more original, and get a slightly different version of the same thing.&lt;/p&gt;

&lt;p&gt;At some point I realized that I was trying to solve a workflow problem with more prompting.&lt;/p&gt;

&lt;p&gt;That's where &lt;strong&gt;Form &amp;amp; Force&lt;/strong&gt; started.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/erenthedeveloper0/form-and-force" rel="noopener noreferrer"&gt;https://github.com/erenthedeveloper0/form-and-force&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The idea behind it
&lt;/h2&gt;

&lt;p&gt;I didn't want to create another prompt collection that tells Claude to use better typography, add some interesting animations and make everything feel premium.&lt;/p&gt;

&lt;p&gt;I wanted to give it an actual process to follow.&lt;/p&gt;

&lt;p&gt;Form &amp;amp; Force is an open-source Agent Skill and Claude Code plugin focused on frontend design, creative direction and motion engineering.&lt;/p&gt;

&lt;p&gt;It covers everything from marketing websites and portfolios to SaaS applications, dashboards, e-commerce, editorial experiences and design systems.&lt;/p&gt;

&lt;p&gt;The interesting part is how it approaches the work.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Understand the project before touching it
&lt;/h2&gt;

&lt;p&gt;This is something I consider particularly important when working with existing repositories.&lt;/p&gt;

&lt;p&gt;An agent shouldn't immediately start replacing components just because it has a different idea.&lt;/p&gt;

&lt;p&gt;Form &amp;amp; Force begins by inspecting the repository, its architecture, dependencies, existing components and current implementation.&lt;/p&gt;

&lt;p&gt;It also considers the actual product, its audience and the user journeys involved.&lt;/p&gt;

&lt;p&gt;The idea is to make decisions based on what already exists rather than treating every project as a blank canvas.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Come up with an actual creative direction
&lt;/h2&gt;

&lt;p&gt;Before implementation, the skill explores three different creative directions.&lt;/p&gt;

&lt;p&gt;These aren't supposed to be three variations of the same layout with different color palettes.&lt;/p&gt;

&lt;p&gt;They should have different visual ideas, compositions and design approaches.&lt;/p&gt;

&lt;p&gt;The directions are evaluated, one is selected, and that direction becomes the basis for the design system.&lt;/p&gt;

&lt;p&gt;This includes things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Typography and type hierarchy&lt;/li&gt;
&lt;li&gt;Layout and composition&lt;/li&gt;
&lt;li&gt;Colors, materials and visual texture&lt;/li&gt;
&lt;li&gt;Component behavior&lt;/li&gt;
&lt;li&gt;Motion principles&lt;/li&gt;
&lt;li&gt;Interaction patterns&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wanted the design to have a reason behind it instead of being a collection of trendy UI decisions.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. The anti-slop component atlas
&lt;/h2&gt;

&lt;p&gt;This is one of the parts I've spent quite a bit of time on.&lt;/p&gt;

&lt;p&gt;I put together a component atlas covering &lt;strong&gt;180 components across 12 families&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It looks at common interface patterns, explains where they tend to become generic, and explores stronger alternatives when the project calls for them.&lt;/p&gt;

&lt;p&gt;Something worth mentioning: the intention isn't to ban familiar components.&lt;/p&gt;

&lt;p&gt;A navbar is still a navbar. A pricing section doesn't have to become some experimental piece of art.&lt;/p&gt;

&lt;p&gt;Sometimes the conventional solution is exactly the right one.&lt;/p&gt;

&lt;p&gt;The important distinction is whether a component is there because it serves the product or because the model has seen the same pattern thousands of times.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Motion should have a purpose
&lt;/h2&gt;

&lt;p&gt;I also wanted motion design to be treated as part of the design process, not something added at the very end.&lt;/p&gt;

&lt;p&gt;The skill includes guidance for animation identity, hierarchy, choreography and signature moments.&lt;/p&gt;

&lt;p&gt;It covers implementation approaches involving CSS, WAAPI, View Transitions, GSAP, Lenis, Motion and Three.js.&lt;/p&gt;

&lt;p&gt;That doesn't mean every project needs a cinematic preloader or a page full of scroll-triggered animations.&lt;/p&gt;

&lt;p&gt;A subtle transition can be much more effective than a complicated animation that interrupts the experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Actually inspect what was built
&lt;/h2&gt;

&lt;p&gt;I didn't want the workflow to end with Claude saying that everything looks great.&lt;/p&gt;

&lt;p&gt;There are several bundled scripts for inspecting and checking the resulting work:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;inspect_repo.mjs&lt;/code&gt; for repository inspection.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;slop_scan.mjs&lt;/code&gt; for static interface-pattern checks.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;audit_page.mjs&lt;/code&gt; for rendered browser auditing through Playwright.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;contact_sheet.mjs&lt;/code&gt; for generating visual contact sheets.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The browser audit can also cover keyboard navigation and reduced-motion behavior.&lt;/p&gt;

&lt;p&gt;There are additional references for accessibility, responsive design, performance, security and implementation.&lt;/p&gt;

&lt;p&gt;The scripts can be used independently of the skill, too.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;node skills/form-and-force/scripts/inspect_repo.mjs ./my-project

node skills/form-and-force/scripts/slop_scan.mjs ./my-project &lt;span class="nt"&gt;--strict&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The static scanner doesn't require an API key or paid model call. The rendered audit requires Playwright and Chromium.&lt;/p&gt;

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

&lt;p&gt;Form &amp;amp; Force is MIT-licensed and open source.&lt;/p&gt;

&lt;p&gt;Install it through Claude Code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude plugin marketplace add erenthedeveloper0/form-and-force

claude plugin &lt;span class="nb"&gt;install &lt;/span&gt;form-and-force@form-and-force
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once installed, you can invoke it directly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/form-and-force:form-and-force
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or simply describe the frontend work you're doing and let Claude load the skill when relevant.&lt;/p&gt;

&lt;p&gt;There's also a standalone Agent Skill package available through the Skills Registry.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Repository:&lt;/strong&gt; &lt;a href="https://github.com/erenthedeveloper0/form-and-force" rel="noopener noreferrer"&gt;https://github.com/erenthedeveloper0/form-and-force&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  A few things I'm not claiming
&lt;/h2&gt;

&lt;p&gt;I want to be honest about where the project currently stands.&lt;/p&gt;

&lt;p&gt;I haven't run the paid behavioral evaluations yet, so I don't have measured evidence that Form &amp;amp; Force produces better outcomes than Claude without the skill.&lt;/p&gt;

&lt;p&gt;The static scanners and browser audits are heuristic checks, not proof that a website is accessible or performs well in production.&lt;/p&gt;

&lt;p&gt;I think this distinction matters, especially when building tools intended to improve AI-generated work.&lt;/p&gt;

&lt;p&gt;I'd rather have people understand what the project currently does than make exaggerated claims about it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where I'd like to take it
&lt;/h2&gt;

&lt;p&gt;There's still a lot I'd like to explore.&lt;/p&gt;

&lt;p&gt;I'm particularly interested in making the evaluation of generated interfaces more reproducible. We can talk about visual quality all day, but figuring out how to evaluate it consistently is a much harder problem.&lt;/p&gt;

&lt;p&gt;I'd also like to keep improving how creative direction translates into actual implementation, especially for more unusual projects where conventional frontend patterns aren't necessarily appropriate.&lt;/p&gt;

&lt;p&gt;For now, I'd love to get more developers using it and hear what breaks, what feels unnecessary, and what could be better.&lt;/p&gt;

&lt;p&gt;If you work with Claude Code or build agent skills yourself, I'm particularly interested in your thoughts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What do you think is the biggest weakness of AI-generated frontend design right now: the creative decisions, the implementation, or the way we evaluate the final result?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

&lt;p&gt;— Eren&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>claude</category>
      <category>productivity</category>
    </item>
    <item>
      <title>I'm Building zen.js: A Compiler-First Web Framework for Node.js</title>
      <dc:creator>Eren Sümer</dc:creator>
      <pubDate>Fri, 16 Oct 2026 19:46:34 +0000</pubDate>
      <link>https://dev.to/erenthedeveloper0/im-building-zenjs-a-compiler-first-web-framework-for-nodejs-3k8i</link>
      <guid>https://dev.to/erenthedeveloper0/im-building-zenjs-a-compiler-first-web-framework-for-nodejs-3k8i</guid>
      <description>&lt;p&gt;I've been building &lt;strong&gt;zen.js&lt;/strong&gt;, an open-source, compiler-first web framework for Node.js, and I want to share the idea behind it.&lt;/p&gt;

&lt;p&gt;The question that started this project was simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What if a web framework compiled your application before the first request instead of repeatedly interpreting its structure at runtime?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not a new wrapper around an existing framework. Not another routing library with a different API. A different way to think about how a Node.js framework should work.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/erenthedeveloper0/zen" rel="noopener noreferrer"&gt;https://github.com/erenthedeveloper0/zen&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The idea behind zen.js
&lt;/h2&gt;

&lt;p&gt;Most web frameworks let you define routes, middleware, validation, and response handling through familiar abstractions. Those abstractions make applications easier to build, but they also give the framework information about your application that can potentially be resolved before requests arrive.&lt;/p&gt;

&lt;p&gt;zen.js explores what happens when we do more of that work at startup.&lt;/p&gt;

&lt;p&gt;The central idea is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A web framework is a compiler with an HTTP server attached.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In zen.js, application registration acts as the input. At startup, the framework builds a frozen application graph and compiles route-specific request pipelines from it.&lt;/p&gt;

&lt;p&gt;Conceptually, a request follows this path:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Route → Parameters → Middleware → Validation → Handler → Serialization → Response&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The important distinction is that the framework doesn't need to repeatedly interpret the same higher-level application structure to execute that path.&lt;/p&gt;

&lt;p&gt;Stages a route doesn't use can be absent from the generated code rather than sitting in a pipeline waiting to be skipped.&lt;/p&gt;

&lt;p&gt;This isn't a native-code compiler. It's about compiling framework metadata into the JavaScript that executes your application's request path.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does it look like to use?
&lt;/h2&gt;

&lt;p&gt;I wanted the basic API to feel familiar rather than forcing developers to learn an entirely new way of building servers.&lt;/p&gt;

&lt;p&gt;Here's a minimal example:&lt;br&gt;
&lt;/p&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;zen&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="s2"&gt;@erenthedeveloper0/zen&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;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;zen&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/&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="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hello world&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Install the current alpha:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; @erenthedeveloper0/zen@alpha
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Two basic concepts get you started: register a handler with &lt;code&gt;app.METHOD(path, handler)&lt;/code&gt;, and return the response from that handler.&lt;/p&gt;

&lt;p&gt;The interesting part isn't the number of lines in this example. It's what happens to the application definition after registration.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Compile the request path, not just the route table
&lt;/h2&gt;

&lt;p&gt;Routing is only one part of a request.&lt;/p&gt;

&lt;p&gt;Middleware ordering, validation, hooks, response serialization, and the request context all affect execution. zen.js attempts to resolve as much of that structure as possible during startup.&lt;/p&gt;

&lt;p&gt;That also opens the door to better diagnostics.&lt;/p&gt;

&lt;p&gt;For example, conflicting or ambiguous routes can be rejected at boot instead of letting registration order silently determine which route wins. The framework can explain a resolved route's execution chain, and its request-inspection tools can show which steps ran and how they behaved.&lt;/p&gt;

&lt;p&gt;The generated code is inspectable, too. I want the architecture to be something developers can examine and challenge, not a black box hidden behind a performance claim.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Let schemas define the contract
&lt;/h2&gt;

&lt;p&gt;The second major idea is that a schema should be more than a validation step.&lt;/p&gt;

&lt;p&gt;In zen.js, the same contract can drive:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Input validation and handler types.&lt;/li&gt;
&lt;li&gt;Response serialization and filtering.&lt;/li&gt;
&lt;li&gt;OpenAPI document generation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, when a route declares a response schema, the generated serializer can exclude fields that aren't part of that schema.&lt;/p&gt;

&lt;p&gt;That matters for more than performance. An application might return a database record containing internal fields that should never reach a client. The response contract should define what's allowed on the wire.&lt;/p&gt;

&lt;p&gt;The goal is to keep the implementation, type system, serialized response, and API documentation aligned instead of maintaining several separate versions of the same contract.&lt;/p&gt;

&lt;p&gt;zen.js supports the Standard Schema ecosystem, so libraries such as Zod, Valibot, and ArkType can be used without framework-specific adapters.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Make correctness visible
&lt;/h2&gt;

&lt;p&gt;Performance is one motivation, but I don't want the project to be only about throughput.&lt;/p&gt;

&lt;p&gt;I'm also interested in making framework behavior easier to understand and verify.&lt;/p&gt;

&lt;p&gt;Some examples of what's implemented today include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Boot-time route conflict analysis with detailed diagnostics.&lt;/li&gt;
&lt;li&gt;Compiled middleware and lifecycle hooks.&lt;/li&gt;
&lt;li&gt;Schema-driven response serialization.&lt;/li&gt;
&lt;li&gt;OpenAPI 3.1 generation from the application graph.&lt;/li&gt;
&lt;li&gt;Request deadlines, health checks, and readiness handling.&lt;/li&gt;
&lt;li&gt;Request-inspection tools and application graph fingerprints.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These features are part of a broader attempt to make framework behavior explicit, inspectable, and testable.&lt;/p&gt;

&lt;p&gt;The architecture is ambitious, and having a detailed architecture document doesn't mean every planned subsystem is already implemented. I'm trying to keep that distinction clear as the project evolves.&lt;/p&gt;

&lt;h2&gt;
  
  
  What about performance?
&lt;/h2&gt;

&lt;p&gt;I don't want to claim that zen.js is the fastest Node.js framework.&lt;/p&gt;

&lt;p&gt;The repository includes benchmarks comparing workloads against other frameworks and Node's HTTP server, along with the measurement methodology and limitations. The results vary by workload, and the project still has room to improve.&lt;/p&gt;

&lt;p&gt;The point of the compiler-first approach is to make runtime work more deliberate. Benchmarks are one way to evaluate whether that design delivers practical benefits; they aren't a substitute for understanding the trade-offs.&lt;/p&gt;

&lt;p&gt;I'd rather publish measurements that can be reproduced and criticized than lead with a headline number that hides the details.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the project stands
&lt;/h2&gt;

&lt;p&gt;zen.js is currently at &lt;strong&gt;&lt;code&gt;0.2.0-alpha&lt;/code&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The current implementation is a working vertical slice, but the project is not production-ready. The API can change before 1.0, and some parts of the broader architecture are still unimplemented.&lt;/p&gt;

&lt;p&gt;It currently targets Node.js 22.6 or newer, with TypeScript 5.0 or newer when using TypeScript. The core package has zero runtime dependencies.&lt;/p&gt;

&lt;p&gt;I'm sharing it at this stage because architecture is easier to challenge while a project is still evolving than after its decisions have become difficult to change.&lt;/p&gt;

&lt;h2&gt;
  
  
  I'd genuinely appreciate your feedback
&lt;/h2&gt;

&lt;p&gt;I'm particularly interested in hearing from developers who have worked on Node.js frameworks, routers, compilers, TypeScript-heavy backends, or API tooling.&lt;/p&gt;

&lt;p&gt;A few things I'd like to understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is compiling the application graph at startup a useful architectural direction, or am I moving complexity from runtime into boot?&lt;/li&gt;
&lt;li&gt;Which framework abstractions do you think can be eliminated or simplified through compilation?&lt;/li&gt;
&lt;li&gt;Where would you expect this design to become difficult to maintain?&lt;/li&gt;
&lt;li&gt;What benchmarks, edge cases, or real-world workloads should I investigate next?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You don't need to adopt zen.js or agree with the approach. A thoughtful architectural criticism is just as useful as a feature request.&lt;/p&gt;

&lt;h3&gt;
  
  
  Explore zen.js
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/erenthedeveloper0/zen" rel="noopener noreferrer"&gt;https://github.com/erenthedeveloper0/zen&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Architecture:&lt;/strong&gt; &lt;a href="https://github.com/erenthedeveloper0/zen/blob/main/ARCHITECTURE.md" rel="noopener noreferrer"&gt;https://github.com/erenthedeveloper0/zen/blob/main/ARCHITECTURE.md&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benchmarks:&lt;/strong&gt; &lt;a href="https://github.com/erenthedeveloper0/zen/tree/main/benchmarks" rel="noopener noreferrer"&gt;https://github.com/erenthedeveloper0/zen/tree/main/benchmarks&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Changelog:&lt;/strong&gt; &lt;a href="https://github.com/erenthedeveloper0/zen/blob/main/CHANGELOG.md" rel="noopener noreferrer"&gt;https://github.com/erenthedeveloper0/zen/blob/main/CHANGELOG.md&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If the idea interests you, I'd appreciate a look at the code, an issue describing a potential weakness, or a discussion about the architecture.&lt;/p&gt;

&lt;p&gt;I'm building zen.js in the open, and feedback from people who understand these systems can help me make better decisions before the project reaches 1.0.&lt;/p&gt;

</description>
      <category>node</category>
      <category>typescript</category>
      <category>opensource</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
