Remix.run - Back to basics
Tags: react, programming, javascript, productivity
Published: 2021-12-22 20:31:52

This is my first blogpost ever, and I never actually thought I would write one. Remix.run is the root cause, because it got me so  excited that I could not resist. Let me explain!

I started programming for the web in the days of ASP (Active server pages). It was done using Visual Basic syntax so it was very basic. The form post to server and response was simple even though we didn't do the fancy Javascript stuff we are doing today. 

Netscape navigator was the ruler among browsers then.
I moved from Perl cgi to ASP to JSP and Java Servlets and then to PHP. The simple api remained, even though JQuery started to be more and more popular. I used handcrafted XMLHttpRequest then. Even before Jesse James Garrett coined the term AJAX. 

Lately I've been doing fontend with GWT and now React for the last couple of years. I love React but doing form, collecting server state and keeping state in sync on the client has been very challenging. I've used Redux, Jotai, Cerebral JS, Overmind JS (favorite) to name a few state libraries.

When I first heard of Remix.run I though "this sound interesting". I follow @ryanflorence @mjackson and @kentcdodds so the tweets kept rolling in. 

{% twitter 1340527598334398464 %}
{% twitter 1319302624450019328 %}

I bought a license when Remix.run was still a paid product and to be honest, I didn't do anything with it. It was great but I'm sorry to say I've bought to many courses/products that just collected virtual dust. 

My daughter started a hobby making clay earrings and one night I said "I can build a website for you if you like". I didn't think she would be excited but a promise is a promise. That's when I really took Remix.run for a spin.
I fell in love with Remix right away. To have the loader and action in the same file as my Component felt like doing what I did from the start but even simpler. The productivity using Remix.run is just insane.

<blockquote class="twitter-tweet"><p lang="en" dir="ltr">I have never moved this fast to prod. Mongodb, Vercel &amp; Stripe in 1.5 weeks. Remix is soo productive</p>&mdash; Mathias Nilsson (@edgesofts) <a href="https://twitter.com/edgesofts/status/1463288740353388544?ref_src=twsrc%5Etfw">November 23, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

Here are the main concepts of Remix that I just love.

 - Work with, not against, the foundations of the web: Browsers, HTTP, and HTML.
 - Everything you need in a single file with easy to read code. If a loader get's complex just put it in your own file.
 - No need to overthink over/underfetching of data. Just filter what you want to reach the client.
 - SSR out of the box
 - Deploy to whatever cloud service you like using built in adapters from Remix or roll your own.


Head over to Remix.run and get started. The docs are superclear and easy to follow. https://remix.run/docs/en/v1

Head over to Discord and get help  immediately from the very friendly community. https://discord.gg/AwHQjyVK

Looking forward to 2020 of awesome Remix apps.

Next blog post will be about how I ported a fairly large C# angularjs app to Remix!