57 ms·
Remix – A framework focused on web fundamentals and modern UX
- gmaster1440 5y agoLooks like another contender for transitional apps[1], all for it! [1] https://www.youtube.com/watch?v=860d8usGC0o https://www.youtube.com/watch?v=860d8usGC0o
- thewarrior 5y agoThis 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.
- danr4 5y agoI usually have deep hatred towards scroll-jacking but this was actually quite well done. 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.
- folkrav 5y agoI suspect the reason it's not as daunting as it usually can be is cause it doesn't feel like it's scroll-jacking you, in a sense. When you're scrolling, it still feels like you're going "downwards". You stop scrolling, animation stops in its tracks pretty quickly.
- bryans 5y agoI disagree wholeheartedly. This site breaks every UI/UX rule in the book, and in the worst ways. Instead of just letting people read the information at their own pace, they've decided to limit the information to one partial sentence at a time, and more than half of those sentences are just irrelevant jokes. Possibly even worse is the lack of snapping to the sentence, which means the user has to guess how far they need to scroll to fit the text in the available space. The text is even so large that some sentences don't fit in that space. It becomes a seemingly endless loop of reading 6 words, scrolling, reading 8 words, scrolling too far and then scrolling up, reading a 5 word joke, scrolling not far enough, etc. In fact, it's 39 mouse wheel scrolls to get to the bottom of the page, all to read one paragraph of actual information -- and that information is mostly a bunch of boisterous posturing, in order to make a pitch that amounts to a couple of prescribed patterns.
- mirzap 5y agoWell, on a first page without any scroll you have action buttons which leads you to the pages where you can read at your own pace. For people who don't want that they've put small bits of information on each scroll. Every information is carefully chosen, so you keep scrolling and reading. After that you go to the doc to read more. I've never seen better UI/UX that hook me in so quickly. If it was just regular page I would think "ah, just another framework" and close the tab. This is is how UI/UX should be done. Bravo!
- bryans 5y ago> Well, on a first page without any scroll you have action buttons which leads you to the pages where you can read at your own pace. For people who don't want that they've put small bits of information on each scroll. You're reversing the series of events. A user visiting a page (especially a homepage) expects it to offer relevant information in an easily consumable way. It is impossible for a user to automagically intuit that they can get more easily consumable information on a separate page, just because a link to that page exists. So, what you're suggesting is that it's good UX to make the homepage so annoying that multiple pages are required to provide the same information. That's called an anti-pattern, and really makes that nearly 1MB page load (and 80kB loading gif) a complete waste of time and electricity. Even worse is that the feature information doesn't actually exist outside of the homepage, so you're making an incorrect assertion that people who don't want to scroll can instead just click a button. > Every information is carefully chosen, so you keep scrolling and reading. After that you go to the doc to read more. In this case especially, the information is the exact opposite of carefully chosen. It is chock full of jokes and irrelevant "aren't we cool" posturing, which comes across as pure "tech bro" and does a terrible job of convincing someone why they should use and trust this framework as a foundation for their product. > I've never seen better UI/UX that hook me in so quickly. If it was just regular page I would think "ah, just another framework" and close the tab. A bizarre statement. You're admitting to be willingly manipulated by style over substance, and that you have a premeditation for not actually reading a site's content unless they've met some arbitrary level of flashiness. If a project manager asked you to research frameworks, and your response was to supply them with a list of homepages that you thought "looked the coolest," you'd be fired on the spot.
- nolok 5y agoMore importantly for me, it doesn't screw with me if I don't want to do it at their rythm and scroll fast anyway. So many site with their accelerate / decelerate / transitions end up being horrible to use if you're a quick reader, theirs doesn't. I don't quite like the low information density it uses, but at least it doesn't take away my control. I prefer that a site doesn't do it at all, but if they do they should at least do it this way !
- empyrical 5y agoI love the little part with the fake Windows BSOD. The QR code is supposed to link to the documentation page on error boundaries, but sadly it's broken
- Raed667 5y agoI have played with the generator app and some basic APIs. It seems to be a more opinionated NextJS. 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.
- deleted 5y ago[deleted]
- haolez 5y agoOff topic: this is the best landing page I've ever seen on a mobile device. Keep scrolling down for some surprises!
- diordiderot 5y agoReally incredible experience.
- archeroe 5y agoYou can't even guess there is something below those 2 buttons.
- azangru 5y agoWhich device did you view it on? I tried to view it in mobile Chrome on a Samsung Galaxy S7, and apart from the page not fitting the screen, there were quite a few visual bugs. If I hadn't viewed this page on a laptop before, I would have been discouraged.
- haolez 5y agoAndroid Chrome on Galaxy Note 10+.
- foogazi 5y agoAmazing on the iphone - it felt that the scroll effects fit the content really well
- elwell 5y agoYou got me to keep trying to scroll at the bottom of the page like an idiot hoping for easter eggs.
- haolez 5y agoI thought the part with the loading icons and clap emojis surprising. Sorry about that :)
- cercatrova 5y agoI'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.
- Bilal_io 5y agoThey just did (maybe still going) Q&A session where they did a demo and answered question. Remix seems to be more like PHP or Ruby On Rails, it handles both server side functionality (calls to db, third-party APIs...) as well as the frontend code in a single file.
- cercatrova 5y agoNext.js has an /api folder that does that, is it similar?
- Bilal_io 5y agoTake what I say with a grain of salt since I haven't used either. The API folder in Next.js simply exposes API routes that you can use in the frontend code of your Next.js app, or not use it if you don't want to. Remix does support this behavior, but it also supports exporting a data loader function and/or an action function for forms that can only consumed by by the page you're working on. All of that runs on the backend. Again, very similar to how things are done in PHP where data is loaded from a DB and then consumed all within the same file.
- mcintyre1994 5y agoTheir form demo is definitely worth checking out. You could build the same thing with a Next API route. You’d need to write some code to do the validation that they do, but it should largely look something like their hook does. Hopefully Next will build something like it because this is a much more sane way to write forms than the controlled inputs and state way. I do think it’s nice having it in the same file as the form itself, but it’s not clear how well that’ll scale in a more complex page with many forms. So I think Next could get most of the way there with a few helpers to make a form submit to an API route with similar DX.
- riidom 5y agoThis 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.
- Touche 5y agoI would have made this be /about or something like that and had the landing page be something more traditional. I don't think repeat visitors are going to want to scroll through a presentation like that all of the time. But that could be what they ultimately do, I wouldn't be surprised if they moved it.
- bee_rider 5y agoAlso it does that thing where it hijacks scrolling and uses your scrolls to control an animation speed. Which probably felt really clever to invent, but it is just super annoying and distracting. Like who are the people scrolling back up to replay bits of these silly little animations? What is the point? I think they put them in there as little speedbumps to catch the attention of people who are flicking boredly through the site on a tablet or phone or whatever. They should be more confident in their ability to keep their users' attention.
- ASalazarMX 5y ago> Like who are the people scrolling back up to replay bits of these silly little animations? There are people like that. I did it a couple of times. I'm more annoyed when the scroll is hijacked but it won't let you replay an animation.
- yepguy 5y agoYep. Some of us still use the PgUp/PgDn keys, even! I don't ever remember encountering a scrolling animation that handled them sensibly.
- cercatrova 5y agoI like it, looks nice. I know Apple does it as well and it's always impressive to me when they launch a new product and make a new webpage for it. That being said, those are just marketing pages, for critical behavior like buying a new product, those are all static pages with no animation.
- aarpmcgee 5y agoI wonder how Remix ranks next to Blitz.js[1] or Redwood.js[2]. They seem like they're all trying to do similar things. [1] https://blitzjs.com/ https://blitzjs.com/ [2] https://redwoodjs.com/ https://redwoodjs.com/
- jtsiskin 5y agoThat's what I'm most interested in. What's the difference between remix and blitz.js? I can't find a detailed comparison anywhere
- acemarke 5y agoThe one-line answer would be: Blitz is an additional abstraction layer on top of Next.js that offers a Rails-style set of conveniences like feature generation, plus a "compile-away" RPC abstraction that hides all data fetching. Remix is a from-scratch framework built around React Router that tries to adopt existing web APIs to minimize the amount of data-related code being written in the first place.
- flybayer 5y agoYes, definitely different takes on the same problem! We could make a comprehensive list of all the differences, but the end result is that you can use all three (four if you include Next.js) to build any web app imaginable. At the end of the day, you must try them each for yourself and find which one resonates most with you and your team.
- ezfe 5y agoSeems like Svelte Kit too
- kall 5y agoIf this is just Next.js with nested routes, it‘s already worth it. Seems like they have a bit more going on with progressive enhancement and interaction support, but nested routes are the headline for me.
- timdorr 5y agoI like to think of like this: I use Next.js for my marketing site. I use Remix for my web app. Next is good if you just need to get some HTML on the page. Remix is good if you need a connect to a database or backend API.
- kall 5y agoWe can call it the Gatsby-Next-Remix continuum.
- HigoChumbo 5y agoCould you elaborate? Any reason why Next.js is worse/not suited for web apps connected to databases and backend APIs?
- magicink81 5y agoI'm curious what do you think is missing from Next.js that would make it better at connecting to databases and backend APIs? There is a bit of evidence that people are building heavily used web apps with Next.js that connect to databases, backend APIs, and expose APIs of their own, for example: https://nextjs.org/showcase https://nextjs.org/showcase
- andrewingram 5y agoYeah, other than the nested route thing, there doesn’t seem to be that much difference between Next and Remix when it comes to talking to a database.
- magicink81 5y agoNext.js has had nested routes since version 6. Not sure I see the difference in what Remix is offering? https://nextjs.org/docs/routing/introduction#nested-routes https://nextjs.org/docs/routing/introduction#nested-routes
- gherkinnn 5y agoNice. Defining multiple zones, each with their data and error boundaries, at little to no cost is a nice approach. Though as silly as it might sound, Remix’ publicity work has put me off it. Will read the docs anyway.
- bern4444 5y agoI'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. 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. 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. It's a push to go back to running code on the server that can, instead of shoveling everything into the client. This is only the beginning of Remix, I'm excited to see what the team will bring.
- ianbutler 5y agoI really wish there were frameworks that developed ways to plug in with your already favorite backend kit instead of solely isometric with Node. 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. This looks neat but just like NextJS and Sapper it will not nicely play with my stack.
- mrkurt 5y agoWe've done some "fat app servers" that consume GraphQL APIs. You could build a Phoenix + Absinthe app, then consume it from something like Remix. The real problem is switching languages. I sure get slow when I change from Elixir to JavaScript. There's not a bright line between backend/frontend in a fullstack app, so I've been much happier minimizing how often I have to switch languages.
- nelsonic 5y agoWe're in the same boat. Wouldn't give up Phoenix on the backend for anything. We are gradually adopting LiveView with great support for components. Have you tried it? Agree Remix looks good though!
- colinclerk 5y agoThere's no strong requirement to use Node for your backend...your Remix codebase can fetch() data from anywhere in the `loader` function: https://remix.run/docs/en/v1/guides/api-routes#api-routes https://remix.run/docs/en/v1/guides/api-routes#api-routes
- chana_masala 5y agoI see no mention of Typescript support. Anyone know?
- bern4444 5y agoIt supports typescript completely
- danr4 5y agoseems like the code in the docs [0] is typescript [0] https://remix.run/docs/en/v1/tutorials/blog https://remix.run/docs/en/v1/tutorials/blog
- mcintyre1994 5y agoThe create npx command has a typescript option, the entire framework seems to be typed nicely, the demo was all typescript. I’d be surprised if they didn’t write the whole thing in it.
- ChrisArchitect 5y agoSomething new here? Because this is not new and gets posted semi-regularly every few months for a few years
- ChrisArchitect 5y agoPerhaps it was the v1 announcement that got it across your radar posted a few hours ago: https://news.ycombinator.com/item?id=29312063 https://news.ycombinator.com/item?id=29312063
- baxuz 5y agoHow can this be integrated with react-query and react-location? Seems that it's tightly coupled to their variants (SWR and react-router). 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).
- bern4444 5y agoI think the goal here is to avoid needing something like react query. The loader functions you write execute on the server and pull data that is needed by the component. You can of course still use react query/swr/redux tool kit etc if you want. Remix doesn't limit what you can do and still fully supports any of these and other client side tools. Remix just encourages to make better use of server side code instead of shoveling everything into the client.
- dimitrisnl 5y agoOff-topic, but I disagree about React-query being a must-have. Putting the fetching responsibility into the components makes a lot of sense in a some projects, but not always. There have been many times where I wish I just went with RxJS to orchestrate the data flow instead.
- tambourine_man 5y agoThis seems interesting but the rendering bugs on the website don’t give me much confidence. https://ibb.co/DfNw2GV https://ibb.co/DfNw2GV https://ibb.co/FgW3jQb https://ibb.co/FgW3jQb
- Epskampie 5y agoAlso the docs don’t have scroll restoration when you use the browser back button. You’d think a framework that prides itself on using the web platform would have that working automatically.
- still_grokking 5y agoLike it works when nobody broke scrolling through custom JS.
- baby 5y agoMade me think of Ethereum's remix, an amazing IDE all-in experience to write smart contracts: https://remix.ethereum.org/ https://remix.ethereum.org/
- npilk 5y agoI 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? 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… 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.
- chipotle_coyote 5y agoYou're not the only one who has that kind of reaction. Proofread copy should be important everywhere, not just on the landing page, but this is literally in the first sentence after the initial headline.
- kreeben 5y agoSure but on the other hand you have copy that has gone through five levels of managers OK-stamping it but only after fixing the errors and sanding down all sharp edges, your text churned into corporate yogurt that no one in their right mind would ever believe because it resembles FAANG speak too much. I kind of like the odd error here and there. Makes me feel safe to at least try out their product.
- BigJono 5y agoIs that not what's happened to this site anyway? Looks an awful lot like corporate yogurt to me.
- develatio 5y agoWhile I do agree a typo in the very first sentence is not the perfect way to start, there’s still the fact that English is not everybody’s native language and this sort of typos can be very hard to spot for non-english natives. Not an excuse for having typos in the product’s website, but a very common explanation for it.
- deleted 5y ago[deleted]
- Guillaume86 5y agoMaybe 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.
- 01acheru 5y agoOne 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. 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)
- cubano 5y agoSo 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? 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"... 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)
- deleted 5y ago[deleted]
- colinclerk 5y agoI think this new wave of server-enabled React is enabling codebases that are better organized than old MVC stacks. The MVC way was: 1. Look at the route 2. Recognize that this route has, e.g. A Header, A Sidebar, and Content 3. Load the data for the Header, Sidebar, and Content 4. Pass the data to the templating engine 5. Use the templating engine to render the route, which likely fans the data for the Header, Sidebar, and Content into individual template files. Remix highlights that Header, Sidebar, and Content are three separate components. Instead of loading the data all at once (#2 above) and then rendering all at once (#5 above), it allows you to load and render each component individually.
- bpicolo 5y agoThis is what Facebook's Bigpipe was doing in 2010. https://engineering.fb.com/2010/06/04/web/bigpipe-pipelining-web-pages-for-high-performance/ https://engineering.fb.com/2010/06/04/web/bigpipe-pipelining...
- deleted 5y ago[deleted]
- cout 5y agoThe 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.
- armchairhacker 5y agoYou 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.)
- unclebucknasty 5y agoThey lost me at: return ( <div> {projects.map((project) => ( <Link to={project.slug}> {project.title} </Link> ))} <Form method="post"> . . . </div> 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. Would be nice to have a framework that obscures these kinds of "web fundamentals", so we no longer have to wrangle such low-level primitives to build complex apps. 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.
- newsbinator 5y agoI don't mind vouching for this comment because it does further the discussion. It's a lot more interesting that the "let's should be lets" comments.
- unclebucknasty 5y agoHey, I appreciate that. I noticed in another of your comments you mentioned it seemed similar to Nuxt.js and you were digging in further to look for differentiation. That's kind of what I'm getting at here: things in this space are moving needlessly incrementally at this point, creating so many permutations on largely the same underlying themes and staying pinned to original Web semantics. Why do we accept HTML as an app UI "language"? Is that what we would choose if spec'ing for that use case today? So, why do we introduce all of these new layers, complete with webpacking, transpiling, etc. only to continue surfacing such ill-suited low-level constructs in our code? That's not to say the Remix team aren't good people or haven't made real improvements here. Reading further, I see where they're creating value, and the testimonials seem to be inspired. So, it seems successful for what it is, but that's all relative. What I'm suggesting is that it's time for a paradigm shift in Web development. Would really be interested to see what that same team could have created had they broken out of the React/SSR/etc. box.
- 5y ago
- deleted 5y ago[deleted]
- kyawzazaw 5y agoThe text are overlapping at a bigger text size.
- deleted 5y ago[deleted]
- brundolf 5y agoWhat's the rundown on how this compares to the obvious competitors (Next, etc)?
- abraxas 5y agoSo this is Vaadin but in JavaScript and therefore cool?
- dpweb 5y agoNot 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. 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.
- den1k 5y agothe example boosts with a technology that requires making 4 requests to show the UI?
- mclightning 5y agoif you think that's a lot, you haven't checked your network tab for any considerable production site lately.
- jacobsenscott 5y agoSo the web dev madness has come full circle - the react people just built rails in react. In the mean time I just keep using rails...
- midrus 5y agoNot full circle...this is more like an 8 shaped thing, and with this we're right at the wrong extreme right now in my opinion.
- magicink81 5y agoMore than madness, this seems like evolution, learning, and standing on the shoulders of giants.
- aniforprez 5y agoAlso as much as rails seems so popular, I REALLY don't like rails so this seems to take what's good about it and removes some of the nonsensical opinionated crap. I'm not too much of a fan of node either but it's easier to work with IMO
- diordiderot 5y agoIf you're not picking registers for your instructions are you really programming /s
- earleybird 5y agoThis evoked a long ago memory of writing programs on a PDP-8/i in jr high (aka middle school) - and while the PDP-8 only had an accumulator (registers, plural - luxury :-) ), you did have to worry about fitting you code & data in 12 bit pages. Genuine thanks for that memory.
- proxyon 5y agoIt's hilarious isn't it. That being said, as we all know cobbling Rails + Angular or Rails + Whatever other client side library was always a hack that just used Rails as a JSON REST pump. At that point why not just use Node/Express? And so we come full circle.
- kgraves 5y agoThis doesn't tell me anything at all, it looks like 100% marketing. Is there a comparison between this and Next.js, Gatsby or any other framework?
- lawwantsin17 5y agoExactly. They basically admit to being slower than static and try to call that clunky when really, Gatsby just takes forever to build.
- newsbinator 5y agoSo far it's hard for me to differentiate this from Nuxt.js (Vue-based server-side rendered + client side rendered version of Next.js). I'm digging into the demo vid to look for the selling points of this over Nuxt.
- rackjack 5y agoI like this website. It's one of the few I've seen do "scroll = animation" well.
- blueprint 5y ago"let's" should be "lets"
- msoad 5y agoI 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?
- PKop 5y agobecause this sort of company can be big
- e1g 5y agoRemix, like other such attempts, will need to get into the hosting business. Give out a good framework to ensure lock-in, then sell the infrastructure/runtime to deliver the app built on your framework. Then sell add-ons like $5/mo for authentication, $10/mo for I18N, etc.
- PKop 5y agoYes this is what they discussed in their live stream this week. The blueprint is clear, execution is no guarantee, but seems like a no-brainer if they want to work on this full time and really want it to be a widely used javascript framework, and if someone is going to give them money to try. Personally I think it brings a lot to the table and I loved the programming model (SSR, loading data on server, common platform primitives etc) compared to Next.js prioritizing SSG. I think they have a good team and a good shot at gaining market share.
- e1g 5y agoThe execution challenge for Remix is how to navigate the tension where FOSS and commercial forces pull them in opposite directions. So far, they've been stressing "interoperability", "no lock-in", "run it anywhere", etc. To live up to this goal, they'll need to maximize how portable Remix is, which will minimize the value of their specialized runtime service. Meanwhile, players like Vercel always positioned their products+services as a natural pairing, where the best stuff is inside the walled garden.
- jijji 5y agoI 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?
- dcre 5y agoIt's not a UI library, so it has no more opinion about what UIs look like than React itself does. You can make it look however you want.
- doesnotexist 5y agoFrom their contributing page: https://remix.run/docs/en/dev/contributing https://remix.run/docs/en/dev/contributing > "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." 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? https://en.wikipedia.org/wiki/Contributor_License_Agreement https://en.wikipedia.org/wiki/Contributor_License_Agreement
- coagmano 5y agoIt's common for open source libraries that use split licencing. By assigning copywrite ownership to the project, they are able to licence your contribution however they like. Without a CLA, any licence change, sub-licencing or commercial terms would need to be negotated with every individual that has contributed code to the project
- l5ymep 5y agoJava/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?
- CGamesPlay 5y agoI must not understand the question, because the answer is "the obvious way". You just run the V8 process once in each container and scale up your containers. There's nothing special to it. What are you concerned about breaking?
- l5ymep 5y ago> I must not understand the question, because the answer is "the obvious way". You just run the V8 process once in each container and scale up your containers. There's nothing special to it. Interesting. So the idea is that the you scale identical instances of your app to increase both frontend and backend throughout? Sorry for the stupid questions. I am used to using a CDN for serving the front end and just scaling the backend resources (instead of adding more containers that are running Express of whatever web server within).
- CGamesPlay 5y agoWith something like Cloudflare Workers, your CDN actually becomes geographically distributed server instances. Since the work involved in actually serving the frontend code is never the bottleneck, it ends up working out pretty well. Next allows you to compile the "static assets" and put them on a "dumb" CDN like say a typical Rails application. I don't think Remix supports this pattern at this time, but again, it does work with a perfectly reasonable alternative.
- tuan 5y agoI guess now one can have markup, css, client side js, and server side js all in one file...
- aarpmcgee 5y agoThis seems like a potential huge plus to me.
- CGamesPlay 5y agoSo, after looking over the docs, here's my comparison list between Remix (which I haven't used) and other things that I've used. - 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). - 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). - 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). - 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. - 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. - 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.
- apiep 5y agoThere is https://github.com/smeijer/next-runtime https://github.com/smeijer/next-runtime if you want `getServerSideProps` to be able to handle post request and return a json
- CGamesPlay 5y agoThis looks great! Definitely brings Next and Remix to a pretty close level in this regard.
- nsonha 5y ago
- DeathArrow 5y agoYay! Another JS framework, just what we needed!
- BurningPenguin 5y agoMaybe i'm dumb, but i fail to see the advantages of doing 4 requests simultaneously instead of one single request to load an initial state.
- jtsiskin 5y agoIt’s not: https://en.wikipedia.org/wiki/HTTP/2 https://en.wikipedia.org/wiki/HTTP/2
- kaba0 5y agoI’ve only run through it on a surface level, but isn’t it the same as what JSF did a decade ago? It rarely gets any praise, but to me it was the most productive web FE framework to date.
- patwoz 5y agoThe 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.
- SwiftyBug 5y agoI would bet on that, given that Kent C. Dodds has been almost annoyingly speaking about Remix in the past few months (he's been hired last week) and that he is obsessed with testing.
- seeekr 5y agoHaven'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! 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...
- dzonga 5y agotruly 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.
- baxuz 5y agoFeels like this is kinda doing some of the same thing as first-class React primitives like suspense and server components.
- still_grokking 5y agoTo be honest what this does and how the code looks is like any random PHP CMS back than fifteen years ago. I'm truly baffled.
- archeroe 5y agoJust 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.
- nsonha 5y agoThe 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?