I usually have deep hatred towards scroll-jacking but this was actually quite well done.<p>Not because of the pizzazz but because it essentially put only one thing to learn on the screen at once. It was like a "getting started" section that might be slower to go through but feels like it's faster to understand.
So, after looking over the docs, here's my comparison list between Remix (which I haven't used) and other things that I've used.<p>- Forms seem better in Remix. Remix seems focused on progressive enhancement here, rather than fetch. Imagine if Next supported POST endpoints, and the idiomatic way of making your site was to use that instead of API endpoints. I hope that we soon see a Remix-compatible form validation library (e.g. something that takes a zod schema, validates it on the server, and handles client-side validation and state tracking).<p>- The nested routes feature sounds interesting, but the docs for it are completely devoid of actual code, so I have no idea how ergonomic it will feel compared to something like Relay (requires complete buy-in to the ecosystem) or Suspense (extremely ergonomic black magic).<p>- The error boundary feature is a very nice touch. I guess it depends on their nested routes feature to function. I haven't explored React's own error boundaries, so I can't comment on how ergonomic it is to add these to other components (in Next or in Remix).<p>- I don't see anything in Remix about exporting the site statically, so it looks like you'll want to stick with Next if you are actually building a static web site.<p>- CSS modules are not supported. It appears to be possible to add support to esbuild for CSS modules via a plugin, but there's no escape hatch to be able to do this in Remix.<p>- There doesn't seem to be an easy way to create auxiliary server-side scripts in Remix. Looks like you could hack it by manually setting up a separate TypeScript build step to emit your auxiliary script, but it would be nice to see this built into Remix properly. I accomplish this in Next by using the webpack escape hatch to add a custom server-side entry point that handles my auxiliary scripts.
I wonder how Remix ranks next to Blitz.js[1] or Redwood.js[2].
They seem like they're all trying to do similar things.<p>[1] <a href="https://blitzjs.com/" rel="nofollow">https://blitzjs.com/</a>
[2] <a href="https://redwoodjs.com/" rel="nofollow">https://redwoodjs.com/</a>
I've been hearing about Remix since they were sponsorware, but I don't really get the appeal. They don't seem to show how it's different from e.g. Next.js, especially version 12 which seems to have a similar feature set of server-side plus static rendering, as well as React server components, and then a separate /api folder for any backend apis you want to set up.
So as a 56yo "old school" LAMP-stack monkey, could someone please give me a quick rundown exactly what benefits would investing the mental energy (a non-trivial amount) and time (less an issue) give to someone in my ancient yet comfortable canvas Cons?<p>For sure next.js is an interesting framework and of course I use plenty of typescript in my projects to keep the UXs from feeling stale, but I have yet to see the overwhelming benefits that going all-in with something like this framework would give me overall, besides just the obvious one that I'm "keeping up with the cool kids"...<p>One think I do really like here is the way Remix is keeping things on the backend...I'll admit coming from the 1980s I'm much more comfortable working with backend paradigms, so this particular stack has caught my attention more than others and why I am particularly interested in hearing about its direct benefits (besides the obvious ones like "its not PHP" of course)
I remember the team had the idea of charging for the software but now I am seeing that they raised VC money. There is no question that this sort of company can be big (See Vercel) but I'm wondering why this decision was made?
Haven't looked at the specifics of the actual framework (yet), I came here to say that this landing page is simply amazing. It's fun, it tells a story, it gets you engaged, and it's fast and snappy and well-designed -- a pleasure to use! Kudos to whoever did the thinking & the work!<p>EDIT: Finished scrolling to the end, and... now I feel kind of silly for having praised the landing page, because my mind is like... "c'mon, it's super simple, it's still just text (albeit well-written), with some nicely done scrolling transitions etc" -- BUT... it's still really good! Yes, the elements and effects and everything on the page is stuff we've all seen already, it's not really something new, but I feel like it's just put together super well, and it is so frickin' smooth, I didn't notice a single hitch anywhere...
Nice. Defining multiple zones, each with their data and error boundaries, at little to no cost is a nice approach.<p>Though as silly as it might sound, Remix’ publicity work has put me off it. Will read the docs anyway.
You should explain why it's better than other full-stack SSR apps. Lots of people will come to Remix already knowing about SSR, they want to know about the advantages (like idk if other apps do constrained errors, how the speed compares, how live reload works vs others, etc.)
I really wish there were frameworks that developed ways to plug in with your already favorite backend kit instead of solely isometric with Node.<p>You couldn't pay me to give up Phoenix in Elixir for backend work but it does lock off a healthy amount of the neat things being done to make data loading on the frontend more optimal. Phoenix has LiveView + AlpineJS but I really don't want to give up React which still feels more productive to me.<p>This looks neat but just like NextJS and Sapper it will not nicely play with my stack.
From their contributing page:
<a href="https://remix.run/docs/en/dev/contributing" rel="nofollow">https://remix.run/docs/en/dev/contributing</a><p>> "We need you to "sign" a contributor license agreement (CLA) first that assigns us ownership so we are able to include it in this software. We don't yet have a CLA, but we are working on it and we will be able to accept your contributions as soon as we do."<p>Apparently, requiring a CLA isn't as uncommon as I initially thought, but I'm still curious why some projects require this but others do not. What about their business model / licensing choices necessitate a CLA?<p><a href="https://en.wikipedia.org/wiki/Contributor_License_Agreement" rel="nofollow">https://en.wikipedia.org/wiki/Contributor_License_Agreement</a>
This seems interesting but the rendering bugs on the website don’t give me much confidence.<p><a href="https://ibb.co/DfNw2GV" rel="nofollow">https://ibb.co/DfNw2GV</a>
<a href="https://ibb.co/FgW3jQb" rel="nofollow">https://ibb.co/FgW3jQb</a>
The best part of this is that someone took the time to explain how remix is different and why that can be good. I wish more projects would do something like this. There are plenty of tools I never learn about because no one bothers to explain them.
I'm already so impressed by Remix after watching the demo today. Looking forward to Kent Dodd's demo tomorrow and to play around with the framework.<p>It has a great balance between client and server code. Just as React brought the mental model of writing integrated HTML/CSS/JS for an isolated component, Remix seems to bring the mental model of writing client and server code that are associated to one another together in an isolated way.<p>There's so much power this brings and the benefit is easily seen in how much less client side JS is really needed to build websites with support for lots of user interaction.<p>It's a push to go back to running code on the server that can, instead of shoveling everything into the client.<p>This is only the beginning of Remix, I'm excited to see what the team will bring.
Maybe it's just me but the code at the top of the homepage is a bit confusing at first sight. I can kinda guess the conventions that hook stuff together but I wouldn't put it as a "welcome" message without some comments at a minimum.
I have played with the generator app and some basic APIs. It seems to be a more opinionated NextJS.<p>It has a way to load data, submit forms, load styles... All good if you buy-in the philosophy of the framework, and I guess it could reduce js-fatigue.
Made me think of Ethereum's remix, an amazing IDE all-in experience to write smart contracts: <a href="https://remix.ethereum.org/" rel="nofollow">https://remix.ethereum.org/</a>
Java/React dev here. This seems great for a small app. But could someone help me understand how this would work in a large scale app? It looks like the some pieces of the JS make up the server side API of this and it runs in a V8 process. How would you deploy a production version on AWS and scale those à la ECS Fargate containers against RDS?
They lost me at:<p><pre><code> return (
<div>
{projects.map((project) => (
<Link to={project.slug}>
{project.title}
</Link>
))}
<Form method="post">
.
.
.
</div>
</code></pre>
I don't know why we need another framework that smashes together code and HTML/directive-based templates like this and, generally, keeps us bound so tightly to web idioms.<p>Would be nice to have a framework that <i>obscures these kinds</i> of "web fundamentals", so we no longer have to wrangle such low-level primitives to build complex apps.<p>EDIT: The people downvoting this are suffering from a failure of imagination. Sure, Remix may be an improvement over some current frameworks' failings, but there's no reason improvements need to be so incremental or debt-bound.
How can this be integrated with react-query and react-location?<p>Seems that it's tightly coupled to their variants (SWR and react-router).<p>React Query is IMO a must-have on any project that already warrants using React (and that isn't an offline-only app of course).
The person writing the doc seems to go out of their way to use let everywhere instead of const when appropriate. Where I work there is also a guy like that, curious is this some new "rethinking" trending opinion or what?
Looks like another contender for transitional apps[1], all for it!<p>[1] <a href="https://www.youtube.com/watch?v=860d8usGC0o" rel="nofollow">https://www.youtube.com/watch?v=860d8usGC0o</a>
Not sure the holy grail exactly, but several of these new frameworks are probably on the right track. Particularly those that prescribe workflows and coding conventions that are just intuitive and easy to be expressive, instead of big frameworks with new languages and apis to learn.<p>My theory is, you can afford one big abstraction (React) on top of platform (HTML/JS/CSS/Browser). Try to abstract beyond that, and things get unnecessary, bloated, and difficult to reason about.
The biggest complain for me about nextjs is the testing part. Did you ever tried to create a Monorepo which includes nextjs and want to run integration tests like any other react app with react-testing-library? Good luck. The integrated routing solution makes it really hard. There is a Community solution to named „next-page-tester“, but nothing official. That’s much better with gatsby and it’s built-in usage of reach-router. I hope it’s the same with remix.
One part of me likes this, it’s a framework built with many concepts I already use on my React apps on a DIY fashion. On the other hand I always have a bad feeling when there is too much magic under the hood… when magic don’t work in your favor you must turn to voodoo and that’s something I prefer to avoid in 2021.<p>Anyway I’ll give it a try on some side project, looks nice if you need something simple built fast (maybe with supabase or some of those new kids on the block)
This doesn't tell me anything at all, it looks like 100% marketing.<p>Is there a comparison between this and Next.js, Gatsby or any other framework?
I was reading through the documentation and the only thing I think is really lacking is the fact that there's no screenshots or examples of what the UI winds up looking like after the code has been written... is there any examples of what any of this looks like from the user perspective from the web browser side?
Just stop making websites (especially documentation) dark mode only, that's a pain. At least when it's the other way around you can easily use an extension to get dark mode, here you're stuck with sometimes unreadable text unless you manually tweak the CSS.
This seems like a really neat web framework but I wonder if tangling some of the model and binding logic with react components might make it more confusing to extend the web app to say a native mobile client.
If this is just Next.js with nested routes, it‘s already worth it.<p>Seems like they have a bit more going on with progressive enhancement and interaction support, but nested routes are the headline for me.
I’ve only run through it on a surface level, but isn’t it the same as what JSF did a decade ago?<p>It rarely gets any praise, but to me it was the most productive web FE framework to date.
truly something to get excited about in the frontend world. will use this to replace traditional server rendered pages from rails, django etc.
props to the authors of this fine library.
This website is impressive somehow, but also crazy to parse. Always at least two things going on at same time, the viewers' attention constantly split instead of being guided.
I know this is low-value, but it always stuns me to see basic typos on a product’s landing page (lets —> let’s). Have the creators shown it to anyone else? Has nobody close to them told them about it?<p>I don’t blame anyone for making a mistake - everyone does it, and I’m certainly no exception. But typos like this make a product feel much less professional and by extension less trustworthy. To me, good copy feels important enough to be a top priority, at least on your landing page…<p>If a friend shared their new site with me and I saw a typo like this one, I would flag it to them every time.