Start the week with a new Pinterest Engineering blog 💡 Learn more about ‘Web Performance Regression Detection Part 1’ by Michelle V. below, and stay tuned for part 2! 📌 https://lnkd.in/eavGXrBY
Pinterest Engineering’s Post
More Relevant Posts
-
Recently daily.dev introduced a new feature called "Weekly Digest" which involves sending more than a million personalized emails a month! In this blog post we deep dive into how we did it at scale!
Under the Hood: daily.dev weekly digest
daily.dev
To view or add a comment, sign in
-
Build → Ship Weekly Updates 🚢 We have shipped some exciting new updates for you this week. Here is a 2-minute round-up of it Let's begin! ------ What's New? ✨ 1. OpenAPI Spec Generator 📝 Download the OpenAPI specs of the workflows created on BuildShip and easily use them on any front-end app builder platform. Find it under your project settings and you can download the API specifications in YAML or JSON formats. 2. Rowy Trigger + BuildShip Extension 🥳 Brand new Rowy Trigger allows you to run a BuildShip workflow in response to events from your Rowy Project. Automate tasks seamlessly when data in your Firestore database changes. Read the step-by-step guide on it here: https://lnkd.in/dR4zfecG 3. Stripe Webhooks Trigger with Event Selection 💰 Our newly introduced Stripe Webhooks Trigger makes it super easy for you to run workflows when specific events/actions occur on your Stripe account. For example: when a new subscriber makes a payment, delays, cancels, and more. Further, you can store relevant data in your database, send emails via Resend or SendGrid, and stay in control of your Stripe workflows. 4. Improved Context Menu 📄 Pass values from one node to another made easy. Visually navigate, search. You can also select nested values from incoming inputs to your workflows and APIs. ----- That's a wrap! What would you like us to release next? Let us know in the comments section below 👇 #lowcode #nocode #lowcodedevelopment #nocodedevelopment #nocodetools
Rowy Trigger – BuildShip
docs.buildship.com
To view or add a comment, sign in
-
#React Performance optimization with "key" prop. key prop is often used when mapping over a list of array items and render some JSX elements. Keys enables React to uniquely identify an item among other items in an array. But is it useful only for rendering a list of elements? The answer is, No! you can use keys on pretty much every React element.. Let's look at a practical example on where you would use key prop, (except using it to render a list of elements of course 😏) Imagine you have a component, and the component has it's own local state (it doesn't matter what the state is) and component also accepts a prop (let's call the prop "count"). You are assigned a task to reset the local state of a component whenever the "count" prop changes. How would you do it? Well, If you don't know much about the "key" prop. You would do it like this (I have already done this 😅): "Create a useEffect inside your component and pass the prop as a dependency and reset the state inside useEffect. That way every time the prop changes it will reset the state of a component". Task done! But it's not quite the "optimal" way to do this and here's why: The child component and it's children will render two times, first with old value and second after the running of useEffect. So there will be an unnecessary re-render. So, what's the optimal way? Well it's actually quite simple, first remove the useEffect from the child component and then pass "count" as a "key" prop to child component. This way every time the "count" prop changes, React will know that it's a completely new and unique component so I have to render it "fresh" without any previous state. Note: React docs has a great example on this particular case, make sure to check it out.
To view or add a comment, sign in
-
My original post deployment: https://lnkd.in/g2yviyaq updated branch: https://lnkd.in/gtHChUxa timer component folder: https://lnkd.in/gUS-dSjZ While I had at some point decided not to revisit the stopwatch/timer project that I made recently, a problem was nagging at me. Formatting the milliseconds into seconds and other formats. Additionally, I wanted a user to be able to dynamically select formats to their heart's content. Including things like "hours.decimal:seconds" Now I don't know *why* you would want to do that, but I wanted you to be able to do that... And I knew I could do it with Regular Expressions. And so now you can. Side note... I tried using MUI's React TimePicker component, and it simply lacked the functionality I needed, not to mention that styling it was nightmarish at best. You may think "MuiOutlinedInput-notchedOutline" is a good name for a class, however when you lack the documentation to support such names, and information on the MUI component "sx" prop is limited (being generous here), then the issue becomes more apparent. Made it this far? Well I ought to say, if these are "regular expressions" I'd hate to see what irregular expressions look like. If you've got the time, let me know something you liked in one more than the other. Google's Gemini (formerly known as bard) of this post: https://lnkd.in/g5-Hh-yA
To view or add a comment, sign in
-
-
Pagination vs Lazy Loading 👩🔬 We introduced a live activity log of the walkthroughs on our dashboard. Today, a user, creates 3-5 walkthroughs on average, using RevOwl and each walkthrough gets ~100 views. For each view, we capture the viewer’s - walkthrough completion rate - conversion status - timestamp - channel and - feedback score So for a single user, this amounts to 400 records in the activity log table. And fetching 400 records, at the least, would hamper the load time and ultimately the user experience. So we decided to load smaller chunks of the activity log at a fixed interval or based on the user’s action and we had to choose between pagination and lazy loading. We implemented pagination here because - we wanted our users to know the exact size of the activity log and decide how many records they want to see at a time - users can filter the activity log and view the activity for only a single walkthrough - our users would access our dashboard only from their laptops or desktops, so there’s enough real estate to add a pagination component - we want to allow our users to sort through the activity log and export the sorted/filtered data We use react-table with manual pagination on the frontend and on the backend, we created a CustomPagination class that would pick up the pagination properties from the query params and return the paginated response. Of course, with scale and add ons to this feature, some aspects of this approach will change and that’s just a given with software development #pagination #react #djangorestframework
To view or add a comment, sign in
-
-
🚀 Excited to Share: Demystifying useMemo and useCallback Hooks in React! 🚀 Are you a React developer looking to level up your component performance? 🚀 Look no further! In my latest article, I dive deep into the world of useMemo and useCallback hooks, powerful tools that can supercharge your React applications! 💡 📚 In this article, you'll learn: ✅ The ins and outs of useMemo and how to efficiently cache computations. ✅ The secrets of useCallback for preventing unnecessary re-renders. ✅ Real-world examples and best practices to harness their full potential. 🤩 Boosting React performance has never been easier! With useMemo and useCallback, you'll optimize your components, reduce redundant computations, and deliver a seamless user experience. 🚀 🔍 Don't fall into common traps! I also share the most common mistakes to avoid when using these hooks, so you can become a pro in no time! Avoid pitfalls and optimize like a champ! 💪 #ReactDevelopment #PerformanceOptimization #FrontendDevelopment #ReactHooks #Memoization #WebDevelopment https://lnkd.in/dRWPgtad
Memoization Magic: Level Up Your React Components with useMemo and useCallback!
ozanbatuhankurucu.com
To view or add a comment, sign in
-
Can confirm, backend is specifically architected to deliver dynamic content (think search, lists, cards, articles, posts, etc) as fast as possible leveraging Redis as an in memory index.
Added a new post @BitmapBytes
Dedicated Headless WebCenter Content API & Cache Layer
bitmapbytes.com
To view or add a comment, sign in
-
Recently I finished a project on which I had been working for quite some time, it was a Chatting application .Following are some of the features I was able to integrate within the application- 🚀 Real-time Messaging with Socket.io: Experience seamless communication with lightning-fast messaging capabilities, powered by Socket.io. 📎 Attachment Support: Send attachments as messages effortlessly using UploadThing, enhancing the richness of your conversations. 🔄 Real-time Message Editing & Deletion: Edit and delete messages in real time, ensuring clarity and precision in communication for all users. 📞 Text, Audio, and Video Call Channels: Foster collaboration with versatile call channels supporting text, audio, and video calls. 👥 1:1 Member Conversations & Video Calls: Facilitate private discussions and video calls between members, enabling personalized interactions. 🛠️ Member Management: Exercise control with features like kick, role change (guest/moderator), empowering you to manage your community effectively. 🔗 Unique Invite System: Generate unique invite links and deploy a fully functional invite system, streamlining user onboarding and engagement. 📜 Infinite Message Loading: Seamlessly load messages in batches of 10 using tanstack/query, ensuring a smooth and uninterrupted messaging experience. 🖥️ Beautiful UI with TailwindCSS and ShadcnUI: Immerse yourself in a visually stunning interface crafted with TailwindCSS and ShadcnUI. 📱 Full Responsiveness & Mobile UI: Enjoy a consistent user experience across all devices, with a mobile-friendly interface tailored for optimal usability. 🌓 Light/Dark Mode: Personalize your experience with light and dark mode options, catering to your preferences and enhancing accessibility. 🔌 Websocket Fallback: Seamlessly switch to polling with alerts in the event of websocket fallback, ensuring uninterrupted communication. 💻 ORM using Prisma: Optimize database interactions with Prisma's powerful ORM capabilities, enhancing efficiency and scalability. 🗃️ PostgreSQL Database using Neon: Leverage the robustness of PostgreSQL database powered by Neon, ensuring reliability and performance. 🔐 Authentication with Clerk: Secure your platform with authentication powered by Clerk, safeguarding user data and privacy. You can checkout the project at -https://lnkd.in/gbxCRWnx Hope you guys will like it.
To view or add a comment, sign in
-
Ever encountered the challenge of managing nested click events in React? I recently faced this exact issue and wanted to share my experience and solution with you. 🔍 The Challenge: In a React component, I had a parent div with its own onClick handler, and inside it, a "Learn More" span with a different click action. The tricky part? Clicking the span also triggered the parent div's event. 👨💻 The Solution: The key was using stopPropagation in the span's onClick event. This method prevents the click event from bubbling up to the parent div. Here’s how I implemented it:
To view or add a comment, sign in
-