@meijer_s
@TestingLib
Okay, this is an instant share with the frontend department at work, thanks for such a nice tool! I can recommend a list of sources here: and this one:
No. No. No.
Just to be clear. DO NOT DO THIS. They might have more followers than I do, but just don't. Don't do it.
Shorter isn't better. And if you have that much log statements that it makes a difference, you'll need to reconsider your debugging approach.
Tailwind-Studio has LANDED! 🥳🍾🎉
Sign up is open (link below). There are still quirks, and there are a lot of features still to be added. But I would love to hear what you think of it.
Share some screenshots of what you build below, or tag it with
#tailwindstudio
.
To all 46k followers, PLEASE DON'T. This has nothing to do with traditional or modern. The "preferred way" is confusing, easy to miss, hard to understand for anyone not familiar with the pattern. Do not not use that. Take the extra keystrokes.
➎ Short Circuit && / ||
⬘ Are you still using "if" statements for one-liners?
⇥ if (hungry) eat()
⬙ The modern approach in such scenarios is to use Short-Circuits.
⇥ hungry && eat()
✔ Best Practices
Use this for simple one-liners.
Don't hate me, but sometimes I wonder if TypeScript is worth the effort. There's a certain charm to dynamic JS. Type annotations take a big part of the time spent on code. Yes, it has benefits in onboarding and "safety" but the price is fixing code that might never become a bug.
Shit like this is why I believe postgres' jsonb types were a mistake. Sure, there are valid use cases, and as a Mongo user, I cheered when jsonb was introduced to psql. But it's like devs get confused by this much freedom of choice. PSQL should've stayed relational.
Soon you'll be able to build & design
@tailwindcss
based layouts, without writing code.
I just got predefined layouts, and multi-select / bulk editing working. 😎
The original of included video was 7:20m. Try replicate that with HTML. Want to try the early release? Check 👇
We haven't been sitting still. now has: 🥁
- 🧩 a Chrome Extension!
- 📴offline support
- 🐸animal mascot
- 🐙using
@TestingLib
native query suggestions!
- 📋copy to clipboard
Soon non-Europeans have a reason to be angry on the EU, once again. As a European, I applaud this initiative.
The end of addictive designs can't come fast enough imo.
@Dima_heyqq
Great examples. I think the difference is really cultural. All these examples show that the EU cares about the people, the consumers. Most Twitter folks bashing the EU only care about their own convenience and how much money ends up in their pocket.
🚀 Just published a new tool to
@npmjs
🚀
Meet "where-broke". This project helps you bisect npm libraries, to find the version that introduced the regression, that caused your tests to fail for the first time.
> npx where-broke {the-troubled-lib}
It's a time saver! (github👇)
I've just updated 🎉
- 🧞improved query advise, with text in addition to code
- 🐙clickable query buttons, that will apply that query
- ✨improved code formatting
- 📋sharable URLs, with auto-format on page load
- 🔗added links to
@TestingLib
docs
If react was a startup it would be filing for bankruptcy
- (next)cookies can be set here, not there
- suspense works here, not there
- hooks can be called here, not there
- hooks have a dep array, not use
- use takes a promise, not that promise
- 1 release in 2 years is fine 🔥
Node.js, (cloudflare) workerd, (aws) llrt, (oven) bun, it's exciting, but I wonder what would've happened if they all focussed on the same thing; making node.js better.
I'm excited to see LLRT finally open for everyone to try!!
I've said it before, and I'll say it again:
Lambda must either build a runtime optimized for their online scaling model, or they need support some type of multi-concurrency.
🚀The Testing-Playground Chrome Extension has been PUBLISHED! 🚀
Install from here:
Or use the web version at
I'm so excited 😱 It's the first version, and updates to add support for user-event will follow soon!
So
@github
offers issue trackers. They support sponsors, and they support one-time donations via sponsors.
Now imagine, they'll add a "tip box" to every issue. When someone wishes to see something fixed, they can attach a donation to that issue, which is collected upon closing.
Node v14 has been EOL since April, and Node v16 stops receiving security updates in 6 weeks (11 Sept 2023).
Do yourself a favor, upgrade your node.js runtime to v18 or v20. Anything older should not be an option.
I heard y'all are making todo apps in Laravel!
I mean, it's possible, but that's like using a Lambo to go grocery shopping.
I'll show you how to make the todo app, but then show you some stuff a full stack app might use.
lol, many replies under this thread amplify my belief that we need regulation. 😆
For the smart folks that developers usually are, we're pretty ignorant when it comes to shit like this.
@diegohaz
First. It reads much earlier when there are multiple conditions. And making it a pattern by also applying it to tiny functions like the example is good for consistency.
Early return FTW.
🥳 is online! And with that, I've completed the re-branding of Tailwind Studio.
Same product, different name. Just not to confuse all of you. Tailwind Studio, now Updrafts, is not affiliated with, endorsed by, or sponsored by
@adamwathan
or
@steveschoger
Just launched ! 🎉
A site that checks your browser against browserslists queries, that's easy to embed in your own site, to inform users when it's time to update their browser.
@_hariti
They do, and that's a good thing. But quite often, the structure of the data is there, it works, and then typescript complains because some weird type issue caused by the dynamic nature of js. Issues that are no longer about your code or data structure, but only about TS itself.
I just published `next-runtime` v1.0 🚀.
With next-runtime, you'll handle get requests, post requests, and file uploads, in getServerSideProps.
Every handler double serves as api-route as well. No more context switching and different entry paths.
FFS. Stop shaming me for having a DELETE request with a body, as the client, where we also control the server. OpenAPI spec is irrelevant. The HTTP spec is good with it since v1. 1. Most clients are good with it. This is a bug in the framework/their fetch implementation.
HOLY SHIT. Can someone please confirm that
@remix_run
is dropping the request body from DELETE requests when using fetch(request)?
This was incredible fun to debug.
says user-agent `node-fetch`, so I guess it's because remix overrides fetch. 😞
Twitter: Like 90% of all JS is written in TypeScript
Average support ticket: How do we use this lib without a build tool?
How is it that tech Twitter and the real world are so misaligned?
I've given the nextjs patching globals thing a thought this last weekend, and I've come to the conclusion that I can no longer recommend using Nextjs.
The fetch patch was reverted, but now it's up to , and Math.random. 🤦♂️
🤯 preact signals also work OUTSIDE of (p)react. Hook 'm up with postMessage, and you'll get single line cross-frame reactivity. To sync different vscode webviews for example. Or browser tabs. Or in a chrome extension. Or to chat between iframes. *chef's kiss*
Here's the thing I have trouble with. Folks like Theo, having 73k followers, talking bad about someone, and then blocking everyone who disagrees. This is what creates an echo chamber, and the toxic environment that Tech Twitter can be.
For your understanding, I'm currently 100% TypeScript. There's just something inside me questioning if that's really for the better.
It's the inside me looking for more time to get more shit done. To be the most efficient and move the fastest way possible?
Just published a big update for unimported. Over the last few days I've improved and added a lot of stuff. The most noticeable changes are:
- support for vue
- support for multiple build targets
- support for react-native
If you weren't convinced yesterday, check again! Just added something nice to (for
@TestingLib
)
- 🐙all available roles are now listed under the preview
- 🖱️on element hover, the suggested selector is shown
- 📋on element click, the suggestion is applied
This keeps surprising me. You all want serverless to ensure infinite scaling when you're trending. But then, when it finally happens, you don't want to scale infinitely?
So help me remember, why exactly do we want serverless again?
So freaking speechless right now. Seen many
@vercel
functions stories but first time experiencing such discrepancy vs request logs like, this is cannot be real??
@cpojer
If your component is slow, you'll have bigger problems than this pattern matcher. This is unlikely to add a noticeable perf impact. That being said, native support would be nice. Sadly the current proposal is only at stage 1.
Did you know that
@TestingLib
getByText('foo') and getByLabelText('foo') match different elements?
The Chrome Extension of lets you explore these differences in an accessible way.
By patching the `window.screen` object, we can query based on what we see.
We're technically live 😱.
Metric Mouse 🐭 is a dashboard that renders your Google Analytics data in a more modern & user-friendly way. No need to switch analytics providers, or add integration code. Simply login with your Google Account. For free.
Stop CamelCasing your header names. They're case insensitive and MUST be converted to lowercase prior to their encoding in HTTP/2. A request or response containing uppercase header field names MUST be treated as malformed
It makes no sense to deviate from that convention.
@kvlly
meanwhile:
recruiter: I've read your profile, and found the perfect frontend position for you!
candidate: but my resume states that I have backend experience only.
recruiter: yeah, but this is a chance! You can learn it on the job, while you make 50% of your current salary.
I've blogged about tricky interview questions. If you're on the interviewer's side of the table, and you have the power to stop this, please do! Whatever it takes.
ESM has been in development since 2009, 🤯 and the ecosystem is still a mess. Gotta respect
@sindresorhus
's game of publishing most (all?) of his 1162 packages as ESM only, and dealing with ESM related tickets on a regular basis. Tickets that have nothing to do with these pkgs.
I'm having an internal conflict between;
- client side SPA's are fine (no SSR, just ship the bundle)
- server side rendered is all we need (think Astro + htmx)
Not sure yet what I like more, but it clearly isn't the direction that's so popular at the moment.
HOLY SHIT. Can someone please confirm that
@remix_run
is dropping the request body from DELETE requests when using fetch(request)?
This was incredible fun to debug.
says user-agent `node-fetch`, so I guess it's because remix overrides fetch. 😞
Just published my
@hacktoberfest
contribution... 🥁
🚀 BLOCKTOBER! 🚀
For all those maintainers that want to opt-out.
> npx blocktober
A second is all it takes.
OpenAPI is highly underappreciated and underused. I don't get it, JSON Schema seems to get the love it deserves, yet OpenAPI tooling is lacking on every level.
Please don't do this! Don't test if rendering a component, returns a specific dom structure. Use the Chrome or Firefox extension, and
@TestingLib
. Verify what the user sees instead.
@iamfra5er
Why cancel and refund? They've paid for a full month of (trial) usage. Why can't they have that? The only thing they canceled was the auto renewal of next month. I assume they'd enable that when they conclude it's worth the money during the current _paid_ trial?
The 🐸 Testing Playground Chrome Extension for
@TestingLib
has been updated 🚀
With the update of the web version yesterday, and the chrome extension today, they are now on the same feature level:
- ⚙️ configurable test-id
- 🐕 support for user-event
@iskandarzhilmi
Though often enough paid by insurance when needed. It's the branding that's upsetting. Call it "buddy ai," and I wouldn't have given it a second thought.
Most don't need a therapist 24/7. Those who do, get a phone number and can. Those who do, are unlikely to be saved by AI.
Slack will remove messages after 90 days, when using the free plan. I think orgs should downgrade. Messages that are still relevant after 3 months, shouldn't be posted in Slack.
Next Monday, (22 Feb) is my Birthday 🎂, and I'm feeling generous. I just gave away 3 pro licenses for , and will give away 3 more after Monday.
Interested? Like & Retweet to win one.
Working together with Kent on this project was amazing! The frontend is styled using tailwind, animated with framer-motion and turned into a real experience with lots of creativity. Amazing to see this go live!
And, it's open source! Feel free to dive in and/or contribute.
Just published my
@hacktoberfest
contribution... 🥁
🚀 BLOCKTOBER! 🚀
For all those maintainers that want to opt-out.
> npx blocktober
A second is all it takes.
Do you wish to understand how things like `ValueOf<T>` generics in
#typescript
work? I provide the solution, as well as the instructions on how to come to generics like these yourself.
I'll always have a sweet spot for
@meteorjs
. Back in 2014, we had out of the box - ZERO CONFIG -
- isomorphic code
- database access
- client-side db
- optimistic response
- cross-client sync
- email
- accounts - authentication & authorization
- cron jobs
TEN FUCKING YEARS AGO
I recently did some salary research for web development across the globe. Here some results presented on a map. I'm not proud of the graphics, but I share in the hope that it will be useful to you. Note, the countries are clickable.
"it's no problem for airlines, pilots just use their backup system". Yeah, well, when your backup system becomes your primary, you no longer have a backup system. We now have a single point of failure, in many thousands of flights. This will go wrong sooner or later.
The Baltic Jammer is in Kaliningrad.
The Baltic Jammer is a Russian GPS jammer that since Dec -23 has affected the navigation of 1000's of civilian & military aircraft.
Old method, new dataset, even more obvious.
Finally, data to disprove me. Thread 🧵
@ElGalloChoro
I have no idea what you're talking about. I don't say all state needs to be in the URL, but whatever you put in there better has a meaning and be used as the source of truth.
Hooray! 🎉 is live 🎉!
A playground that enables you to play a bit with
@TestingLib
query methods.
I hope it will be useful. If any questions or suggestions, let me know.
@catalinmpit
I Google stuff that I'm to shy about to even mention here. The worst thing? It's not even because I don't know it. Just because I Google faster than that I can retrieve the knowledge from memory.
Next.js tip: be careful with the Link component. It'll prefetch by default, but only in production.
I just saw code that had multiple Link tags in each row of a big table. The network tab was getting destroyed by basic scrolling 😭
@femkesvs
I'm Dutch, and definitely prefer the short version. Both as the sending, and receiving end. Don't waste my time by masking the real message with some fake social cover up. We can socialize another time. If there is feedback on my work, then just bring it on.
Me: So I've built a b2b collaboration platform from the ground up, which was used by the Dutch government and contracting firms, to manage billion dollar infrastructural projects. 😎
Them: Sorry, what? You've helpt
@kentcdodds
with his new website?! 😱
Me: Yeah, that too..
I'm all for stability and "done is done". But I do wonder if not even one of these 790 merged pull requests would've benefited 18.2 users, and been worth releasing.
Turns out that not everyone is aware what the Chrome Extension for
@TestingLib
provides.
Let me summarize
- it adds a 🐸 panel (tab) like "⚛ components"
- it adds a 🐸 sidebar pane to the Elements inspector
- it patches `window.screen` so you can use queries in the Console
PREVIEW!
@TestingLib
/user-event is coming to 🐸 !
Soon, you'll be able to play with 🐕user-event in the same way as you can already do with the 🐙dom query methods.
Testing Playground has just been updated to v1.8 🚀
- state itself is no longer saved in the url, to end history spamming
- added an "embed dialog" to compose embed codes
- added a "share dialog"
- support for custom test-id attributes
- various small interface improvements