In the context of React, testing is a non-negotiable process to maintain code quality and a smooth user experience. However, there’s one frustrating bad news that is commonly faced when running tests in React. And that is flaky tests.
If you’re working in a team using the Scrum framework, you use story points to estimate effort on your stories, tasks, etc. Then, some management considers this and plans, measures your productivity, and even keeps you accountable when something is done.
Effective modernization of legacy software systems When faced with the need to replace existing software systems, organizations often fall into a cycle of half-completed technology replacements.
Over the last few months, AI-powered chat applications like ChatGPT have exploded in popularity and have become some of the largest and most popular applications in use today. And, for a lot of people, they may have an air of mystery and wonder about how they work.
A few weeks ago, I stumbled on a browser API I never knew existed; the web Bluetooth API. It seems to have been in development for about 7+ years, and I’m glad most browsers now support it.
You can call JavaScript’s default print function on the window object to print it. While this is convenient for printing the entire document in a window, it lacks customizability. You can’t easily print one specific section, and often, the styles applied to the document get lost in the process.
I recently read a post about React being antiquated. I have liked React for a long time (here is a local meetup talk I gave in 2015?! https://ejosh.co/de/2015/08/my-talk-on-react/ ).
In the ever-evolving landscape of software development, efficiency and speed are vital. As projects grow in complexity, developers and teams need tools that can keep up without sacrificing quality or performance.
For modern real-time web applications, the ability to send events from the server to the client is indispensable. This necessity has led to the development of several methods over the years, each with its own set of advantages and drawbacks. Initially, long-polling was the only option available.
I often feel like javascript code in general runs much slower than it could, simply because it’s not optimized properly. Here is a summary of common optimization techniques I’ve found useful.
Today we are happy to announce the (long overdue) 1.0 release of VitePress! VitePress is a Static Site Generator (SSG) designed for building fast, content-centric websites.
Key Takeaways Cellular architecture can provide significant benefits for customers and businesses, such as increased availability, resilience, and increased engineering velocity.
If you're wondering what the React compiler is, I recommend reading our recent update post for some background. This post is for anyone curious about the compiler theory behind it. Don't feel pressured to understand everything in this post in order to use the compiler.
TL;DR: I am doing great and not going anywhere. Having some presure but still holding up and trying to improve. Thank you and don’t worry! This is the 4th year since I have started doing Open Source.
In my React development journey, I’ve learned that optimizing performance is crucial. A game-changer for me has been dynamic imports, a JavaScript feature that lets you split your code into smaller chunks, loading them only when needed.
There’s a trend I’ve noticed—or at least, I think I’ve noticed. It’s the kind of thing that’s hard to be sure of; the kind that might genuinely be true, or might simply appear to be true if you look at it a certain way. Maybe it’s both.
Key Takeaways Take on fewer things; focus on doing a complete job. Dependencies destroy flow. Break down and remove dependencies in order to improve your team(s)'s ability to get things done. Shift your focus toward keeping work moving and away from keeping people busy.
Now, this is a casual exercise, one we can assign as much value to as we like. First and foremost, how something is being done is orthogonal to the doing itself. But even an exercise like this can tell us something about our work—here, of our building of websites. Yes, testing and optimizing get a part of the spotlight—at least for things like test coverage, performance optimization, and SEO.
On March 12th 2024, Google is launching a new Core Web Vital metric, Interaction to Next Paint (INP). INP will replace First Input Delay (FID) and will change the way your sites are assessed for performance by Google, which ultimately affects how your sites rank in search engine results.
Measuring developer productivity is a difficult challenge. Conventional metrics focused on development cycle time and throughput are limited, and there aren't obvious answers for where else to turn.
Experts are constantly discussing how to make the web better. Accessibility, UI/UX, web performance, you name it. You might not hear about internationalization (i18n) as much as other topics, but it is still essential to making the web better.
React Testing Library has become the de facto standard for testing React components. Focus on testing from the user's perspective and avoidance of implementation details in tests are some of the main reasons for its success.
In 2021, the Chrome Aurora team introduced the Script component to improve the loading performance of third-party scripts in Next.js. Since its launch, we've expanded its capabilities to make loading third-party resources easier and faster for developers.
As your web app matures, it becomes challenging to ensure your GUI doesn’t break with any given update. There are a lot of browsers and devices, and countless states for every one of your components.
All of us - software engineers - use git every day, however most people only ever touch the most basic of commands, such as add, commit, push or pull, like it's still 2005.
I've been at this company for 12 years today and it feels like a good time to reflect on all the projects I've been involved in! I found out over time that the projects where I thrive are spaces where the R&D phase is over and the tech now works but it needs to be turned into a proper product to start the exponential growth phase.
As an integral part of Shopify's ecosystem, our mobile app serves millions of merchants around the world every single day. It allows them to run their business from anywhere and offers vital insights about store performance, analytics, orders, and more.
Last summer at Tailwind Connect I shared a preview of Oxide — a new high-performance engine for Tailwind CSS that we’ve been working on, designed to simplify the developer experience and take advantage of how the web platform has evolved in recent years.
Over the past decade, React and its ecosystem has undergone continuous evolution. Each version has introduced new concepts, optimizations, and sometimes paradigm shifts, pushing the boundaries of what we thought was possible in web development.
Hello everyone! In this article, we will take an in-depth look at the possible high-level architecture of Booking.com, one of the world’s leading travel and hospitality platforms. Serving millions of users worldwide, Booking.
The Performance API is a set of standards for measuring and evaluating performance metrics with JavaScript. Think of it as a box containing all of the same functionality for reporting on Core Web Vitals and general performance statistics that you’d get in many performance testing tools. This article demonstrates how to use the Performance API to generate performance metrics directly in the DOM to create your own reporting.
I was a bit out of touch with modern front-end development. I also remembered articles about web bloat, how the average web page size was approaching several megabytes!
Embracing a local-first approach in app development has always resonated with me, especially to counter the frustrations of connectivity-dependent applications which are prevalent today. The goal is simple: create apps that are immediately responsive and liberated from the constant need for internet connection. But execution is challenging, particularly for complex, multi-user applications.
Hello, you wonderful people; in this post of many, I would like to introduce you to what we will be building. With the popularity of Next.js 14 and Strapi and how they can empower you to build cool things, we are going to work on building a project together to cover all the awesome aspects of Next.
It’s launch time. After three months and hundreds of commits, we invite you to try out Million Lint. The experience is not finished – there are a few known bugs and several missing features – but we are really happy with how it's shaping up and couldn't wait to share it with you.
Caching data is a useful pattern for any application that needs to serve high traffic and finds itself with latency requirements incompatible with the selected persistence choice.
How can this even be? We were promised isomorphic rendering - first on the server, then on the client. Write your code once, execute twice. Except that the server isn't the client.
There’s no arguing that we’re in the midst of an AI boom. New tools, capabilities, and skill sets are emerging, and a massive upskilling wave is underway for both individuals and organizations.