I’m tired of native apps.
> download this app to register your kid for tennis
> download this other app to see your the tennis schedule
> download this app to pay your bill
> download our app
> download our app!
> download our app!!
Websites are great, btw
On the left, HTML and Tailwind a dev authored with the idea it would be easier to read.
VS.
On the right, I rewrote the markup using vanilla CSS classes.
#webDev
#frontEnd
#CSS
frontend:
<input type="email" />
backend:
str.includes("@")
The only way to know if an email address is valid is to send an email.
Stop using regexes that don't let people use valid emails 😂
@EatMoreBrisket
@literElly
The point is inflation, doesn’t matter if you shop like me and Gwyneth Paltrow (my favorite offense slung at me over this) or you “try”. Even the most frugal shopper is paying 25% more now. Really sucks cause a lot of people can’t make ends meet anymore.
There were no server actions when we created Remix. So we created route actions. Now React has server actions.
There was no way to fetch data in components on the server before Remix, so we created route loaders. Now React can fetch data in components for SSR with RSC.
React…
@housecor
This is one major reason I hate the backend/frontend split on teams.
The argument was that I was adding "tech debt" to the backend when we already had "APIs for this data".
The absolute disaster of fetches and joining all the REST fetches together into a data set I could use…
> Will Remix stick around?
We work for a 17 year old, $80B company
We've maintained React Router for a decade as a two-man business
It's got more production deployments than any alternative in the JS ecosystem
and React Router is 90% of Remix
Yes, Remix will stick around 🫶
The biggest risk of tool development is accidentally convincing yourself that
incidental complexity your abstraction created is essential complexity of the problem space.
And then you think workarounds for the incidental complexity are features you’re proud of.
Y’all
@kentcdodds
is the real deal. Drove up to my house last night unannounced to drop off a delicious meal for tonight, the day of my surgery. He doesn’t really live close either.
He is so much more genuine than everybody it’s hard to believe.
REACT!
Just got caught up on all the posts 😅
I'm near the top of the list of people who could justifiably complain about how they've handled communication, community, and technical details of the project
But I'm not going to 🤗
With a spotlight as big as theirs, you're gonna…
Had my one year review after joining Shopify today and I seriously can't have imagined a better outcome for Remix than this.
Remix today is better than I imagined when we set out to build it, and the future we're working on is looking even better.
Imagining a world where we…
@housecor
I had this argument with a “backend dev” on our team. I made an endpoint specifically for the UI I was building and only needed 2 (complicated but efficient) DB queries to get it.
He insisted I use the existing REST endpoints and blocked my PR.
So I did it his way and made 13…
we’re re-enacting the plot to silicon valley with LLMs
we’ve been gifted the best way to search over compressed data ever invented
but everyone is building the same chatbot over and over
we built a 100% open source demo of something more practical
check the thread
@vituperativeerb
Seriously? I got a great deal! I expected it to be like $200? I dunno, my butler is on vacation and I haven't bought groceries myself in years.
Nobody wants the macOS camera effect nonsense
Nobody wants to search YouTube videos by color
What wild incentive structures and product (non)ownership creates this crap?
Look up a customer email address? Bro, I could literally log in as a customer to our app and act as them completely.
We called it "masquerade" and it was really hard to spell correctly in the code.
I wondered if RSC made Remix and Next too similar to even bother with two frameworks and just take the W for influencing React with a lot Remixisms and go contribute instead
Now that we see most of the Next/Vercel flavor, I’m confident our flavor is also needed to keep pushing…
Look at that, Remix no longer needs `defer` and `Await`, just `React.use`
(Gonna be a bit tricky to reconcile all the existing Remix APIs with the new, overlapping React APIs, but it feels good!)
What I love about being at Shopify is
- we build Ecommerce sites
- we build admin dashboards
- we build web apps that build Ecommerce websites
- we build no-code web apps that build websites
- our merchants build custom storefronts.
- our partners build embedded apps for the…
Most awkward tech talk moment I've ever had.
I expected people to laugh, but instead they clapped.
I think about this moment regularly, the realization that most devs don't care about the product, just the tech, and that stresses me out.
I love server actions.
Remix has them except you have to configure the route/url yourself. I loved the “function becomes a URL” API when I first saw solid start do it.
My only issue is these things used to be announced at React Conf.
I think I’ve had it with apple. The web could be so much better for app development, I’ve just been kinda patiently waiting for safari to stop lagging but they really don’t care and it shows.
A few people there have been apple to push css stuff forward but nothing we really need
It's official. iOS will not support Progressive Web Apps in the EU.
It would be great if Apple provides the basis of this claim:
"We expect this change to affect a small number of users"
Every time I try to manage focus with useEffect I have bugs.
Every time I manage focus with flushSync, it works perfectly.
I should write a bit more about this.
Been using Apple Music on my laptop for the lossless audio and this app feels completely unmaintained
- Times New Roman in popups
- Basic features like add to playlist don't work
- Navigation is impossible
Am I the only one? This feels like crazy town after years of Spotify
I appreciate all the calls to be nicer
unfortunately I am going to keep my high expectations of our industry and try to do it with a playful tone that's often sarcastic/teasing
If you read it as toxic then we simply come from different cultures and I ask that you respect mine
🤩 So hyped on this
@remix_run
demo I had to record something NOW, notwithstanding the wrong recording equipment and disheveled beard.
Few more details to clean up and then I'll record some official Remix singles on this.
I don’t even know which iPhone I have. I get a new one when the battery starts to suck.
If they actually wanted to decrease their environmental impact they’d make a replaceable battery.
I love react, but the fact we haven’t collectively landed on one or two component libs after a decade is surprising. Is it our fault? react’s fault? The web platform’s fault?
I learned rails before Ruby.
I learned MooTools before JavaScript.
When you’re new you can’t see the framework from the language. Even simple stuff like {} — could be MooTools, could be JS, it’s all just magic characters.
I can remember the slow realization “ohh!! I know Ruby!”
Sad to see folks get frustrated with Next just bail on React completely
Give Remix a shot
It gives you the majority of the benefits of RSC already, and you probably already use 90% of it anyway w/ React Router, plus RSC is coming but I think you'll like it in Remix
JS haters will also hate the facts. JS frameworks are the pinnacle of the accessible web
In an audit of 1M websites by the company I trust most to survey accessibility:
1st image: Next.js is at the top spot, far above laravel
2nd image: Looking at Stimulus as a proxy for rails…
I think I made money giving 💵 to a beggar just now.
He was at the corner of a freeway exit, I handed him some cash out my window.
Moments later a cop pulled me over because my registration is way expired 🙃
He said he was only giving me a warning because “you were honest…
RSC is farther from production-ready than I thought. Time to get back to work on current Remix APIs.
I'm genuinely excited about RSC though. It's given us a clearer view to build migration paths from React Router+SPA to Remix+RSC and we can start now. No rewrites required.
Somebody built a Trellix clone with Next 14 (my little kanban Remix demo)
I give it a D+, buggy, slower, missing details
Please build better websites! Send me a Trellix clone that's just as good or even better 🔥
You can’t hover the classes in your editor to know what they do, you can’t find all instances to remove unused css, and you’ll eventually ignorantly evolve your css to utility classes to fix all of these problems until you realize you built a crappy, undocumented tailwind
First, someone will change .previous__button in some other UI and break this one and nobody will know until it’s in production, and maybe not for a while.
Outside of React you can just do this like a normal person would think to do it 😆
So that
@RyanCarniato
and everybody else building and using libraries with coarse updates don't have to say it, I will!
Look at that! Remix no longer needs route links and meta exports nor <Links> and <Meta> components
React 19 now floats those kinds of tags to the <head> automatically, even for initial SSR
Look at that, Remix no longer needs `defer` and `Await`, just `React.use`
(Gonna be a bit tricky to reconcile all the existing Remix APIs with the new, overlapping React APIs, but it feels good!)
I put in a blu ray and it was 86 billion times better both audio and video than alleged 4K HD audio streaming of the same movie.
Do any streaming/download services actually download blu ray quality?
(AV weirdos with egregious home theaters are encouraged to reply)
I think RSC is the best swing at crossing the network gap ever, I can find parallels with every stack I’ve worked with my whole career and it’s always better
It deserves a careful implementation. That’s what we’re attempting in Remix right now
We’re not going to rush it
My take:
- Top level folders are independent feature folders (vertical bars) + shared folder (horizontal)
- Stuff is co-located in feature folders (vertical bars) until it's shared, then it's moved to shared (and can have vertical bars there too)
Married 19 years today! Took the whole family to Disneyland for the week to celebrate.
My wife was 19 when we got married 🫣 so this poor woman has nearly spent most of her life with me.
(What’s that guy in the back staring at? The family is having a debate)
LAMP is the only stack I know that has pulled this off, assuming your host didn’t break something.
None of my abandoned rails, code igniter, nanoc, or gatsby apps run (or build) anymore
Frameworks aren’t designed for abandoned apps, but I often wonder how LAMP pulled it off
React Server Components on the Remix roadmap.
We have a *lot* more to write up than what's in the discussion, but it's officially planned on the roadmap.
I’ve never seen a like/bookmark ratio like this before. Very glad they let you post long videos now.
Still wish I could make a playlist that’s highlighted on my profile.
@tlakomy
What takes more effort?
1. Scrolling right
2. Figuring out which file has a class name and then opening it and then finding the selectors that apply to the element
Ai isn’t going to replace programmers anytime soon
One programmer good at programming and Ai will replace a team of programmers though
The speed that I can build with Remix + co-pilot is kinda crazy, but it’s only as good as the first tokens I give it, and then it reads my mind
When we decided to build remix, I sold my house and moved my family into a little townhouse with cash from the equity.
No mortgage, minimal expenses, and good chunk of savings. It didn’t take long for our early revenue to cover all of my expenses, but still I was ready to build.
I had to lay off our team when Covid decimated our business, people sent me terrible DMs and criticized me here
Layoffs suck, but you probably don’t know enough to get all self-righteous about it until you’ve sat there looking at a spreadsheet and realizing what you have to do😔
Look at this thing on 3G throttling!
I'm more proud of Remix's `useFetcher` than anything I've ever built, and proud of a great team that cleaned up my initial implementation of it.
1. On drop, kick off a fetcher w/ the card, column, order in the form body
2. When rendering,…
Deactivated my twitter account to take a break, then twitter deleted it. Had activity within weeks, let alone several years!
Through a connection, asked a VP to reactivate, said they can't. Hard to believe it's not just a status field in the DB
@elonmusk
Yeesh ...
Cloudflare D1 is making it hard to care about making a local first search demo with Remix clientLoader when it's returning responses in fractions of a second querying 36,000 records.
As a framework author, stable means “API is not going to change”.
It does not mean no bugs. There are always bugs.
This is what we call “stable” in Remix too.
They say
@nextjs
app router is stable, but there are still weird bugs with parallel and interception routes, should we consider them as experimental or alpha like server actions ?
Next, the naming will be inconsistent and the team will argue about names for thousands of elements that never should have been named instead of shipping better designs
@DavidKPiano
90% of that could be solved with a simple
new FormData(event.currentTarget)
I’ve never understood the gravitation to controlled components just to get form values to make a fetch.
You might not have heard we recently shipped Remix v2.
It was boring for everybody.
That’s because the features and changes made it into v1 as small, incrementally adoptable changes alongside the v1 API.
Those changes were originated from public GitHub discussions before they…
Kent said "Ryan, let's go snowboarding on April 11th" and I said "Okay!"
And then after I confirmed, he followed up with "j/k you're speaking at my conference now that I know you're free!"
📣 I'm excited to announce Epic Web Conf!
Happening April 11th in Park City, Utah 🏔
My goal is to bring people together to learn, network, and collaborate on making the web a better place to build software. And you're on the guest list! 🎉
See you there!
If you want to understand React you have to first understand that the only sacred thing is composition
Everything else is rejected or takes a back seat as an acceptable tradeoff
flushSync is my default in React these days.
The vast majority of my state updates (in Remix apps anyway) need to be followed up by transactional—not synchronization—effects, typically focus management and scroll positions.
I've tried for years to do it with useEffect + refs +…
Then folks will be afraid to change any existing css like .previous__button and will write new css for both new UI *and* the UI that introduced it until you’re shipping hundreds if not thousands of KB of CSS