Logo
    Search

    Hasty Treat - Updating / Restarting Long-Running Web Apps

    enOctober 12, 2020

    Podcast Summary

    • Understanding the importance of tools like LogRocket for debugging web applicationsLogRocket provides a video replay of user interactions, network data, and console logs to help developers diagnose and fix bugs in real-time, saving time and frustration

      As web applications become more complex with persistent data and advanced features, maintaining and updating them can be a challenge. This is where tools like LogRocket come in handy. LogRocket is a service that provides a video replay of user interactions along with network data and console logs, making it easier to diagnose and fix bugs in real-time. Wes Boss and Scott Zelensky discussed this topic on their Syntax podcast, emphasizing the importance of having a tool like LogRocket in your development toolkit. By providing a visual representation of user interactions, LogRocket can save developers time and frustration, allowing them to quickly identify and address issues. The podcast also mentioned that LogRocket is offering a free 14-day trial for Syntax listeners, so be sure to check it out if you're looking for a more efficient way to debug your web applications.

    • Waiting for users to update can cause old bugs to reappearUsing development tools with real-time updates ensures all users have the latest code, eliminating the need to wait for manual updates and reducing the risk of old bugs reappearing.

      When releasing a new version of an app, not all users may immediately update to the new code. Some users may continue using the old version due to various reasons, such as being in the middle of a course or simply forgetting to refresh the page. This can lead to the old bugs reappearing, requiring the developer to wait for all users to update before the new version takes effect. The speaker in this discussion encountered this issue and sought advice on Twitter. He shared that when using the platform Meteor for development, new deployments automatically push updates live via WebSockets, providing hot reloads to users in real-time. This feature ensures that all users are always running the latest code, eliminating the need to wait for users to manually update. This discussion highlights the importance of considering user behavior and utilizing development tools that can efficiently deliver updates to all users.

    • Updating code unexpectedly and user experienceWhile unexpected code changes can be frustrating, platforms like Notion effectively handle this by notifying users and encouraging them to refresh. Developers can consider implementing solutions like tracking asset or commit hashes to prompt users to refresh.

      While it may be frustrating for users when the code in front of them changes unexpectedly, it's a common issue in web development and can even be an opportunity to introduce new features. The speaker mentions Notion as an example of a platform that effectively uses this approach by notifying users of updates and encouraging them to refresh the page. However, the speaker acknowledges that this solution might not be feasible for everyone. The speaker also shares that they had experienced an issue where a browser didn't support a certain feature, and the solution suggested by a developer was to update the user's computer. The speaker finds it ironic that the problem they are currently facing as developers is getting users to refresh the page, considering how much easier it is to update a web application compared to downloading and installing a new software on a computer. The speaker then plans to discuss some potential solutions to this issue, including doing nothing and hoping users refresh the page, or implementing a system to keep track of asset or commit hashes to prompt users to refresh when a new version is available.

    • Notifying Users of New App VersionsDevelopers can use toast messages, manual refreshes, or server pulls to notify users of new app versions. Consider user context and activity level when deciding which method to use.

      Developers can implement a system for notifying users of new app versions through various methods, such as toast messages or manual refreshes. These notifications can be triggered by a server pulling an assets.JSON file or through WebSockets, alerting the code when a new version is available. A toast message is a pop-up notification in the bottom right corner of the screen, which can be used to inform users of a new version and prompt them to refresh the page. However, this method may not be ideal if users are in the middle of an action or if they have a video playing. Instead, developers can consider waiting for a period of inactivity or a loss of focus before refreshing the page for the user. This approach is more suitable for applications where users are less likely to be actively engaged, such as news or informational sites. Overall, implementing a user-friendly and efficient method for notifying users of new app versions is crucial for maintaining a positive user experience and ensuring that users have access to the latest features and improvements.

    • Checking for updates before rendering a linkCreate a custom link component to periodically check for updates and render a regular HTML anchor link if an update is available, ensuring a seamless update experience

      Instead of refreshing a webpage to check for updates, it's possible to create a custom link component that checks for updates before rendering the link. This component can periodically check the backend for a new version or use a timer to determine if the application has been reloaded recently. If an update is available, the component can render a regular HTML anchor link instead of a push state link provided by a library like React Router. This approach allows for seamless updates without requiring a full page reload or visually changing the user experience. This solution was suggested during a discussion on handling updates in web applications built using frameworks like React, Vue, or Angular.

    • Implementing hot reloading in web appsUse history API, service workers, or built-in hot reloading features in frameworks for seamless updates and reduced page reloads

      There are several effective methods to implement hot reloading in web applications for a seamless user experience. The first method involves utilizing the history API to load new applications as users interact with your site, allowing the next URL change to load the updated app. This method requires minimal custom code. Another approach is to use service workers, which can cache and check for updates to your scripts in the background, providing an event when a new version is available. This method also simplifies the process as service workers handle the checking and alerting. Additionally, some frameworks like Meteor and VuePress offer built-in hot reloading capabilities. In Meteor's case, it even sends data along with the code updates. These methods can significantly improve the development process by allowing real-time updates and reducing the need for full page reloads. However, it's important to consider the specific use case and choose the method that best fits your application's needs.

    • Using design elements to remind users to updateEffectively remind users to update by changing design elements, like icon colors, but avoid overuse to prevent annoyance.

      Developers can use simple design elements, like changing the color of an icon, to remind users to update their applications or websites. This approach, as discussed in the podcast, is used effectively by Google Chrome. However, it's important to note that at some point, users may start ignoring these reminders. Therefore, it's essential to strike a balance between reminding users frequently enough to ensure they have the latest version, but not so often that they become annoyed and ignore the notifications altogether. The podcast also touched upon the fact that this method can be applied to various platforms, not just apps, and that it requires minimal skill to implement. Overall, this is a simple yet effective way to keep users engaged and ensure they have the most up-to-date version of your application or website.

    Recent Episodes from Syntax - Tasty Web Development Treats

    790: State of JS 2023 Reactions

    790: State of JS 2023 Reactions

    Scott and Wes dive into the 2023 State of JavaScript survey, breaking down the latest trends and pain points in front-end frameworks, build tools, and JavaScript runtimes. Tune in for their hot takes and insights on what’s shaping the JavaScript landscape this year!

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    789: Do More With AI - LLMs With Big Token Counts

    789: Do More With AI - LLMs With Big Token Counts

    Join Scott and CJ as they dive into the fascinating world of AI, exploring topics from LLM token sizes and context windows to understanding input length. They discuss practical use cases and share insights on how web developers can leverage larger token counts to maximize the potential of AI and LLMs.

    Show Notes

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    CJ: X Instagram YouTube TwitchTV

    Randy: X Instagram YouTube Threads

    788: Supabase: Open Source Firebase for Fullstack JS Apps

    788: Supabase: Open Source Firebase for Fullstack JS Apps

    Scott and CJ chat with Paul Copplestone, CEO and co-founder of Supabase, about the journey of building an open source alternative to Firebase. Learn about the tech stack, the story behind their excellent documentation, and how Supabase balances business goals with open-source values.

    Show Notes

    • 00:00 Welcome to Syntax!
    • 00:30 Who is Paul Copplestone?
    • 01:17 Why ‘Supa’ and not ‘Super’?
    • 02:26 How did Supabase start?
    • 08:42 Simplicity in design.
    • 10:32 How do you take Supabase one step beyond the competition?
    • 12:35 How do you decide which libraries are officially supported vs community maintained?
      • 15:17 You don’t need a client library!
    • 16:48 Edge functions for server-side functionality.
    • 18:51 The genesis of pgvector.
    • 20:59 The product strategy.
    • 22:25 What’s the story behind Supabase’s awesome docs?
    • 25:26 The tech behind Supabase.
    • 35:46 How do you balance business goals with open source?
    • 42:01 What’s next for Supabase?
    • 44:15 Supabase’s GA + new features.
    • 48:24 Who runs the X account?
    • 50:39 Sick Picks + Shameless Plugs.

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    CJ: X Instagram YouTube TwitchTV

    Randy: X Instagram YouTube Threads

    787: You Should Try Vue.js

    787: You Should Try Vue.js

    Scott and CJ dive deep into the world of Vue.js, exploring what makes this frontend framework unique and why it stands out from React and Svelte. CJ gives a comprehensive tour, covering everything from getting started to advanced features like state management and Vue’s built-in styles.

    Show Notes

    Vue.js: The Documentary.

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    786: What Open Source license should you use?

    786: What Open Source license should you use?

    Scott and CJ dive into the world of open source, breaking down its meaning, benefits, and the various types of licenses you’ll encounter. From permissive licenses like MIT and Apache 2.0 to copy-left licenses such as GNU GPLv3, they’ll help you choose and apply the right license for your project.

    Show Notes

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    785: What’s Next for NextJS with Tim Neutkens

    785: What’s Next for NextJS with Tim Neutkens

    Scott and Wes dive into the world of Next.js with special guest Tim Neutkens from Vercel. They explore the latest updates, including the React Compiler and React Server Components, discussing their impact on developer workflows and the future of Next.js development.

    Show Notes

    • 00:00 Welcome to Syntax!
    • 00:30 What does the React Compiler do?
    • 05:04 Will React Compiler help with managing Context?
    • 06:39 What happens if you’re not using a React Compiler?
    • 09:30 Will this work on any NextJS version?
    • 12:18 What are React Server Components?
    • 16:28 Shipping all the data inside an encapsulated component.
    • 20:17 Clearing up the frustrations around retrofitting server components.
    • 23:13 Handing migration.
    • 28:30 Is this just a fetch request with props?
    • 36:41 How closely are the NextJS and React teams working?
    • 41:53 Will we ever get Async Client Components?
    • 43:52 Async Local Storage API.
    • 45:31 Turbopack.
    • 57:51 Sick Picks & Shameless Plugs.

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    784: Logging × Blogging × Testing × Freelancing

    784: Logging × Blogging × Testing × Freelancing

    In this Potluck episode, Scott and Wes tackle listener questions on modern blogging, website environmental impact, and using LangChain with LLMs. They also cover CSS hyphens, unit vs. integration testing, and balancing web development with new parenthood.

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    783: How We Built a Netflix Style “Save for Offline” Feature Into Syntax

    783: How We Built a Netflix Style “Save for Offline” Feature Into Syntax

    Scott and Wes dive into the world of browser caching for audio files, exploring the File System API and the Cache API. They discuss size restrictions across different browsers, how tools like Riverside.fm leverage IndexedDB, and walk through code examples for creating, retrieving, and managing cached audio data.

    Show Notes

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    782: The Developer’s Guide To Fonts with Stephen Nixon

    782: The Developer’s Guide To Fonts with Stephen Nixon

    Scott and CJ are joined by Stephen Nixon of ArrowType to delve into the world of fonts and type for developers. They explore the intricacies of font creation, the utility of variable fonts, and offer tips for making visually appealing typography on the web.

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    781: Potluck - The Value of TypeScript × Vue vs Svelte × Leetcode

    781: Potluck - The Value of TypeScript × Vue vs Svelte × Leetcode

    In this potluck episode of Syntax, Scott and CJ serve up a variety of community questions, from the nuances of beginner vs. advanced TypeScript to the pros and cons of SvelteKit. They also discuss falling out of love with React, shipping private packages via NPM, and the eternal struggle of always starting but never finishing projects.

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    Related Episodes

    Connectors, enablers and scouts: Innovation, financial services, Big Ben and UX

    Connectors, enablers and scouts: Innovation, financial services, Big Ben and UX
    Financial services innovation is exploding in London however; there is the emergence of a two-speed innovation culture where banks and start-ups work together and against each other in an uneasy and sometimes volatile partnership. This talk shares the most exciting directions from the big smoke but also looks at the huge opportunities for the experience design skills of idea connection, cross-disciplinary action and collaboration. Find out how what you know is more valuable than you think…

    13. Giddy: Unlocking DeFi for the Masses with Eric & Ethan Parker

    13. Giddy: Unlocking DeFi for the Masses with Eric & Ethan Parker

    Welcome to EARLY, the podcast about web3 business from Bankless Consulting.

    DSide's guests today are Eric and Ethan Parker, the founders of Giddy, a mobile crypto wallet that is designed to make self-custody easy and accessible for everyone. In this episode, they discuss this mission and how their focus on User Experience is crucial in achieving this goal.

    The idea for Giddy started as an ad-hoc consulting business, where they showed clients how to onboard onto DeFi and manage their private keys. They discovered that private keys were a significant barrier to entry for many people because of their complexity. Giddy's breakthrough was finding a balance between security and ease-of-use and enabling average people to recover their private keys if mismanaged, reducing the risk of a single point of failure.

    In terms of upcoming features for Giddy, they are focused on improving staking efficiency, increasing the number of staking pools provided by the app, and onboarding onto ETH Mainnet. The founders also discuss how they see DeFi continuing to disrupt the traditional finance industry. They believe that DeFi will eventually become mainstream, and traditional financial institutions will have to adapt or risk becoming irrelevant.

    Overall, Eric and Ethan Parker's insights into the current and future state of DeFi wallet technology were fascinating, and their mission to make DeFi accessible to everyone is admirable. It will be exciting to see how Giddy continues to evolve and innovate in this space!

    ***Timestamps***

    0:00 - Eric & Ethan Parker Background

    4:30 - Pathway from intro into DeFi to the founding of Giddy

    7:05 - The Mission of Giddy

    10:41 - High-level background on Gas Fees on Giddy

    13:25 - Why did you choose Polygon for your first blockchain?

    15:20 - What are some key considerations in Private Key Technology?

    30:11 - Thoughts on the current-state of the native mobile wallet sector?

    24:21 - Giddy’s future blockchain targets

    30:11 - Thoughts on the future-state of the native mobile wallet sector?

    32:24 - New features upcoming for Giddy

    34:20 - How do you see DeFi continue to disrupt the TradFi industry?

    38:20 - What other industries are ripe for Web3 Tech?

    ***Additional Resources***

    If you found this show informative, enlightening, fun, or just plain fire - please leave us a review on Apple podcasts to help us grow!

    Be sure to follow us and our guest on social media to unlock the latest web3 alpha.

    ***Links***