<?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>Forem: Moritz Roessler</title>
    <description>The latest articles on Forem by Moritz Roessler (@c5h8nnao4).</description>
    <link>https://forem.com/c5h8nnao4</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%2F1065120%2F9d0ddde6-ac34-4ac9-9771-b255b0e3cf6f.png</url>
      <title>Forem: Moritz Roessler</title>
      <link>https://forem.com/c5h8nnao4</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/c5h8nnao4"/>
    <language>en</language>
    <item>
      <title>Who wants to be part of an Open Source JavaScript Forum?</title>
      <dc:creator>Moritz Roessler</dc:creator>
      <pubDate>Fri, 02 Feb 2024 01:31:26 +0000</pubDate>
      <link>https://forem.com/c5h8nnao4/who-wants-to-be-part-of-an-open-source-javascript-forum-45pf</link>
      <guid>https://forem.com/c5h8nnao4/who-wants-to-be-part-of-an-open-source-javascript-forum-45pf</guid>
      <description>&lt;p&gt;Ever wanted to be part of something new? We just stumbled upon the domain &lt;a href="https://javascript.forum"&gt;https://javascript.forum&lt;/a&gt; and thought it's a perfect fit to host our new example app powered by &lt;a href="https://state-less.cloud"&gt;React Server&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;If you want to see a helpful community centered around JavaScript happen, make sure to join the forum and engage with the users :) &lt;/p&gt;

&lt;p&gt;Together we can build an awesome community with resources for beginners and a place for discussions for senior devs. &lt;/p&gt;

&lt;p&gt;Enjoy :)&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>opensource</category>
      <category>react</category>
    </item>
    <item>
      <title>React Server now has a Community 🥰</title>
      <dc:creator>Moritz Roessler</dc:creator>
      <pubDate>Thu, 01 Feb 2024 20:58:15 +0000</pubDate>
      <link>https://forem.com/c5h8nnao4/react-server-now-has-a-community-22pm</link>
      <guid>https://forem.com/c5h8nnao4/react-server-now-has-a-community-22pm</guid>
      <description>&lt;p&gt;If you haven't heard about &lt;a href="https://state-less.cloud"&gt;React Server&lt;/a&gt; yet, now is your chance to check it out and engage in it's newly founded community which can be found at &lt;a href="https://state-less.cloud/community"&gt;https://state-less.cloud/community&lt;/a&gt; 🥳&lt;/p&gt;

&lt;p&gt;To recap, React Server is a new framework which brings known principles from the frontend world to the backend side. &lt;br&gt;
To mention a few, this means you can now use TSX functional components to write backend services &lt;em&gt;reactively&lt;/em&gt; 😱&lt;/p&gt;

&lt;p&gt;This means, &lt;em&gt;states&lt;/em&gt;, &lt;em&gt;hooks&lt;/em&gt;, &lt;em&gt;effects&lt;/em&gt; and components are now in the palms of your hands when you write your backend business logic. &lt;/p&gt;

&lt;p&gt;Get used to readable and easily refactorable code. Write robust services using principles proven to be applicable to very large production codebases.&lt;/p&gt;

&lt;p&gt;The idea is to compose a collection of states into an easily consumable chunk of data paired with their &lt;em&gt;operations&lt;/em&gt; on it and send that down to the client which renders them in user facing interface. &lt;/p&gt;

&lt;p&gt;That's right, you can pass &lt;strong&gt;functions&lt;/strong&gt; created inside your serverside component from the server to the client and invoke them just like any other function. This makes interaction with the serverside state of a component in React as easy as calling a function provided by a hook. If an operation changes the serverside state of a component it's automatically reflected in your client without further ado. It's an effortless server &amp;lt;-&amp;gt; client 2 way data binding. &lt;/p&gt;

&lt;p&gt;Imagine this piece of &lt;strong&gt;serverside&lt;/strong&gt; code which represents a button that can be clicked to increase a counter.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&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;Scopes&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;clientKey&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;@state-less/react-server&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;ServerSideProps&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;./ServerSideProps&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;HelloWorldExample2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;context&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;  &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// The useState hook looks familiar?&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setState&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;count&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;scope&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Scopes&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Global&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="c1"&gt;// A simple function that can be executed from the client side.&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;increase&lt;/span&gt; &lt;span class="o"&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="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;setState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;

  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="c1"&gt;// Simply pass down props to the client side.&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;ServerSideProps&lt;/span&gt;
      &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;clientKey&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;key&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;-props`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="na"&gt;count&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="na"&gt;increase&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;increase&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is all the code it needs to run a counter service on a react server instance. &lt;/p&gt;

&lt;p&gt;As you can see a single functional component is able to perfectly represent a backend service as component, including all it's needed states and the operations which are defined to mutate that state. &lt;/p&gt;

&lt;p&gt;All the data transportation logic and realtime state updates are hidden inside the framework, so you don't need to worry about fetching data at all. Just use a &lt;code&gt;useComponent&lt;/code&gt; hook inside your frontend component and it provides you all of the props the serverside component rendered for you. &lt;/p&gt;

&lt;p&gt;Try the button at our homepage at &lt;a href="https://state-less.cloud"&gt;https://state-less.cloud&lt;/a&gt; and explore the rest of the docs. &lt;/p&gt;

&lt;p&gt;And if still need to be convice, read more about the whys &lt;a href="https://state-less.cloud/why"&gt;here&lt;/a&gt; here. &lt;/p&gt;

&lt;p&gt;Happy Coding 🤓🥰&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>typescript</category>
      <category>fullstack</category>
      <category>react</category>
    </item>
    <item>
      <title>Would anyone be interested in a simple Lists App?</title>
      <dc:creator>Moritz Roessler</dc:creator>
      <pubDate>Sun, 23 Jul 2023 17:15:52 +0000</pubDate>
      <link>https://forem.com/c5h8nnao4/would-anyone-be-interested-in-a-simple-lists-app-16d3</link>
      <guid>https://forem.com/c5h8nnao4/would-anyone-be-interested-in-a-simple-lists-app-16d3</guid>
      <description>&lt;p&gt;Hey guys, I'm looking to build a few applications around my full-stack Framework "React Server". &lt;/p&gt;

&lt;p&gt;It's a new Framework which allows you to rapidly prototype reactive full-stack applications by using TSX and hooks on the backend fostering a component driven approach (just like React on the Frontend). &lt;/p&gt;

&lt;p&gt;It's easy to use for anyone familiar with React. If you're interested about writing your own web applications which require server side state or logic, check it out at &lt;a href="https://state-less.cloud"&gt;https://state-less.cloud&lt;/a&gt;, it's fun!&lt;/p&gt;

&lt;p&gt;While thinking about ways to provide more content around React Server, a simple idea I had was a web-app for organizing lists and tasks. &lt;/p&gt;

&lt;p&gt;It's simple enough to serve as tutorial and entrypoint for beginners, yet sophisticated enough to demonstrate the capabilities of React Server. &lt;/p&gt;

&lt;p&gt;I have been using it to organize my own tasks into lists for a while now and a friend suggested gamifying the concept so you get rewarded when completing tasks. I think this is a good idea and I'm looking for other ideas because I think this could be a useful application for a lot of people.&lt;/p&gt;

&lt;p&gt;It's still in a early stage, but feel free to check out the prototype at &lt;a href="https://state-less.cloud/lists?fs"&gt;https://state-less.cloud/lists?fs&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
    </item>
    <item>
      <title>Introducing React Server: A New Way to Write Server-Side Code as TSX Components</title>
      <dc:creator>Moritz Roessler</dc:creator>
      <pubDate>Fri, 14 Apr 2023 15:20:23 +0000</pubDate>
      <link>https://forem.com/c5h8nnao4/introducing-react-server-a-new-way-to-write-server-side-code-as-tsx-components-5aif</link>
      <guid>https://forem.com/c5h8nnao4/introducing-react-server-a-new-way-to-write-server-side-code-as-tsx-components-5aif</guid>
      <description>&lt;p&gt;I'm excited to share a new open-source project I've been working on called React Server. It's a framework that allows you to write your server-side code/backend as TSX components and consume them on the frontend using GraphQL.&lt;/p&gt;

&lt;p&gt;The main goal of React Server is to provide a unified interface in the form of React components, making it easier to create a component-driven, modular architecture on the backend. This bridges the gap between server and client, making reactive and real-time server authoritative applications much more straightforward to build.&lt;/p&gt;

&lt;p&gt;Some key features of React Server include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Writing server-side code as TSX components&lt;/li&gt;
&lt;li&gt;Consuming backend components on the frontend via GraphQL&lt;/li&gt;
&lt;li&gt;React as unified interface for a component-driven architecture&lt;/li&gt;
&lt;li&gt;Simplified reactive and real-time server authoritative app development&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The project is still in its early stages (pre-alpha), and we're actively seeking feedback, ideas, and contributors. We'd love for you to check it out and let us know what you think. Any input, questions, or suggestions are more than welcome!&lt;/p&gt;

&lt;p&gt;You can find the GitHub repository here: &lt;a href="https://github.com/state-less/react-server"&gt;React Server GitHub Repo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And the documentation can be found here: &lt;a href="https://state-less.cloud/"&gt;React Server Docs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for taking the time to check out React Server, and I'm looking forward to hearing your thoughts and ideas. Happy coding!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
