Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds

WebDevPro

49 Articles
Apurva Kadam
19 Sep 2024
11 min read
Save for later

WebDevPro #72: Open-Source Python Projects, VS Code Extensions, React Mindset, macOS Sequoia is available, Notes on OpenAI’s new o1 chain-of-thought models.

Apurva Kadam
19 Sep 2024
11 min read
Web development blogs, tutorials and resources inside!Advertise with Us|Sign Up to the Newsletter @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }Join Roman Lavrik from Deloitte Snyk hosted DevSecCon 2024Snyk is thrilled to announce DevSecCon 2024, Developing AI Trust Oct 8-9, a FREE virtual summit designed for DevOps, developer and security pros of all levels. Join Roman Lavrik from Deloitte, among many others, and learn some presciptive DevSecOps methods for AI-powered development.Save your Post!WebDevPro #72: Open-Source Python Projects, VS Code Extensions, React Mindset, macOS Sequoia is available, Notes on OpenAI’s new o1 chain-of-thought models.Hi ,Welcome to the web app development world with the 72nd edition of _webdevpro!In this edition we cover web development community discussions on:11 Open-Source Python Projects You Should Know in 202450 Must-Know VS Code Extensions for Faster DevelopmentWhy React Won the Front-End Race13 top open-source tools to ship your apps fasterReact Mindset: How New React Developers Should ThinkDon't miss our repository of manually curated collection of Tailwind CSS resources for web developers.In our relatively new section captures internet jibber-jabber about the mobile ecosystem:Scramble: Open-Source Grammarly AlternativeApple Mobile Processors Are Now Made in America. By TSMCCombining the Power of Python and the Flexibility of ExcelmacOS Sequoia is available, bringing iPhone Mirroring, Apple Intelligence to MacNotes on OpenAI’s new o1 chain-of-thought modelsToday's news covers Laravel, Ruby on Rails, Swift and Vue.P.S.: If you have any suggestions or feedback, or would like us to feature your project on a particular subject, please write to us. Just respond to this email!If you liked this installment, fill in our survey below and win a free Packt PDF.Take the Survey Now!Thanks,Apurva KadamEditor-in-Chief, PacktWeb Dev Community SpeakWhat are Web developers discussing? What are the latest tips and tricks? Shortcuts and experiments? Cool tutorials? Releases and updates? Find it all out here.11 Open-Source Python Projects You Should Know in 2024 - Python is one of the easiest programming languages, and it can be used in almost every technical field — whether it's data science, automation, IoT, AI, machine learning, or web development. And the most interesting part of Python is that it’s100% open-source, which makes it even more powerful and dynamic. Yet, most developers overlook Python when building their web applications which limits its potential. In this article, I've covered 11 open-source Python projects that every web developer should keep an eye on.50 Must-Know VS Code Extensions for Faster Development - Are you spending more time tweaking your code than writing it? Do you feel like your VS Code setup could use some superhero-level upgrades? Well, buckle up, because we’re about to zoom through the50 must-know VS Code extensionsthat will skyrocket your productivity and help you code like a pro! Whether you're coding for fun or trying to meet that impossible deadline these extensions are here to make your life easier.Why React Won the Front-End Race - React, the king of front-end frameworks—or should I say "libraries," since React purists will remind you every 10 minutes that it’snota framework. But let's not get caught up in the technicalities. If you're doing any serious front-end development in 2024 and you're not using React, then congratulations, you're a hipster. But for the rest of us mere mortals, React has emerged as the undeniable winner of the front-end race, and here’s why you should love it.13 top open-source tools to ship your apps faster - I have worked with many successful developers from different pre-seed and seed-stage companies. And they all had three reasons for their product's success: Ship fast, get customer feedback, and iterate faster. With that in mind, here is a curated a list of open-source tools you can use to build your products faster.React Mindset: How New React Developers Should Think - React, a popular JavaScript library for building user interfaces, has revolutionized front-end development by enabling developers to create reusable components and manage complex UIs efficiently. However, adopting the right mindset is crucial for new developers to navigate React's unique paradigms. Let’s explore the essential principles and strategies that shape the "React mindset."Web Dev ReposCheck this space for new repos, projects and tools each week! This week we bring you a collection of Tailwind UI Libraries, Components & Templates:Svelte Headless UI- Unofficial Svelte port of Headless UI.Xtend UI- Tailwind CSS components with advanced interactions and animations.Headless UI Float- Floating UI integration for Headless UI.Vanilla Components- Set of fully customizable Vue components.Sailboat UI- Modern UI framework for Tailwind CSS.Built At Lightspeed- Massive directory of 500+ Tailwind templates, starters and UI kits.Statichunt- Open source directory of hand-picked free and premium Tailwind templates & Starters.Trending TitlesMastering PyTorchBuy now at $41.99$28.99Building Production-Grade Web Applications with SupabaseBuy now at $39.99 $27.99Mastering Python Design PatternsBuy now $31.99$21.99Internet Jibber-JabberRandom curious musings and interesting words about Mobile Dev on the Internet.Scramble: Open-Source Grammarly Alternative - Scramble is an open-source Chrome extension that leverages AI to enhance your writing directly in your browser. It's designed to be a more customizable and privacy-respecting alternative to Grammarly.Apple Mobile Processors Are Now Made in America. By TSMC - TSMC’s first Arizona chips are now in production, and Apple is ready to be the first cab off the rank with mobile processors made using the foundry’s 5nm process. Apple’s A16 SoC, which first debuted two years ago in theiPhone 14 Pro, is currently being manufactured at Phase 1 of TSMC’s Fab 21 in Arizona in small, but significant, numbers, my sources tell me. Volume will ramp up considerably when the second stage of the Phase 1 fab is completed and production is underway, putting the Arizona project on track to hit itstarget for production in the first-half of 2025.Combining the Power of Python and the Flexibility of Excel - Python in Excel is now generally availablefor Windows users of Microsoft 365 Business and Enterprise. Last August, in partnership with Anaconda,we introducedan exciting new addition to Excel by integrating Python, making it possible to seamlessly combine Python and Excel analytics within the same workbook, no setup required. Since then, we’ve brought the power of popular Python analytics libraries such as pandas, Matplotlib, and NLTK to countless Excel users.macOS Sequoia is available, bringing iPhone Mirroring, Apple Intelligence, and more to Mac - macOS Sequoia, the latest version of the world’s most advanced desktop operating system, is available today as a free software update for Mac. macOS Sequoia brings exciting new features, including iPhone Mirroring, which expands Continuity by enabling access to and control of iPhone directly from macOS; big updates to Safari; a new Passwords app; and more. Starting next month, macOS Sequoia will introduce Apple Intelligence,1the personal intelligence system that combines the power of generative models with personal context to deliver intelligence that is incredibly useful and relevant while protecting users’ privacy and security.Notes on OpenAI’s new o1 chain-of-thought models - OpenAIreleased two major new preview modelstoday:o1-previewando1-mini(that mini one isnot a preview)—previously rumored as having the codename “strawberry”. There’s a lot to understand about these models—they’re not as simple as the next step up from GPT-4o, instead introducing some major trade-offs in terms of cost and performance in exchange for improved “reasoning” capabilities. Web Development TutorialAn excerpt from 'Django 5 by Example'By Antonio MeléCreating forms from modelsWe need to build a form to let users comment on blog posts. Remember that Django has two base classes that can be used to create forms:FormandModelForm. We used theFormclass to allow users to share posts by email. Now, we will useModelFormto take advantage of the existingCommentmodel and build a form dynamically for it.Edit theforms.pyfile of yourblogapplication and add the following lines:from .models import Commentclass CommentForm(forms.ModelForm):class Meta:model = Commentfields = ['name', 'email', 'body']To create a form from a model, we just indicate which model to build the form for in theMetaclass of the form. Django will introspect the model and build the corresponding form dynamically.Each model field type has a corresponding default form field type. The attributes of model fields are taken into account for form validation. By default, Django creates a form field for each field contained in the model. However, we can explicitly tell Django which fields to include in the form using thefieldsattribute or define which fields to exclude using theexcludeattribute. In theCommentFormform, we have explicitly included thename,email, andbodyfields. These are the only fields that will be included in the form.Read the 'Django 5 by Example' book now!What's Happening in Web Development?Your dose of the latest releases, news and happenings in the Web Development industry!LaravelTemPHPest PHP Extension for VSCode - TemPHPest is an extension for Visual Studio Code to improve writing PHP in VS Code. Created by Liam Hammett, this package adds rich PHP features that will enhance the experience tremendously while writing PHP.Chaperone, Defer, Cache::flexible, and more are now available in Laravel 11.23 - The Laravel team released v11.23 this week, with the Laracon US 2024 open-source updates likedefer(), concurrency, contextual container attritubes, and more.Ruby on RailsAdd Solid CableThis change starts to useSolid Cableas the default Action Cable adapter in production, configured as a separate queue database inconfig/database.yml. It keeps messages in a table and continuously polls for updates.Deprecate Benchmark.ms and add benchmark to the gemspecRuby plans to makebenchmarka bundled gem. This change sets up deprecation of Rails core extension in favour of the bundled gem for future.Deprecate unsigned_float and unsigned_decimal short-hand column methodsThis change deprecatesunsigned_floatandunsigned_decimalshort-hand column methods.As of MySQL 8.0.17, theUNSIGNEDattribute is deprecated for columns of typeFLOAT,DOUBLE, andDECIMAL. Consider using a simple CHECK constraint instead for such columns. More details can be foundhere.Allow BroadcastLogger to pass through kwargsSome Logger implementations may want extend the logging interface to provide optional information via keyword argument. This change enhancesBroadcastLoggerto allow the same.Fix travel_to to set usec 0 when with_usec is false and the given argument is String or DateTimeBefore this changetravel_todid not setusecto0depending on the argument (StringorDateTime). This PR fixes this behavior to make it uniform.Fix .left_outer_joins when multiple associations have the same childThis change fixes an issue where.left_outer_joinsused with multiple associations that have the same child association but different parents does not join all parents. Previously, using.left_outer_joinswith the same child association would only join one of the parents. After this fix it now correctly joins both parents.SwiftAnnouncing Swift 6 – Swift announced the general availability of Swift 6. This is a major new release that expands Swift to more platforms and domains. Many people know of Swift as a language for app development, with a million apps on the App Store. But Swift is great for more than just apps. Swift’s safety, speed, and approachability make it a great choice for many other use cases including libraries, internet-scale services, and the most performance-critical and secure code. Swift 6 scales even further through new low-level programming features, an embedded Swift language subset, expanded Linux and Windows support, new cross-platform APIs including the new Swift Testing library, and more.VueAnnouncing Vue 3.5 - The release of Vue 3.5 "Tengen Toppa Gurren Lagann" is here! This minor release contains no breaking changes and includes both internal improvements and useful new features. We will cover some highlights in this blog post - for a full list of changes and new features, please consultthe full changelog on GitHub.And that’s a wrap.P.S.: If you have any suggestions or feedback, or would like us to feature your project on a particular subject, please write to us. Just respond to this email! *{box-sizing:border-box}body{margin:0;padding:0}a[x-apple-data-detectors]{color:inherit!important;text-decoration:inherit!important}#MessageViewBody a{color:inherit;text-decoration:none}p{line-height:inherit}.desktop_hide,.desktop_hide table{mso-hide:all;display:none;max-height:0;overflow:hidden}.image_block img+div{display:none}sub,sup{line-height:0;font-size:75%}#converted-body .list_block ol,#converted-body .list_block ul,.body [class~=x_list_block] ol,.body [class~=x_list_block] ul,u+.body .list_block ol,u+.body .list_block ul{padding-left:20px} @media (max-width: 100%;display:block}.mobile_hide{min-height:0;max-height:0;max-width: 100%;overflow:hidden;font-size:0}.desktop_hide,.desktop_hide table{display:table!important;max-height:none!important}} @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }
Read more
  • 0
  • 0
  • 25611

Apurva Kadam
26 Sep 2024
10 min read
Save for later

WebDevPro #73: Open-source AI repositories, Important React Hooks, Chrome Extensions, New Features in CSS, FlowTracker, Learn Git Branching.

Apurva Kadam
26 Sep 2024
10 min read
Web development blogs, tutorials and resources inside!Advertise with Us|Sign Up to the Newsletter @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }Experience the easiest File API on the Internet!Add file uploads and retrieval in minutes so you can focus on building your app — because you’ve got better things to code than infrastructure.Try now!WebDevPro #73:Open-source AI repositories, Important React Hooks, Chrome Extensions, New Features in CSS, FlowTracker, Learn Git Branching.Hi ,Welcome to the web app development world with the 73rd edition of _webdevpro!In this edition we cover web development community discussions on:14 Case Studies: Master System Design in a Month8 must-know open-source repositories to build cool AI appsMastering React: A Guide to the Most Important React Hooks21 Chrome Extensions to Boost Your Productivity11 New Features and Functions Arriving in CSSDon't miss our repository of manually curated collection of Tailwind CSS resources for web developers.In our relatively new section captures internet jibber-jabber about the mobile ecosystem:Warning: macOS Sequoia 15 may bypass DNS encryptionFlowTrackerLearn Git BranchingAdze: Universal Logging for Modern JavaScriptBan warnings fly as users dare to probe the “thoughts” of OpenAI’s latest modelToday's news covers Laravel, Ruby on Rails, Soring.P.S.: If you have any suggestions or feedback, or would like us to feature your project on a particular subject, please write to us. Just respond to this email!If you liked this installment, fill in our survey below and win a free Packt PDF.Take the Survey Now!Thanks,Apurva KadamEditor-in-Chief, PacktGrow, Make a Difference, and Win! Participate in the Latest Developer Nation Survey!What changed in the way you code for 2024? What has happened in the tech world in the last months? Take this shorter version of the Developer Nation survey, learn about new tools, influence the future of development and share your insights with the world!Take the Survey!Web Development Community InsightsFellow Dev Discussions on the Internet.14 Case Studies: Master System Design in a Month - Are you looking tomaster system designin record time? The fastest way to accelerate your learning is by studying real-world architectures of companies that handle massive scale and complexity. We've curated 14 essential case studies that reveal the secrets behind some of the world's most efficient and scalable systems. Dive in, and in just one month—or even less—you'll significantly elevate your system design prowess.8 must-know open-source repositories to build cool AI apps - As someone building AI apps, I see a massive spike in user interest, and this is undoubtedly the best time to master building AI apps. So, I have compiled a list of 8 open-source repositories you can use now to build robust AI systems.Mastering React: A Guide to the Most Important React Hooks - React Hooks were added to React in version 16.8, and they’ve completely changed the way we write React apps. Before hooks, we had to use class components to manage state and lifecycle methods, which could make our code complicated, especially in larger apps. Hooks allow us to use functional components to handle things like state, side effects, and performance optimization more easily.21 Chrome Extensions to Boost Your Productivity - As software developers, we always seek ways to make our jobs easier and improve productivity. Chrome extensions are very useful tools when it comes to increasing efficiency and boosting the productivity. In this blog post, I will share some of the best developer Chrome extensions.11 New Features and Functions Arriving in CSS - On September 13, 2024, the CSS Working Group released thefirst Public Working Draft for the CSS Values and Units Module Level 5. It is an extension of theprevious levelthat includes some interesting additions. Things that were unimaginable not so long ago are making their way into the specs: random values, using attributes as values in any property, being able to use the order in calculations... It looks promising. Many of these features have a common denominator: they simplify the CSS code. This blog lists all the new changes.Web Dev ReposCheck this space for new repos, projects and tools each week! This week we bring you a collection of Tailwind UI Libraries, Components & Templates:📚 Tailkits- Curated Tailwind CSS components, templates, UI kits, resources, tools & more.📚STDF- Mobile web component library based on Svelte and Tailwind CSS.📚TWC - Lightweight library to create reusable React + Tailwind CSS components.📚Tremor- React library to build charts and dashboards with Tailwind CSS.📚Preline UI- Open-source Tailwind CSS components library for any needs.🧩TailBlocks- 60+ different ready to use Tailwind CSS blocks.🧩Tailwind Components- Community-driven Tailwind CSS component repository.Trending TitlesMastering PyTorchBuy now at $41.99$28.99Building Production-Grade Web Applications with SupabaseBuy now at $39.99 $27.99Mastering Python Design PatternsBuy now $31.99$21.99Internet Jibber-JabberRandom curious musings and interesting words about Web Dev on the Internet.Warning: macOS Sequoia 15 may bypass DNS encryption - While investigating a DNS-related issue on macOS 15 Sequoia, we discovered that some DNS requests—particularly those made via certain low-level legacy APIs—were not being received by our proxy! There appears to be a bug in macOS Sequoia causingsomerequests to bypass the installed DNS proxy and be sent unencrypted to the system’s default name server instead.FlowTracker - Track data flowing through Java programs, gain new understanding at a glimpse. FlowTracker is a Java agent that tracks how a program reads, manipulates, and writes data. By watching a program run, it can show what file and network I/O happened, but more importantly connecting its inputs and outputs to show where its output came from. This helps you understand what any Java program's output means and why it wrote it.Learn Git Branching - Interested in learning Git? Well, you've come to the right place! "Learn Git Branching" is the most visual and interactive way to learn Git on the web; you'll be challenged with exciting levels, given step-by-step demonstrations of powerful features, and maybe even have a bit of fun along the way.Adze: Universal Logging for Modern JavaScript - Modern JavaScript frameworks likeNextJS,NuxtJS, andSvelteKitcombine your "back-end" and "front-end" code in the same location.Adze is universalwhich means it can be executed on theserver side or the browser sidewithout any extra considerations. Use it anywhere!Ban warnings fly as users dare to probe the “thoughts” of OpenAI’s latest model - OpenAI truly does not want you to know what its latest AI model is "thinking." Since the companylaunchedits "Strawberry" AI model family last week, touting so-called reasoning abilities with o1-preview and o1-mini, OpenAI has been sending out warning emails and threats of bans to any user who tries to probe how the model works. Web Development TutorialAn excerpt from 'Django 5 by Example'By Antonio MeléCreating templates for the comment formWe will create a template for the comment form that we will use in two places:In the post detail template associated with thepost_detailview to let users publish comments.In the post comment template associated with thepost_commentview to display the form again if there are any form errors.We will create the form template and use the{% include %}template tag to include it in the two other templates.In thetemplates/blog/post/directory, create a newincludes/directory. Add a new file inside this directory and name itcomment_form.html.The file structure should look as follows:templates/blog/post/includes/comment_form.htmldetail.htmllist.htmlshare.htmlEdit the newblog/post/includes/comment_form.htmltemplate and add the following code:<h2>Add a new comment</h2><form action="{% url "blog:post_comment" post.id %}" method="post">{{ form.as_p }}{% csrf_token %}<p><input type="submit" value="Add comment"></p></form>In this template, we build theactionURL of the HTML<form>element dynamically using the{% url %}template tag. We build the URL of thepost_commentview that will process the form. We display the form rendered in paragraphs and we include{% csrf_token %}for CSRF protection because this form will be submitted with thePOSTmethod.Read the 'Django 5 by Example' book now!What's Happening in Web Development?Your dose of the latest releases, news and happenings in the Web Development industry!LaravelFetch PHP is a Lightweight HTTP Library Inspired by JavaScript's fetch()nk - Fetch PHPis a lightweight HTTP library inspired by JavaScript's fetch, bringing simplicity and flexibility to PHP HTTP requests. It uses the Guzzle client behind the scenes, offering synchronous and asynchronous requests with an easy-to-use API.Validate Console Command Input With the Command Validator Package - The Command Validator package byAndrea Marco Sartorimakes validating the input of console commands a cinch using Laravel's beloved Validator. All the Laravel Validator rules you know and love work with this package, along with any custom validation rules. This package integrates with your application's console commands using the providedValidatesInputtrait, which includes an abstractrules()method.Laravel 11.24 Released - The Laravel team released v11.24 this week, with new shorthands for Process fakes, anullOnUpdate()method for foreign key definitions, support for retrying multiple batch IDs when retrying jobs, and more. A quick note that as of the time of writing, auto-discovery of console commands in theapp/Console/Commandspath was broken in v11.24.0. This issue was quickly patched inv11.24.1.Ruby on RailsRails World 2024 is next weekSafe travels to everyone heading to Toronto! All sessions will be recorded and published on theRails YouTube channel, so subscribe to get notified.[RF Guides] Active Record ValidationsThe Foundation is still hard at work on updating the guides, this time they have made a pass through the Active Record Validations guide. Give it a look and help them spot any issues!Add ability to use multiple rate limits per controllerWith this PR, you can now add multiplerate_limitdefinitions in your controller.Remove Sucker Punch Active Job adapterSucker Punch existed before ActiveJob, but ultimately uses similar code to the async adapter under the covers. This adapter will be removed in a future release of Rails.Do not include redis by default in dev containerIn Rails 8, newly generated apps will use the Solid gems by default, which do not depend on Redis.Add if_not_exists option to add_enum_valueThis PR adds support to use the PostgreSQL optionIF NOT EXISTSwhen adding enum values viaadd_enum_value.Include options when instrumenting ActiveSupport::Cache::Store deleteNowcache_delete.active_supportandcache_delete_multi.active_supportevents will include the options passed to the delete method.Spring Spring Shell 3.2.8, 3.3.3 and 3.4.0-M2 are now available - Spring Shell3.2.8,3.3.3and3.4.0-M2has been released and are now available from Maven Central andMilestone Reporespectively.Spring Modulith 1.3 M3, 1.2.4, and 1.1.9 released - Spring Modulith 1.3 M3, 1.2.4, and 1.1.9 is here. While the latter two ship the usual bugfixes and service release bugfix upgrades, I am particularly delighted about the milestone releases as it contains two major community contributions.Spring Boot 3.4.0-M3 available now - Spring Boot3.4.0-M3has been released and is now available fromhttps://repo.spring.io/milestone. This release includes111 enhancements, documentation improvements, dependency upgrades, and bug fixes.And that’s a wrap.P.S.: If you have any suggestions or feedback, or would like us to feature your project on a particular subject, please write to us. Just respond to this email! *{box-sizing:border-box}body{margin:0;padding:0}a[x-apple-data-detectors]{color:inherit!important;text-decoration:inherit!important}#MessageViewBody a{color:inherit;text-decoration:none}p{line-height:inherit}.desktop_hide,.desktop_hide table{mso-hide:all;display:none;max-height:0;overflow:hidden}.image_block img+div{display:none}sub,sup{line-height:0;font-size:75%}#converted-body .list_block ol,#converted-body .list_block ul,.body [class~=x_list_block] ol,.body [class~=x_list_block] ul,u+.body .list_block ol,u+.body .list_block ul{padding-left:20px} @media (max-width: 100%;display:block}.mobile_hide{min-height:0;max-height:0;max-width: 100%;overflow:hidden;font-size:0}.desktop_hide,.desktop_hide table{display:table!important;max-height:none!important}} @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }
Read more
  • 0
  • 0
  • 23948

Kinnari Chohan
12 May 2025
10 min read
Save for later

WebDevPro #90: GSAP Goes Free, PostgreSQL 18 Beta Launches, Node 24 Overhauls Windows Support

Kinnari Chohan
12 May 2025
10 min read
Crafting the Web: Tips, Tools, and Trends for Developers Advertise with Us|Sign Up to the Newsletter @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } WebDevPro #90: GSAP Goes Free, PostgreSQL 18 Beta Launches, Node 24 Overhauls Windows Support 🌍🔍 Crafting the Web: Tips, Tools, and Trends for Developers New developer products provide a glimpse into the future of app building on HubSpot, including deeper extensibility, flexible UI, modern development tools, and more HubSpot’s AI-powered ecosystem presents a global opportunity projected to reach $10.2 billion by 2028. To fuel that growth potential, we are opening up our platform more –introducing an expanded set of APIs, customizable app UI, and tools that better support a unified data strategy. Start Building Today Hi , This week’s lineup brings practical upgrades across the board. GSAP is now free for commercial use, PostgreSQL 18 Beta 1 introduces performance boosts and JSON improvements, and Node.js 24 drops MSVC support in favor of LLVM. Figma launches new tools that blur the line between design and deployment, and OpenSearch 3.0 enhances vector performance for modern search workloads. Here’s what’s catching our attention: 💡 OpenAI Acquires Windsurf – A strategic move into agentic AI, bolstering autonomous decision-making capabilities 🎞️ GSAP Goes Free – One of the top JS animation libraries is now fully free for commercial use 🐘 PostgreSQL 18 Beta – MERGE boosts, JSON_TABLE support, and logical replication upgrades 🛠️ Node.js 24 Released – Drops MSVC, adds LLVM/Clang and new built-in features 🎨 Figma Sites & Make – AI-powered site builder and coding assistant mark Figma’s big bet on AI-led workflows 🧭 OpenSearch 3.0 – Vector database performance upgrades and native embedding model support We’ve also dropped a new workstation gear spotlight, rounded up expert insights on TypeScript, Rails, and microservices, and slipped in a dev tip to keep you from waging war with your browser cache. Let’s dig in! Want to be featured in WebDevPro? Share your tips or takes—we’re all ears! Advertise with us Interested in reaching our audience? Reply to this email or write to kinnaric@packt.com. Learn more about our sponsorship opportunities here. Latest news: what's new in web development? 🧑‍💻 From licensing changes to backend shifts, this week’s news covers updates that can reshape your workflow, whether you're building interfaces, managing data, or optimizing performance. 🎞️ GSAP Goes Free: Big news for frontend animation: GSAP (GreenSock Animation Platform) is now completely free for commercial use. It’s one of the most powerful, performance-friendly JS animation libraries—and now there’s no licensing friction. 🔍 Anthropic Launches Web Search API: Claude just got a browser. Anthropic has released a Web Search API that lets Claude models access up-to-date web content, positioning it as a direct rival to ChatGPT’s Browse and Perplexity AI. Expect tighter integrations and more real-time reasoning in future Claude-powered tools. 🛠️ Node.js 24 Drops MSVC Support: Node 24 is live and it’s cutting ties with Microsoft Visual C++ Build Tools (MSVC). Windows devs will now use LLVM/Clang by default. Also included: a built-in navigator object and experimental watch mode enhancements. 🎨 Figma Launches AI Site Builder: Figma’s new Sites tool lets users generate full websites from designs, while Make uses Claude 3.7 to turn prompts into working code. It’s a big step toward design-to-deploy, all inside Figma. 🐘 PostgreSQL 18 Beta Lands: PostgreSQL 18 Beta 1 is out, and it’s already turning heads. Highlights include MERGE performance boosts, JSON_TABLE support, authentication changes, and a fresh take on logical replication. Now’s the time to test those migrations. 🧭 OpenSearch 3.0 Dials Up Vector DB Performance: OpenSearch 3.0 is here with major improvements to vector search performance and native support for text embedding models. Devs building AI-powered search tools now have a serious open-source contender. 🧠 OpenAI Acquires Windsurf: In its latest talent-and-tech grab, OpenAI has acquired Windsurf, a stealthy AI agent startup focused on autonomous decision-making. It’s a signal that OpenAI is gearing up for more advanced agentic behavior in future models. These 4 bestsellers are worth $149 on their own. Get them plus 18 more top C# and .NET books in our Mega Bundle for just $18! Expert corner: what's the web community talking about?🎙 The dev community is digging into real-world patterns and pain points, smart migration paths, overengineered microservices, and better AI agent design. We’ve rounded up the sharpest takes, just for you. 🧩 Microservices Are Overkill (Until They’re Not): Thinking of going microservices too early? You’re not alone. This sharp teardown from Nexo argues that most startups hurt themselves by going distributed before they’ve nailed product-market fit. Focus on fast delivery first, modularity can come later. 🤖 What a Year of AI Agents Taught Us: SourceBot shares battle-won lessons from a year of building autonomous agents. TL;DR: Most agents fail without proper environment shaping, evaluation loops, and resource awareness. Bonus: great takeaways for devs building tool-using AI systems. 🛡️ Clean Authorization in Rails with Pundit: Looking to implement authorization in your Ruby on Rails app without making a mess? This DZone guide to Pundit shows how to separate business logic cleanly and keep things scalable as your app grows. 🔄 JavaScript to TypeScript, the Right Way: Blindly converting JS to TS often leads to friction. This Infoworld piece offers a sensible migration strategy: start with strict JSDoc, gradually layer in types, and reserve full conversions for stable code. 🧠 Reasoning with Model Context Protocols: Want to improve LLM context management across tasks and tools? This deep dive into Model Context Protocols (MCP) explores how Azure and open systems use structured memory and signals to keep AI agents grounded and goal-aligned. Ready to "Vibe Code" the right way? Don’t miss your shot to learn the AI coding workflow in just 3 hours. Register your interest now, and we'll email you as soon as booking for our event goes live! Desk it like it’s hot 🖥️ In this new section, we’re spotlighting the tech, tools, and accessories that turn a decent dev setup into a dialed-in command center. Whether you’re remote full-time or just upgrading your side-project space, these picks bring serious signal. Monitor: Dell UltraSharp U2723QE: A 27” 4K display with crisp resolution, accurate color, and a built-in USB-C hub to tame your cable chaos. Keyboard: Keychron K8 ProWireless, hot-swappable, and endlessly customizable. Great for devs who want mechanical feel with modern flexibility. Headphones: Sony WH-1000XM5Class-leading noise cancellation and buttery-soft comfort—perfect for deep work sessions or noisy coworking zones. Exclusive expert spotlight: From code to system design 🎤 As AI tools take over boilerplate generation, developers are being called to do more than just ship syntax. They’re being asked to understand architecture, supervise AI output, and design systems that scale. In this issue, Shalini Goyal shares why foundational system thinking is now a must-have, especially in AI-assisted workflows. It’s no longer just about how fast you can write code, but how well you can guide it, fit it into the bigger picture, and spot where things could go wrong. To dive deeper into that mindset, we’re also featuring Spring System Design in Practice, your playbook for designing robust, secure, high-performance web apps with Spring. Whether you're working with microservices or building from scratch, this book lays down the architectural thinking you need to stay relevant. 🎬 Bonus:We’ve dropped an extra clip from the conversation on X. Check it out and follow WebDevPro for more expert takes. Packt:You also mentioned something interesting, about how important it is becoming now to have system design imbibed right from the beginning. And it's not something anymore, you know, for someone at a higher position only to inculcate. Do you also see this change happening more rapidly now with the growth of AI and how AI is being used in development workflows, whereby you know you can probably get AI to write your own code, but what does that make you then? You need to start leveling up and starting to think about design a bit more rather than just writing code. Shalini Goyal: So with the greater involvement of AI and be it any company, any project, I think we are not looking for people who know the syntax really well because AI can help you with that. So the demand is not for the people who can write the code very quickly. The demand is actually for the people who have a strong foundation with any kind of programming language, with any kind of technical skill we are talking about here, and can actually give a supervision to the AI. Rather than, you know, just writing the boilerplate code or starting from scratch, they can use the AI to build something. And they know when the AI is going wrong, so they can provide supervision on top of it. And to add to it, definitely it's required that our engineers or the developers community the web developers or you know anybody in on that side they are, you know, able to look at a high level picture, can look at the complete architecture, relate to it, and ensure that their piece of code or their piece of work actually fits in well. It's adding value rather than saying just, you know, my piece of work works, is standalone or, you know, this is fine. They need to know the bigger picture. They need to know the whole architecture and how it's actually getting aligned. So the responsibility in that way is increasing on everyone's shoulders. And, you know, previously we used to look at, many companies used to look at the candidates from, “Can you write the syntax?”, “Do you know the syntax?”, “How fast can you write code?”, and all that. I think we're going away from that gradually and slowly, or maybe, um you know, very fast, you can say. AI in the spotlight 🔦 ⏳ AI and Social Are Killing the Click A new Enders Analysis report confirms what many devs suspected: the open web is losing visibility fast. As AI models like ChatGPT, Gemini, and Claude serve up full answers in search results, users are skipping websites altogether. Publishers are feeling the pain—nearly 50% have seen a drop in traffic—and TikTok is now a go-to for news and how-tos. 👀 SEO? It’s no longer enough. 🔍 The new game: Generative Engine Optimization (GEO) 📱 And platform-native content is winning the attention war. For devs, this isn’t just a traffic dip—it’s a signal to rethink how we design for discovery in an AI-first world. Developer tip of the week 💡 Avoid Hard Refresh Dependency in Dev Mode If you find yourself constantly hitting Cmd+Shift+R (or Ctrl+F5) during development, there’s likely a caching misstep in your setup. Instead: ✅ Use cache-busting headers (Cache-Control: no-store) for dev servers ✅ Add hashed filenames for static assets in production ✅ Automate reloads with tools like Vite, Parcel, or Webpack HMR This simple shift saves time, reduces bugs, and keeps you from chasing phantom layout glitches caused by stale assets. And that's a wrap 🎬 That’s it for this issue! Have something to share: a tool, setup, or community insight? Hit reply or send it our way. We love featuring what real devs are building, breaking, and learning. Until next week! Cheers! Kinnari Chohan, Editor-in-chief SUBSCRIBE FOR MORE AND SHARE IT WITH A FRIEND! *{box-sizing:border-box}body{margin:0;padding:0}a[x-apple-data-detectors]{color:inherit!important;text-decoration:inherit!important}#MessageViewBody a{color:inherit;text-decoration:none}p{line-height:inherit}.desktop_hide,.desktop_hide table{mso-hide:all;display:none;max-height:0;overflow:hidden}.image_block img+div{display:none}sub,sup{font-size:75%;line-height:0}#converted-body .list_block ol,#converted-body .list_block ul,.body [class~=x_list_block] ol,.body [class~=x_list_block] ul,u+.body .list_block ol,u+.body .list_block ul{padding-left:20px} @media (max-width: 100%;display:block}.mobile_hide{min-height:0;max-height:0;max-width: 100%;overflow:hidden;font-size:0}.desktop_hide,.desktop_hide table{display:table!important;max-height:none!important}} @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }
Read more
  • 0
  • 0
  • 21793

Apurva Kadam
12 Sep 2024
9 min read
Save for later

WebDevPro #71: Frontend Dev + Data Structures & Algorithms, GitHub Repos, Frontend Apps 10x Faster, Chrome extensions, EarthKart, Google Workspace mandates OAuth.

Apurva Kadam
12 Sep 2024
9 min read
Web development blogs, tutorials and resources inside!Advertise with Us|Sign Up to the Newsletter @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }Get your Ticket Now!WebDevPro #71: Frontend Dev + Data Structures & Algorithms, GitHub Repos, Frontend Apps 10x Faster, Chrome extensions, EarthKart, Google Workspace mandates OAuth.Hi ,Welcome to the web app development world with the 71st edition of _webdevpro!In this edition we cover web development community discussions on:Frontend Dev + Data Structures & AlgorithmsGitHub Repos Essential for Every React DeveloperHow to Build Frontend Apps 10x Faster10 Chrome extension to make you 10x web developerProvide context to GitHub Copilot ChatDon't miss our repository of manually curated collection of Tailwind CSS resources for web developers.In our relatively new section captures internet jibber-jabber about the mobile ecosystem:A memory layer for personalised AIIsmyblueyourblue?DawarichEarthKart: Google Maps Driving SimulatorDeadline looms: Google Workspace mandates OAuth by September 30Today's news covers Laravel, Spring and Svelte.P.S.: If you have any suggestions or feedback, or would like us to feature your project on a particular subject, please write to us. Just respond to this email!If you liked this installment, fill in our survey below and win a free Packt PDF.Take the Survey Now!Thanks,Apurva KadamEditor-in-Chief, PacktWeb Dev Community SpeakWhat are Web developers discussing? What are the latest tips and tricks? Shortcuts and experiments? Cool tutorials? Releases and updates? Find it all out here.Frontend Dev + Data Structures & Algorithms - How DSA Can Power Your React App - Frontend focused interviews often don’t care about DSA at all. And for those of us that remember studying DSA at school/college, all the examples felt purely algorithmic (for good reason), but there were hardly any examples or guidance on how the products we use every day leverage this concept. Here are a few data structures that you can leverage in your React app today!GitHub Repos Essential for Every React Developer - React is one of the most used frameworks for building frontend today. With many frameworks of React, more options are taking React to the next level. So, learning React is a must when learning web development especially when you are involved in frontend development. Last year’sStackOverflowsurvey shows that React is the most used web framework for building frontend. This blog looks into some of the essential React-based GitHub repositories that you can look into to learn and improve in React.How to Build Frontend Apps 10x Faster - We have all been there when the backend isn't ready with APIs so the frontend developers manually hardcode the response. It's time consuming and comes with a lot of indirect problems. This article explores how Requestly can help you build frontend applications at least 10x faster by reducing dependency on backend developers.10 Chrome extension to make you 10x web developer - In webdevelopment, having the right tools at your disposal can make a significant difference in your workflow.Chrome extensions have become essential for developers and designers, as they offer everything from debugging aids to design inspiration directly in your browser.Here's a selection of top Chrome extensions that every web developer and designer should consider adding to their toolkit.Provide context to GitHub Copilot Chat - Context is key. This is true across all forms of communication, including with generative AI assistants like GitHub Copilot. When you're interacting with GitHub Copilot Chat, there's numerous features available to you to help point Copilot in the right direction, to help it understand what you're looking for. In turn, the suggestions you'll receive will improve! Let's walk through some of the most powerful techniques to help you get the most out of the tool.Web Dev ReposCheck this space for new repos, projects and tools each week! This week we bring you a collection of Tailwind UI Libraries, Components & Templates:Tailwind UI- Component library made with Tailwind CSS.Headless UI- Completely unstyled, fully accessible UI components.Catalyst- Beautiful, accessible application UI kit for React.VueTailwind- Vue.js UI library using Tailwind CSS.Flowbite- Open-source component library built with Tailwind CSS.a17t- Atomic design toolkit built to extend Tailwind CSS.tails-ui- React UI library using Tailwind CSS.tails- Hand-crafted templates and components using Tailwind CSS.Internet Jibber-JabberRandom curious musings and interesting words about Mobile Dev on the Internet.A memory layer for personalised AI -Mem0(pronounced as "mem-zero") enhances AI assistants and agents with an intelligent memory layer, enabling personalized AI interactions. Mem0 remembers user preferences, adapts to individual needs, and continuously improves over time, making it ideal for customer support chatbots, AI assistants, and autonomous systems.Ismyblueyourblue? - People have different names for the colors they see.Language can affect how we memorize and name colors. This is a color naming test designed to measure your personal blue-green boundary. Color perception is tricky to measure–vision scientists use specialized calibrated equipment to color perception. Graphic designers use physical color cards, such as thosemade by Pantone, so that they can communicate colors unambiguously. Here we use your monitor or phone to test how you categorize colors, which is far from perfect, since your calibration may differ from mine.Dawarich - Dawarich is a self-hosted web application to replace Google Timeline (aka Google Location History). It allows you to import your location history from Google Maps Timeline and Owntracks, view it on a map and see some statistics, such as the number of countries and cities visited, and distance traveled.EarthKart: Google Maps Driving Simulator - You can Drive on Google Maps! Discover the thrill of racing through the world's most iconic locations right from your device! EarthKart is a real-world driving simulator that combines the speed and excitement of kart racing with the revolutionary integration of Google Maps. Experience the ultimate Google Earth driving simulator as you traverse through the urban jungles of New York, glide along the Great Wall of China, or speed through the winding alleys of Marrakech. The entire Earth is your racetrack in this drive on Google Maps Driving Game!Deadline looms: Google Workspace mandates OAuth by September 30 - Google Workspace administrators, consider yourselves on notice: In less than a month, many third-party apps (mail, calendar, etc.) will stop connecting to Workspace accounts. The change, effective September 30, will see Google disable access to "less secure apps," or LSAs, for all Google Workspace accounts. Those who haven't checked their Workspace Admin consoles recently will notice that LSA settings have already been removed, so there's no avoiding this change. Web Development TutorialAn excerpt from 'Django 5 by Example'By Antonio MeléCreating forms with DjangoLet’s start by building the form to share posts. Django has a built-in forms framework that allows you to create forms easily. The forms framework makes it simple to define the fields of the form, specify how they have to be displayed, and indicate how they have to validate input data. The Django forms framework offers a flexible way to render forms in HTML and handle data.Django comes with two base classes to build forms:1. Form: This allows you to build standard forms by defining fields and validations.2. ModelForm: This allows you to build forms tied to model instances. It provides all the functionalities of the baseFormclass, but form fields can be explicitly declared, or automatically generated, from model fields. The form can be used to create or edit model instances.First, create aforms.pyfile inside the directory of yourblogapplication and add the following code to it:from django import formsclass EmailPostForm(forms.Form):name = forms.CharField(max_length=25)email = forms.EmailField()to = forms.EmailField()comments = forms.CharField(required=False,widget=forms.Textarea)We have defined our first Django form. TheEmailPostFormform inherits from the baseForm class. We use different field types to validate data accordingly...read more.Read the 'Django 5 by Example' book now!What's Happening in Web Development?Your dose of the latest releases, news and happenings in the Web Development industry!LaravelUnoPim is a Product Information Management System Built With Laravel - UnoPim is an open-source Product Information Management (PIM) system built on the Laravel framework. You can use it to organize, manage, and enrich product information in one central place.SpringSpring Tools 4.25.0 released - The 4.25.0 release of the Spring Tools 4 for Visual Studio Code, Eclipse and Theia. Important highlights include:(Spring Boot)Code lenses added to explain SPEL expressions and AOP annotations with Copilot (VSCode only)(Spring Boot)Symbols, content-assist, and navigation support added for@Named,@Resource,@Inject, and@ConditionalOnResource(Spring Boot)Syntax highlighting and validation for CRON expressions inside@Scheduledannotation (VSCode only)(Spring Boot)Navigating to definition for some elements of Data Queries embedded into@QueryannotationsSvelteLibraries, Tools & ComponentsThis gooey tooltipis fluid and satisfyingselect-kitis a one-stop solution for all your select/combobox/autocomplete needsssgoiis a page transition library thats support animated page transition with every browser - including Safari@svelte-put/preactionis a proof-of-concept Svelte preprocessor that allows usage of "preaction" - an extension to Svelte action with the ability to add static attributes on server-sidesvelte-standaloneis a series of configurations that aims to process any svelte widget to a single standalone javascript filesvelte-cartesianis a single component that helps with rendering all prop combinations of a provided component for visual regression testingTrending Titles50 Algorithms Every Programmer Should KnowBuy now at $39.99$27.98Modern Generative AI with ChatGPT and OpenAI ModelsBuy now at $39.99 $27.98Learn React with TypeScriptBuy now $35.99$24.99And that’s a wrap.P.S.: If you have any suggestions or feedback, or would like us to feature your project on a particular subject, please write to us. Just respond to this email! *{box-sizing:border-box}body{margin:0;padding:0}a[x-apple-data-detectors]{color:inherit!important;text-decoration:inherit!important}#MessageViewBody a{color:inherit;text-decoration:none}p{line-height:inherit}.desktop_hide,.desktop_hide table{mso-hide:all;display:none;max-height:0;overflow:hidden}.image_block img+div{display:none}sub,sup{line-height:0;font-size:75%}#converted-body .list_block ol,#converted-body .list_block ul,.body [class~=x_list_block] ol,.body [class~=x_list_block] ul,u+.body .list_block ol,u+.body .list_block ul{padding-left:20px} @media (max-width: 100%;display:block}.mobile_hide{min-height:0;max-height:0;max-width: 100%;overflow:hidden;font-size:0}.desktop_hide,.desktop_hide table{display:table!important;max-height:none!important}} @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }
Read more
  • 0
  • 0
  • 14068

Apurva Kadam
06 Sep 2024
12 min read
Save for later

WebDevPro #70: Web Storage, Frontend Resources V2, React Frameworks Comparison, Window Size in Pure CSS, Claude for Enterprise, TinyGPT.

Apurva Kadam
06 Sep 2024
12 min read
Web development blogs, tutorials and resources inside!Advertise with Us|Sign Up to the Newsletter @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }Developing for iOS? Setapp's 2024 report on the state of the iOS market in the EU is a must-seeHow do users in the EU find apps? What's the main source of information about new apps? Would users install your app from a third-party app marketplace?Set yourself up for success with these and more valuable marketing insights in Setapp Mobile's report iOS Market Insights for EU.Get Insights FreeWebDevPro #70: Web Storage,Frontend Resources V2, React FrameworksComparison, Window Size in Pure CSS, Claude for Enterprise, TinyGPT.Hi ,Welcome to the web app development world with the 70th edition of _webdevpro!In this edition we cover web development community discussions on:Understanding Web Storage: LocalStorage, SessionStorage, and CookiesFrontend Resources V29 open-source gems to become the ultimate developerComparing The Top React FrameworksGet Window Size in Pure CSSDon't miss our repository of manually curated collection of Tailwind CSS resources for web developers.In our relatively new section captures internet jibber-jabber about the mobile ecosystem:CSS @property and the New StyleAnnouncing The Kagi AssistantClaude for EnterpriseBuilding LLMs from the Ground Up: A 3-hour Coding WorkshopTinyGPTThe web's clipboard, and how it stores data of different typesMajor book publishers defeat Internet Archive appeal over digital scanningToday's news covers Angular, Django, Laravel, Ruby on Rails and Svelte.P.S.: If you have any suggestions or feedback, or would like us to feature your project on a particular subject, please write to us. Just respond to this email!If you liked this installment, fill in our survey below and win a free Packt PDF.Take the Survey Now!Thanks,Apurva KadamEditor-in-Chief, PacktWeb Dev Community SpeakWhat are Web developers discussing? What are the latest tips and tricks? Shortcuts and experiments? Cool tutorials? Releases and updates? Find it all out here.Understanding Web Storage: LocalStorage, SessionStorage, and Cookies - In modern web development, managing data on the client side has become an essential skill. Developers often rely on localStorage, sessionStorage, and cookies to store data in the user’s browser. While these three mechanisms serve similar purposes, they have distinct differences in terms of capacity, persistence, and use cases. In this blog, we'll explore these differences, with examples, to help you better understand when and how to use each one.Frontend Resources V2 - This collection is packed with a wide range of tools that cover everything from building stunning user interfaces to fine-tuning performance and much more. These resources have been invaluable. Hoping they’ll be just as useful for you.9 open-source gems to become the ultimate developer - For me, AI is everywhere.But sometimes, it's hard to understand what a fun project is and what project you can use for your website. I have curated a list of 9 open-source repositories you can implement into your repository tomorrow!Comparing The Top React Frameworks - When learning React, we all start with the CRA (create-react-app) library. It is a good place to begin the journey of React but using it for building a project today is not a good idea. There are many reasons to switch from traditional CRA to the modern framework of React, which can offer many more features. There are various alternatives based on your requirements such as SSR, performance, etc. In this blog, we are going to investigate some of the top alternatives that you can use instead of CRA.Get Window Size in Pure CSS - We all know that CSS used to be the most challenging part of web development. However, it has become even harder nowadays. You wouldn't believe it, but now CSS can define properties, do the math, and even directly get the window size! This article will show you how to do it.Web Dev ReposCheck this space for new repos, projects and tools each week! This week we bring you a collection of Tailwind CSS tools:Tailwind Grid Generator- Drag and drop Tailwind CSS grid generator.Tailwind Box Shadows Generator- Box Shadows generator.Windframe- Tailwind CSS drag and drop builder to rapidly build and prototype websites.Static Tailwind- The most used Tailwind classes, precompiled, with no build step.Design GUI- AI-powered Chrome extension for managing colors in daisyUI and shadcn/ui.Internet Jibber-JabberRandom curious musings and interesting words about Mobile Dev on the Internet.CSS @property and the New Style - The@propertyat-rule recently gained support across all modern browsers, unlocking the ability to explicitly define a syntax, initial value, and inheritance for CSS custom properties. It seems like forever ago that CSS Houdini and itsCSS Properties and Values APIwere initially introduced. The ensuing demo explores what's possible in the next generation of CSS.Announcing The Kagi Assistant - Kagihas been thoughtfully integrating AI into our search experience, creating a smarter, faster, and more intuitive search. This includesQuick Answerwhich delivers knowledge instantly for many searches (can be activated by appending ? to the end of your searches),Summarize Pagefor the quick highlights of a web page, and even the ability toask questions about a web pagein your search results. And all of these features are on-demand and ready when you need them. Today we’re excited to unveil the Assistant by Kagi. A user-friendly Assistant that has everything you want and none of the things you don’t (such as user data harvesting, ads & tracking). Major features included in this blog.Claude for Enterprise - TheClaude Enterprise planto help organizations securely collaborate with Claude using internal knowledge is here. Teams with more context do better work. The Claude Enterprise plan offers an expanded 500K context window, more usage capacity, and a native GitHub integration so you can work on entire codebases with Claude. It also includes enterprise-grade security features—like SSO, role-based permissions, and admin tooling—that help protect your data and team.Building LLMs from the Ground Up: A 3-hour Coding Workshop - If you’d like to spend a few hours this weekend to dive into Large Language Models (LLMs) and understand how they work, I've prepared a 3-hour coding workshop presentation on implementing, training, and using LLMs.TinyGPT - TinyGPT is a minimalistic library for implementing, training, and performing inference on GPT models from scratch in Python, with no external dependencies. Inspired byNanoGPT,Tinygrad,Pytorch, andMLX, TinyGPT aims to be as educational as possible, avoiding complex optimizations that might obscure the underlying concepts.The web's clipboard, and how it stores data of different types - If you've been using computers for a while, you probably know that the clipboard can store multiple types of data (images, rich text content, files, and so on). As a software developer, it started frustrating me that I didn't have a good understanding of how the clipboard stores and organizes data of different types. I recently decided to unveil the mystery that is the clipboard and wrote this post using my learnings. We'll focus on the web clipboard and its APIs, though we'll also touch on how it interacts with operating system clipboards.Major book publishers defeat Internet Archive appeal over digital scanning - A U.S. appeals court sided with four major book publishers that accused the nonprofit Internet Archive of illegally scanning copyrighted works and lending them to the public online for free and without permission. The 2nd U.S. Circuit Court of Appeals in Manhattan agreed with Hachette Book Group, HarperCollins Publishers, John Wiley & Sons and Penguin Random House that the archive's "large scale" copying and distribution of entire books did not amount to "fair use." Web Development TutorialAn excerpt from 'Django 5 by Example'By Antonio MeléUsing a class-based view to list postsTo understand how to write class-based views, we will create a new class-based view that is equivalent to thepost_listview. We will create a class that will inherit from the genericListViewview offered by Django.ListViewallows you to list any type of object.Edit theviews.pyfile of theblogapplication and add the following code to it:from django.views.generic import ListView class PostListView(ListView): """ Alternative post list view """ queryset = Post.published.all() context_object_name = 'posts' paginate_by = 3 template_name = 'blog/post/list.html'ThePostListViewview is analogous to thepost_listview we built previously. We have implemented a class-based view that inherits from theListViewclass. We have defined a view with the following attributes:We usequerysetto use a custom QuerySet instead of retrieving all objects. Instead of defining aquerysetattribute, we could have specifiedmodel = Postand Django would have built the genericPost.objects.all()QuerySet for us.We use the context variablepostsfor the query results. The default variable isobject_listif you don’t specify anycontext_object_name.We define the pagination of results withpaginate_by, returning three objects per page.We use a custom template to render the page withtemplate_name. If you don’t set a default template,ListViewwill useblog/post_list.htmlby default.Now, edit theurls.pyfile of theblogapplication, comment the precedingpost_listURL pattern, and add a new URL pattern using thePostListView class.Read the 'Django 5 by Example' book now!What's Happening in Web Development?Your dose of the latest releases, news and happenings in the Web Development industry!AngularThe future is standalone! - Angular v19 will makestandalone: truethe default for components, directives, and pipes. In v14 we introduced a developer preview“standalone” feature, which made it possible for the first time to build an application that didn’t rely on NgModules. Since then, standalone has been stabilized, and has become the recommended way to write Angular code by the Angular team. The CLI generates components withstandalone: trueby default, and the Angular docs teach standalone first to all new Angular developers.DjangoDjango security releases issued: 5.1.1, 5.0.9, and 4.2.16 - In accordance withour security release policy, the Django team is issuing releases forDjango 5.1.1,Django 5.0.9, andDjango 4.2.16. CVE-2024-45230: Potential denial-of-service vulnerability indjango.utils.html.urlize(). urlizeandurlizetruncwere subject to a potential denial-of-service attack via very large inputs with a specific sequence of characters.LaravelChaperone Eloquent Models in Laravel 11.22 - The Laravel team released v11.22 this week, with thechaperone()Eloquent method for inverse relations, support for passing backed Enums to Queuable methods, the ability to pass backed Enums to route->name()and->domain()methods, and more.PostgreSQLPostgreSQL 17 RC1 Released! - The PostgreSQL Global Development Group announces that the first release candidate of PostgreSQL 17 is now available for download. As a release candidate, PostgreSQL 17 RC 1 will be mostly identical to the initial release of PostgreSQL 17, though some more fixes may be applied prior to the general availability of PostgreSQL 17.Ruby on RailsAdd Solid CacheSolid Cache will be the new default caching backend for production deployments out of the box in Rails 8.Add Solid QueueConfigure Solid Queue as the default Active Job backend alongside Solid Cache. Both can be skipped with--skip-solid.Allow registering test directories for code statisticsMake it easier for third party gems, to register test directories.Silence healthcheck requests from the logAddRails::Rack::SilenceRequestmiddleware and use it viaconfig.silence_healthcheck_path = pathto silence requests to “/up”. This prevents the Kamal-required healthchecks from clogging up the production logs.Fix authentication generator double signaturePreviously the session id stored in the cookies was signed twice: withcookies.signedandsession.signed_id.Update TimeWithZone inspect to match Ruby 1.9+ ISO 8601 formatThis updatesTimeWithZone#inspectto match the ISO 8601 style time which Ruby has used forTime#inspectsince 1.9+. This makes TimeWithZone match Time’s formatting except for the precision in the timestamp and including the zone’s name. This only impacts#inspectmethod, as#to_shad already been updated to use the new ISO 8601 style formatting.Update Rails Routing GuideReviewed version can be read onEdge Guides.Update Active Record Associations GuideReviewed version can be read onEdge Guides.SvelteWhat's new in Svelte and Language Tools$state.frozenhas been replaced with$state.raw(5.0.0-next.218,Docs,#12808)$state.ishas been removed. RIP, little guy (#12916)svelte:optionsnow lets you set thecss: "inject"compiler option on a per-component basis (5.0.0-next.209,#12660)<svelte:component>is now unnecessary in runes mode and therefore is deprecated (5.0.0-next.203/217,#12646and#12694):globalis now allowed in more places - making it easier to use in<style>tags and fixing issues with Tailwind's@apply(5.0.0-next.199,Docs,#12560)Svelte's typescript definition generator that comes with@sveltejs/packagewill now warn when its diagnostics detect that ad.tsfile was not generated (svelte2tsx@0.7.14,#2428)You can now specify a tsconfig inemitDts- helpful when working in a monorepo (svelte2tsx@0.7.16,#2454)VueJSAnnouncing Vue 3.5 - Today we are excited to announce the release of Vue 3.5 "Tengen Toppa Gurren Lagann"! This minor release contains no breaking changes and includes both internal improvements and useful new features. We will cover some highlights in this blog post - for a full list of changes and new features, please consultthe full changelog on GitHub.Trending TitlesBuilding LLM Powered Applications$39.99$27.98CompTIA Security+ SY0-701 Certification GuidePrint $44.99Django 5 By Example$39.99 $27.98And that’s a wrap.P.S.: If you have any suggestions or feedback, or would like us to feature your project on a particular subject, please write to us. Just respond to this email! *{box-sizing:border-box}body{margin:0;padding:0}a[x-apple-data-detectors]{color:inherit!important;text-decoration:inherit!important}#MessageViewBody a{color:inherit;text-decoration:none}p{line-height:inherit}.desktop_hide,.desktop_hide table{mso-hide:all;display:none;max-height:0;overflow:hidden}.image_block img+div{display:none}sub,sup{line-height:0;font-size:75%}#converted-body .list_block ol,#converted-body .list_block ul,.body [class~=x_list_block] ol,.body [class~=x_list_block] ul,u+.body .list_block ol,u+.body .list_block ul{padding-left:20px} @media (max-width: 100%;display:block}.mobile_hide{min-height:0;max-height:0;max-width: 100%;overflow:hidden;font-size:0}.desktop_hide,.desktop_hide table{display:table!important;max-height:none!important}} @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }
Read more
  • 0
  • 0
  • 9675

Kinnari Chohan
19 May 2025
10 min read
Save for later

WebDevPro #91: Agentic AI, Dev Workflow Shifts, and What’s Breaking in 2025

Kinnari Chohan
19 May 2025
10 min read
Crafting the Web: Tips, Tools, and Trends for DevelopersAdvertise with Us|Sign Up to the Newsletter @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }WebDevPro #91: Agentic AI, Dev Workflow Shifts, and What’s Breaking in 2025 🌍🔍Crafting the Web: Tips, Tools, and Trends for DevelopersHi ,This week’s lineup brings sharp signals from across the stack. DeepMind’s new coding agent is raising the bar on performance-first AI, Databricks and Neon team up for frictionless serverless SQL, and OpenAI just relaunched Codex to supercharge your IDE. Rails expert Chris Oliver calls out complexity as the real challenge in modern development, and we’ve got a hands-on pick for mastering React Hooks in production.Here’s what’s catching our attention:🧠 AlphaEvolve by DeepMind – A Gemini-powered coding agent tuned for performance-first problem solving💻 Databricks + Neon – Run transactional SQL in your lakehouse with no infra setup🤖 OpenAI Codex Returns – Relaunched to power multi-file reasoning and smarter IDE integration🎤Chris Oliver on Rails & Dev Complexity – Why it’s not about frameworks, it’s about shipping📚 Learn React Hooks – A practical guide to Hooks, state machines, and scalable UI patternsWe’ve also rounded up the future of “vibe coding,” plus dropped a dev tip to help you scale without the server sprawl.Want to be featured in WebDevPro? Share your tips or takes—we’re all ears!Advertise with usInterested in reaching our audience? Reply to this email or write to kinnaric@packt.com.Learn more about our sponsorship opportunities here.Latest news: what's new in web development? 🧑‍💻 From strategic layoffs to agentic AI and language evolution, this week’s news cuts to the core of where web and software development is heading. These updates aren’t just buzz—they’re shaping what you ship and how you build.🧠 DeepMind’s AlphaEvolve Reinvents Competitive Coding:AlphaEvolve is DeepMind’s new coding agent built on Gemini 1.5 Pro and trained on algorithmic benchmarks. It doesn’t just autocomplete—it designs and refines code with the goal of outperforming human solutions. Early demos suggest it's tuned for performance-first problem solving, not just syntax completion.💻 Databricks Brings Serverless SQL with Neon:Databricks has teamed up with Neon to integrate serverless Postgres into its lakehouse ecosystem. This means developers can now run transactional SQL workloads with no infrastructure setup, directly within their data workflows. It’s a move toward unifying analytical and operational data access.🌊 Windsurf Launches Custom AI Models for Dev Flow:Vibe coding startup Windsurf is going beyond wrappers and launching its own LLMs, built in-house for fast, fluid dev experiences. By training models specifically for software workflows, it aims to cut friction and bring more context-awareness to AI coding.📉 Microsoft Leans on AI While Letting Go of Devs:Microsoft confirmed AI now writes up to 30% of its internal codebase—at the same time as layoffs hit engineering teams hardest in its home state. It’s a clear signal that AI isn’t just accelerating dev cycles, it’s reshaping how teams are staffed.🛠️ OpenAI Relaunches Codex to Power AI-Driven Dev Workflows: OpenAI’s newest iteration of Codex is built for real coding use cases—autocomplete, multi-file reasoning, and tighter IDE integration. It’s designed to go beyond text generation and actually understand your repo.💡 Java 25 Delivers Cleaner Syntax and Developer Perks:JDK 25 introduces preview features like unnamed variables, improved pattern matching, and a new classfile API. While not flashy, these updates signal Java’s steady march toward modern syntax and smoother tooling for enterprise-scale development.🦀 Rust 1.87 Lands with Smoother Trait Imports and Dev Tooling: Rust’s latest release improves trait visibility with use Trait as _, simplifies rust-analyzer updates, and tightens up the Lint system. Small quality-of-life boosts that make writing and maintaining Rust feel cleaner.Machine Learning Summit 2025Level up your skills with exclusive insights from top ML experts! 40% OFF if you book now.🎤 LLMs AMA with Sebastian RaschkaAsk your most pressing questions about large language models📈 GPTs for Time Series with Khuyen TranDiscover how to bring generative models to real-world forecasting.💡Learn directly from Luca Massaron, Thomas Nield, and 20+ ML experts in a power-packed lineup of live sessions, workshops, and AMAs.Use Code: EARLY40REGISTER NOW AND GET 40% OFFExpert corner: what's the web community talking about?🎙Still think vibe coding is harmless? Still trusting AI to write prod code? This week’s lineup brings receipts—from Rust-level brain strain to the slow fade of Stack Overflow. Crack open a few tabs, your future self might thank you.🔓 Lock-Free Rust is a Brain-Bender:Lock-free code in Rust sounds elegant—until you’re wrangling atomic ordering, memory fences, and data races that sneak past the borrow checker. This deep dive unpacks the pain and beauty of building correct, fast concurrency the hard way.🧠 Serde Reflect Brings Runtime Type Magic to Rust: Rust isn’t known for runtime reflection, but Serde Reflect changes the game. A great read on how macro-heavy code can gain runtime introspection—without sacrificing safety or performance.📉 Stack Overflow is Almost Dead:Pragmatic Engineer breaks down what every dev has felt: AI is faster than SO, and nobody wants to write answers anymore. With real data on traffic, answer rates, and community fatigue—it’s more than just vibes.🎭 The Dark Side of Vibe Coding: AI tools can autocomplete a function, but can they explain it? This sharp critique of “vibe coding” challenges the growing habit of copy-paste confidence—where fluency feels real, but understanding isn’t.🕸️ Agentic Mesh is Coming to the Enterprise:What happens when agents start collaborating at scale? This post explores AI orchestration, multi-agent ecosystems, and why “agentic mesh” could be the next big layer in enterprise automation.🚨 Can AI Agents Manage Vulnerabilities?:As agentic AI creeps into production, security teams face new risks. This post tackles what changes when autonomous agents make decisions—and why security workflows aren’t ready yet.Packt catalogue: must read dev books📚Learn React Hooks by Daniel BuglBuild fast, scalable React apps with Hooks and state machines—packed with real-world patterns for cleaner code and better performance.🧩 Master custom and advanced hooks for cleaner, scalable components⚡ Optimize app performance with real-world patterns and state management🤖 Build complex workflows using XState and state machinesGrab your copy!Zen for Devs 🧘‍♂️Not every tab needs to run a build. Sometimes your brain just needs 2 minutes of stillness—or a view that isn’t your IDE.Here’s your mini mental refresh:🌍 WindowSwap: Peek through someone else’s window—New York skyline, Swiss hills, or a quiet Tokyo street. Pure, passive calm.🔊 Noisli: Build your ideal background blend—rain + typing + train ride? Perfect for deep focus or decompression.📜 The Zen of Python: 19 lines of elegant truth—even if you don’t write Python. Let it wash over your architecture brain.🧘‍♀️ Do Nothing for 2 Minutes:Seriously. Try it. No keyboard. No mouse. Just ocean waves and a timeout for your mind.Exclusive expert spotlight: Chris Oliver on Rails and Dev Overload 🎤This week, we caught up with Chris Oliver, a Rails veteran and the founder of GoRails, to talk about what’s tripping up developers in 2025—and how to stay focused on building real software.Chris Oliver is a software developer based in St. Louis, Missouri. He's an expert in Ruby on Rails and the founder of GoRails, a platform helping Rails devs learn, build, and deploy their ideas. He’s also a conference speaker and podcaster, known for bringing clarity to the complexity of modern web dev.🎥 Watch the clip onX. Follow us on WebDevPro for more dev insights and hot takes.Packt: What would you say is the biggest challenge that Rails developers face today?Chris Oliver:I would say that most of what I see people struggling with is they always want to use the hot new tools—whatever's the latest thing.But I don’t see enough developers, not just Rails devs, just… go build stuff. Go get good at understanding how users use it. Learn how to fix what feels clunky. Learn to build things that are accessible.The biggest challenge today is the sheer complexity. You need to know keyboard accessibility, CSS, JavaScript, server-side performance, database indexing, good architecture—it’s an overwhelming amount just to build solid software.A lot of devs are chasing magical libraries that promise to just “do it all,” but it almost never works perfectly. There are always weird edges that don’t quite fit.The real skill is knowing when to say:“We can build this the way it was asked—but we could do 90% of it faster if we adjust a bit. Let’s ship that, test it, and iterate.”At the end of the day, you’ve got to get something into your users’ hands. That’s what really matters. It’s easy to lose sight of that with so many tools and choices around.AI in the spotlight 🔦Google’s next teammate isn’t human—it’s a coding agentA new AI tool in development promises to assist devs across the entire software lifecycle. 🧠 Handles more than code—think docs, planning, and workflow tasks 🔄 Built to integrate seamlessly into your existing dev stack ⚙️ Aims to automate the boring parts so you can focus on logic and architecture 👀 Still under wraps, but expected to debut soonThe future of dev tooling isn’t just AI-assisted—it’s AI-native. Stay ready.Developer tip of the week 💡Go Serverless to Scale SmarterIn 2025, serverless architecture is a go-to move for building fast, flexible, and cost-effective web app. ⚙️ Auto-scales with traffic—no server setup needed 💸 Pay only for what you use—ideal for startups and MVPs 🚀 Faster deployments with less ops overhead 🧰 Great for APIs, microservices, and event-based workflowsUse Vercel Functions to deploy serverless functions alongside your frontend. Or try AWS Lambda for backend logic at scale.Serverless lets you focus on code—not infrastructure.And that's a wrap 🎬That’s a wrap for this issue! Got a tool, stack tweak, or dev story? Hit reply—we love featuring real builders and their breakthroughs.Until next week—code smart and ship well.Cheers!Kinnari Chohan,Editor-in-chiefSUBSCRIBE FOR MORE AND SHARE IT WITH A FRIEND!*{box-sizing:border-box}body{margin:0;padding:0}a[x-apple-data-detectors]{color:inherit!important;text-decoration:inherit!important}#MessageViewBody a{color:inherit;text-decoration:none}p{line-height:inherit}.desktop_hide,.desktop_hide table{mso-hide:all;display:none;max-height:0;overflow:hidden}.image_block img+div{display:none}sub,sup{font-size:75%;line-height:0}#converted-body .list_block ol,#converted-body .list_block ul,.body [class~=x_list_block] ol,.body [class~=x_list_block] ul,u+.body .list_block ol,u+.body .list_block ul{padding-left:20px} @media (max-width: 100%;display:block}.mobile_hide{min-height:0;max-height:0;max-width: 100%;overflow:hidden;font-size:0}.desktop_hide,.desktop_hide table{display:table!important;max-height:none!important}} @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }
Read more
  • 0
  • 0
  • 8824
Unlock access to the largest independent learning library in Tech for FREE!
Get unlimited access to 7500+ expert-authored eBooks and video courses covering every tech area you can think of.
Renews at $19.99/month. Cancel anytime
Kinnari Chohan
26 May 2025
10 min read
Save for later

WebDevPro #92: Smarter Tools, Cleaner Code — Claude, Stitch, and Kotlin’s Big Week

Kinnari Chohan
26 May 2025
10 min read
Crafting the Web: Tips, Tools, and Trends for Developers Advertise with Us|Sign Up to the Newsletter @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } WebDevPro #92: Smarter Tools, Cleaner Code — Claude, Stitch, and Kotlin’s Big Week 🌍🔍 Crafting the Web: Tips, Tools, and Trends for Developers Hi , This week, web development takes a confident leap forward. Claude gets introspective, Gemini moves into your browser, and Google’s Stitch promises cleaner UI code with zero pixel panic. Shopify’s widget set is ready for prime time, and Microsoft? They just dropped 50+ new tools to redefine how workflows run. Here’s what’s shifting the stack: 🧬 Claude 4.1: Anthropic’s AI gets smarter and a lot more dev-friendly 🧩 Google Stitch: From mockups to production-ready UI, with AI in the middle 🤝 JetBrains + Spring: A strategic partnership to accelerate Kotlin-native backend dev 🎤 Chris Oliver on Dev Complexity: Why chasing “hot” tools won’t ship better software 🚀 Smarter Caching: From CDN tweaks to header tricks, here’s what actually works 🕸️ Circuit Breakers for Microservices: Fail gracefully and avoid cascading chaos Plus, we’ve got a must-read for Java devs: Software Architecture with Spring, a hands-on guide to designing systems that scale, evolve, and survive the real world. Want to be featured in WebDevPro? Share your tips or takes—we’re all ears! Advertise with us Interested in reaching our audience? Reply to this email or write to kinnaric@packt.com. Learn more about our sponsorship opportunities here. Latest news: what's new in web development? 🧑‍💻 This week’s releases signal a clear message: the web isn’t waiting for you to catch up. From drag-and-drop storefronts to code-ready design systems, the dev stack is evolving toward speed, clarity, and a lot less friction. 🧬 Claude 4 Isn’t Just Chatty. It’s Getting Introspective:Anthropic just dropped Claude 4.1, and it’s not your average autocomplete AI. This model reasons, rewrites, and even reflects on how it thinks. Claude’s now better at solving problems than GPT-4—and it’s terrifyingly polite about it. For devs? You get API access, long context, and enough code chops to write that backend you’ve been procrastinating. 🧩 Google’s Stitch Could Make Frontend Design Sane Again: Meet Stitch: Google’s attempt to rescue UI design from pixel purgatory. It reads your mockups and spits out component code like it’s been pair programming with Figma. Less grunt work, more “Oh hey, this actually compiles. 🛍️ Shopify’s Storefront Widgets Are Now Drag-and-Drop Dev Candy: Shopify's Web Components are now production-ready, and it’s a dream for e-comm devs. Drop in a cart, product card, or variant picker without rebuilding the planet. Framework-agnostic, fully styled, and ready to convert. This is Shopify finally treating devs like first-class users. 🤖 Microsoft Is Going Full Agentic. And It’s Coming for Your Workflows:At Build 2025, Microsoft announced it’s not just Copilot anymore, it’s Copilot, Agents, and a whole Agentic Web. Think AI that reads docs, hits APIs, manages state, and knows when to ask questions. Your app isn’t the product anymore. Your workflow is. 🔗 Kotlin + Spring Join Forces: JetBrains just announced a strategic partnership with the Spring team, aligning Kotlin’s roadmap more tightly with Spring’s modern architecture patterns. Expect faster iteration, deeper tooling, and official support that closes long-standing gaps in backend development. A strong signal for Kotlin shops building production-grade services. 🛠️ 50+ New AI Tools. Yes, You Read That Right: And if that wasn’t enough, Microsoft’s got more: over 50 new tools aimed at making you an AI overlord. Phi-3 extensions, dev agents, language bridges, Copilot everywhere. This isn’t just about speeding up dev. It’s about flipping the dev stack inside out. Machine Learning Summit 2025 Level up your skills with exclusive insights from top ML experts! 40% OFF if you book now. 🎤 LLMs AMA with Sebastian Raschka Ask your most pressing questions about large language models 📈 GPTs for Time Series with Khuyen Tran Discover how to bring generative models to real-world forecasting. 💡Learn directly from Luca Massaron, Thomas Nield, and 20+ ML experts in a power-packed lineup of live sessions, workshops, and AMAs. Use Code: EARLY40 REGISTER NOW AND GET 40% OFF Expert corner: what's the web community talking about?🎙 This week, the dev stack shows its teeth. From Copilot turning co-architect to Firebase embracing agents, the real skill now is knowing what not to over-engineer. 🚀 Cache Me If You Can: Optimize Web Performance with Smarter Caching: From CDN layers to header hacks, this guide is your go-to for making sure your users stop hitting the reload button out of spite. TL;DR? Cache is king, but only if you wield it right. 🧠 Copilot: Assistant or Autonomous Dev-in-the-Making?: This Copilot breakdown isn’t fan service, it’s field notes. Copilot is no longer just an autocomplete tool, it’s edging into full-on agent territory. Big question: Are you steering the AI, or is it steering your backlog? 🕸️ Microservices Need a Safety Net: Circuit breakers aren’t just for your fuse box. This guide to building resilient microservices lays out how to use fallback patterns that keep your app online when one service eats dirt. ☕ Java Gets Cleaner with Method References: Method references in Java are still misunderstood. This explainer makes the case for cleaner lambdas, less repetition, and just enough syntax sugar to make legacy code look modern. Worth it, even if you think you know this already. 🧪 Firebase Meets Agentic AI: Firebase Studio’s new agent integrations are wild. Imagine AI agents that don’t just deploy your app, they diagnose it, test it, and help fix bugs. It’s not future-talk anymore. This is now. And Firebase’s new studio is where the dev+AI handshake just got real. 🎓 Want to Get Hired in Java? These Certs Still Matter: You don’t need alphabet soup on your resume—but some Java certifications still open real doors. Here's a look at which ones hiring managers care about in 2025, and which are just digital dust collectors. Packt catalogue: must read dev books📚 📘 Software Architecture with Spring by Wanderson Xesquevixos Not just how to build, how to architect. This guide gives Java developers a blueprint for designing systems that scale, evolve, and survive the real world. 🧱 Break up monoliths with Spring-powered microservices ⚙️ Build resilient systems with event-driven and serverless patterns 🧭 Make smart architectural calls that align with real business needs Grab your copy! Tools to Regain Focus 🧘‍♂️ Building in 2025 means juggling tabs, tokens, and ten thousand Slack pings. Here are two hand-picked tools to reclaim your cognitive real estate and get back into flow: 📐 Ray.so — Code Snippets That Spark Joy: Need to share code without the clutter? Ray.so turns your code into clean, beautiful images with syntax highlighting, perfect for docs, decks, or dev blogs. Bonus: no login required. 🎧 Focusmate — Virtual Body Doubling for Deep Work: It sounds weird, but it works. Book a 25- or 50-minute session, get matched with a silent accountability partner, and commit to one task. No chat. No judgment. Just focus. Exclusive expert spotlight: Chris Oliver on AI, Rails, and Real-World Coding 🎤 This week, we’re sharing another slice of our interview with GoRails founder Chris Oliver; this time on generative AI and where it falls short. Chris shares why today’s dev tools still feel a bit behind, and what would make them truly useful in the trenches. Spoiler: speed and specificity matter more than hype. Chris Oliver is a software developer based in St. Louis, Missouri. He's an expert in Ruby on Rails and the founder of GoRails, a platform helping Rails devs learn, build, and deploy their ideas. He’s also a conference speaker and podcaster, known for bringing clarity to the complexity of modern web dev. 🎥 Watch the clip onX. Follow us on WebDevPro for more dev insights and hot takes. Packt:Have you used Generative AI in your development workflows, and what are your views on how effective it is? Chris Oliver: Oftentimes when I work these days, I'm not Google searching things that often anymore. I go straight to the source code for libraries and look at what blew up. I want to see what it expected, what its reasoning was for doing this logic. Then I can understand where I went wrong much better. When we get to the point where we can take that context and tell Cursor or whatever, “Hey, I'm using Rails, I have this error, I'm on Rails version 6.1,” and it can load up Rails 6.1 source code on GitHub and analyze that. When it can be that specific and fine-tuned, I think we’re going to get an incredibly powerful helper that can code along with you and be extremely accurate. But part of the issue now is that it’s indexing everything on the Internet, which may or may not be accurate. We already have a hard enough time figuring out if we’re looking at old Rails documentation on a blog post versus the latest version. Until that improves, that’s where I struggle with it. I want it to work, and I want to be able to use it. Also, it’s a little bit too slow today. Waiting for Claude to generate code for a couple of minutes feels like sitting and waiting for your code to compile, which we don’t do in Ruby, because it’s interpreted on the fly. So it kind of feels like stepping back in time. I sit and wait, get distracted, open TikTok or something on my phone, and I end up getting pulled out of the zone, waiting for it to finish. AI in the spotlight 🔦 🧠 Gemini Moves Into Chrome — Welcome to the AI-Native Browser Gemini is now built into Chrome for paid users. Summarize pages, rewrite copy, or brainstorm in the tab you’re already in. No extensions. no jumping out, just native, always-on AI that thinks with you, directly from the toolbar. Developer tip of the week 💡 🛠️ Bring AI to Your Web App, No Backend Needed Edge is quietly redefining what frontend devs can do with AI—no cloud required. Here’s what’s new and why it matters: 🧪 New APIs in Edge let developers run AI models directly in the browser, no backend required ⚡ Powered by Phi-3-mini, enabling text generation, summarization, and content editing locally 🔐 Faster and more private interactions with zero server round-trips 🧭 Available now in Edge’s Canary and Dev channels, a step toward truly browser-native AI experiences And that's a wrap 🎬 That’s a wrap for this issue! Got a tool, stack tweak, or dev story? Hit reply, we love featuring real builders and their breakthroughs. Until next week! Cheers! Kinnari Chohan, Editor-in-chief SUBSCRIBE FOR MORE AND SHARE IT WITH A FRIEND! *{box-sizing:border-box}body{margin:0;padding:0}a[x-apple-data-detectors]{color:inherit!important;text-decoration:inherit!important}#MessageViewBody a{color:inherit;text-decoration:none}p{line-height:inherit}.desktop_hide,.desktop_hide table{mso-hide:all;display:none;max-height:0;overflow:hidden}.image_block img+div{display:none}sub,sup{font-size:75%;line-height:0}#converted-body .list_block ol,#converted-body .list_block ul,.body [class~=x_list_block] ol,.body [class~=x_list_block] ul,u+.body .list_block ol,u+.body .list_block ul{padding-left:20px} @media (max-width: 100%;display:block}.mobile_hide{min-height:0;max-height:0;max-width: 100%;overflow:hidden;font-size:0}.desktop_hide,.desktop_hide table{display:table!important;max-height:none!important}} @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }
Read more
  • 0
  • 0
  • 1325

Kinnari Chohan
27 Oct 2025
13 min read
Save for later

WebDevPro #115: The API Renaissance: From Endpoints to Products

Kinnari Chohan
27 Oct 2025
13 min read
Real-world insights for sharper web dev decisions Advertise with Us|Sign Up to the Newsletter @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } WebDevPro #115 The API Renaissance: From Endpoints to Products Real-world insights for sharper web dev decisions Hi , Welcome to the newest issue of WebDevPro! Every modern digital experience depends on an invisible API ecosystem. When you make a payment on Stripe, book a trip on Airbnb, or sign in with Google, dozens of APIs handle authentication, data exchange, and workflow coordination in milliseconds. They are the unseen architecture of our connected age: the roads, bridges, and traffic signals of the internet. For years, APIs were treated as plumbing: necessary infrastructure but not strategic assets. Teams built endpoints to enable integrations, often with little thought about usability, evolution, or governance. The result was what Jarzyna and Amzani, the authors of RESTful API Design Patterns and Best Practices, termed "API Sprawl": a proliferation of disconnected interfaces that solved immediate problems but created long-term complexity. Organizations found themselves unable to answer basic questions: How many APIs do we have? Where are they deployed? Why are they failing? That perspective is rapidly changing. According to Postman's 2023 State of API Report, 86% of developers now use REST APIs, and organizations with formal API contracts report 70% faster time to market for new features. More importantly, these same organizations experience 65% fewer API-related incidents, demonstrating that treating APIs as products isn't just good practice but a competitive advantage. This transformation marks what Jarzyna and Amzani call the API Renaissance: a fundamental shift from viewing APIs as integration afterthoughts to treating them as enduring digital products with audiences, lifecycles, and measurable value. But let’s catch up first. Here are the top links from the last issue in case you missed them: ⚡ React Conf 2025 unveiled React 19.2, new performance APIs, and major React Native updates ⚛️ Playwright introduced test agents that automate planning, coding, and fixing of tests 🤖 The HTML <output> tag was spotlighted as a powerful but overlooked tool for displaying dynamic results Have any ideas you want to see in the next article? Hit Reply! Advertise with us Interested in reaching our audience? Reply to this email or write to kinnaric@packt.com. Learn more about our sponsorship opportunities here. From Integration to Experience In the early years of distributed systems, an API's success was measured by a simple question: Does the data flow? Connectivity was the goal, not usability. Developers built endpoints that worked, documented them minimally, and moved on to the next integration challenge. Today's APIs compete on experience. A well-designed API reduces onboarding time from days to minutes, communicates intent clearly through self-describing responses, and feels predictable across different use cases. The interface has become part of a brand's identity, with companies like Stripe and Twilio treating their APIs as flagship products. This is how this shift manifests in practice: - Stripe's Documentation Philosophy: Their API documentation reads like an interactive tutorial, with embedded examples, live test modes, and clear error messages that explain not just what went wrong, but how to fix it. Every response includes contextual information that guides developers toward successful integration. - Twilio's Communication-First Design: Rather than exposing raw telecommunications infrastructure, Twilio's APIs speak the language of business outcomes—sending messages, making calls, managing conversations. Their error responses are human-readable, describing problems in terms that developers can act upon immediately. - Adidas's Governance at Scale: With thousands of point-to-point integrations, Adidas transformed its approach by implementing a Single Source of API Truth (SSOT). Every API specification serves as the master contract, not the implementation, ensuring consistency across hundreds of teams while accelerating delivery through automated validation. When organizations adopt this product mindset, design becomes a continuous practice rather than a one-time step. Developer portals evolve into customer-facing experiences, complete with interactive documentation, usage analytics, and feedback loops. APIs no longer hide behind applications; they become part of the story. The Maturity Spectrum: From Plumbing to Products These are not advanced techniques. They are the day-to-day moves that keep your application fast and legible. The material returns to them at every step, which is why the example app remains steady as features stack up. Not all APIs are created equal, and there are two critical frameworks for understanding API quality: Richardson Maturity Model (RMM) Most APIs claiming to be "RESTful" actually operate at Level 2 of the Richardson Maturity Model: using proper HTTP methods and status codes but missing the hypermedia controls that enable true REST. The progression looks like this: Level 0 (The Swamp of POX): Single endpoint, everything via POST Level 1 (Resources): Multiple endpoints but still RPC-style Level 2 (HTTP Verbs): Proper use of GET, POST, PUT, DELETE Level 3 (Hypermedia Controls): Self-describing APIs with embedded navigation Web API Design Maturity Model (WADM) While RMM focuses on protocol usage, WADM examines data representation: Level 0 (Database-centric): Raw database exposure Level 1 (Object-centric): Internal object models exposed Level 2 (Resource-centric): External interface design Level 3 (Affordance-centric): User-need-driven design The progression from technical plumbing to user-centered products represents the core of the API Renaissance. Level 3 APIs in both models don't just expose data but also expose capabilities that align with what users actually need to accomplish. Designing for Context: Domain-Driven APIs A recurring theme in RESTful API Design Patterns and Best Practices is that meaningful APIs grow out of deep domain understanding. Domain-Driven Design (DDD) helps developers map APIs to the real language of business rather than internal implementation details. Instead of exposing technical data structures, a DDD-aligned API communicates business intent. Consider the difference. Database-centric approach: GET /user_orders_table?user_id=123&status=2 Affordance-centric approach: GET /customers/123/active-orders The second example speaks the language of the business domain. It describes what users care about (active orders for a specific customer), not how the system stores data internally. Pairing DDD with OpenAPI Specification creates what the authors call a "single source of truth" that both humans and machines can interpret. This shared vocabulary ensures alignment between business intent and technical implementation, enabling teams to evolve APIs without losing cohesion because the design is anchored in shared meaning. This combination allows organizations to build what they term "experience-based APIs": interfaces that orchestrate complex business workflows rather than just exposing CRUD operations. For example, instead of requiring multiple calls to add items, calculate shipping, apply discounts, and process payment, an experience-based checkout API handles the entire workflow in a single, atomic operation. The Complete API Lifecycle: Beyond Build and Deploy Every API lives through predictable cycles of creation, growth, and change. Here's a seven-stage lifecycle that most organizations overlook: Requirements Gathering: Understanding the "why" behind API creation Design: Creating the formal contract using OpenAPI Specification Development and Testing: Implementing against the contract with validation Deployment: Moving to production with automated quality gates Publishing: Exposing through API gateways with proper security and rate limiting Consuming and Monitoring: Observing real-world usage and performance Update: Evolving based on feedback while maintaining backward compatibility Retirement: Graceful sunsetting with proper deprecation strategies API Lifecycle Stages: This figure illustrates this continuous loop, showing how each stage feeds back into the others, creating a rhythm that balances innovation with reliability. Each phase creates a feedback loop that balances innovation with stability. When organizations skip these steps (particularly the design-first approach) they often face integration failures, duplicated functionality, and security vulnerabilities. Conquering API Sprawl Through Governance Significant attention should be dedicated to API Sprawl: a phenomenon where organizations create numerous APIs without a centralized strategy or oversight. The symptoms are telling: Unable to specify what APIs exist in the ecosystem Unknown deployment locations and access methods Lack of live monitoring data across APIs Inability to diagnose API failures effectively Governance might sound restrictive, but the authors reframe it as an ecosystem of shared patterns and automation that provides freedom through structure. When organizations define clear conventions for naming, authentication, and versioning, teams gain a common design language and spend less time debating structure. The Single Source of Truth Approach Let's take Adidas's API strategy as an exemplar of effective governance. Their approach centers on a Single Source of API Truth (SSOT) where every team works from unified specifications stored in shared repositories. This eliminates the drift between documentation and implementation that plagues many organizations. This is an extract from Adidas’s API Guidelines Key principles from Adidas's approach: API-first development: Design always precedes implementation Specification as contract: The OpenAPI document, not the code, serves as the binding agreement Automated validation: CI/CD pipelines enforce consistency without manual overhead Minimal API surface: Following the YAGNI principle to avoid over-engineering This structured approach promotes transparency and consistency while turning governance from manual review into automated safeguards that accelerate delivery. The Hypermedia Advantage: APIs for Humans and AI One of the most forward-looking insights are hypermedia: the often-overlooked REST constraint that makes APIs self-describing. While most APIs require clients to hardcode endpoint knowledge, hypermedia APIs embed navigation controls directly in responses. Consider the difference. Traditional Level 2 API response: { "id": "wand-1", "name": "Oak Wand with Dragon Heartstring", "price": 75.0, "inStock": true } Level 3 Hypermedia response: { "id": "wand-1", "name": "Oak Wand with Dragon Heartstring", "price": 75.0, "inStock": true, "_links": { "self": {"href": "/items/wand-1"}, "add-to-cart": {"href": "/cart/items", "method": "POST"}, "similar-items": {"href": "/items?type=wand&powerLevel=8"}, "compatible-potions": {"href": "/items/wand-1/compatible-potions"} } } The hypermedia version doesn't just return data but provides a map of what's possible next. Clients can discover capabilities dynamically rather than relying on external documentation. This becomes particularly powerful for AI consumption. As the authors note, "hypermedia APIs are going to be especially important in the coming years" because AI systems can explore and navigate them without tedious implementation of hardcoded endpoints. Large language models excel at following structured navigation patterns, making hypermedia the ideal interface for autonomous agents. Change Management: Evolution Without Disruption There are detailed frameworks for managing API evolution, one of the most challenging aspects of treating APIs as products, with three primary strategies outlined: Global Versioning Entire API versions (v1, v2) that provide clear upgrade paths but increase operational complexity. Evolution-Only Approach Continuous backward-compatible improvements without versioning, following strict extension rules: - Never remove anything - Never change processing rules - Never make optional things required - Anything added must be optional Hybrid Model Combining evolution for non-breaking changes with versioning for breaking changes: the approach used by companies like Stripe. RESTful API Design Patterns and Best Practices highlights a MagicStore case study that demonstrates this in practice. When replacing their confusing /catalog endpoint with /products, the team didn't force immediate migration. Instead, they: - Introduced /products alongside existing /catalog - Added deprecation headers: Sunset: Wed, 30 Sep 2025 23:59:59 GMT - Provided comprehensive migration guides - Monitored usage analytics to track transition progress - Only removed /catalog after ensuring complete migration This disciplined approach transformed a potentially disruptive breaking change into a trust-building demonstration of thoughtful stewardship. Observability: APIs That Learn and Adapt Once deployed, an API's behavior in production becomes the ultimate measure of design quality. Observability must be embedded from the start, not retrofitted later. Effective API observability goes beyond basic uptime monitoring to include: Usage patterns:Which endpoints create value vs. friction Performance metrics:Latency, throughput, and error rates by operation Developer feedback:Integration pain points and feature requests Business impact:How API changes affect downstream applications Organizations with robust API contracts and observability report not just faster delivery, but 45% faster incident resolution times. APIs become self-improving systems that reveal optimization opportunities through real-world usage data. The authors recommend treating every production incident as a learning opportunity. When APIs are observable, they tell their creators what works and what needs refinement, creating a virtuous cycle of continuous improvement. The Future: APIs as Conversation Partners The API Renaissance represents more than technical evolution: it's a cultural shift toward empathy, transparency, and long-term thinking. As AI systems increasingly become API consumers alongside human developers, the need for self-describing, navigable interfaces grows exponentially. Jarzyna and Amzani highlight that successful organizations treat APIs as the connective tissue of digital transformation. They create environments where experimentation thrives within coherent frameworks, allowing companies to innovate at speed without sacrificing stability. Hypermedia controls guide AI agents through complex workflows, while OpenAPI specifications provide the semantic context needed for autonomous decision-making. In this emerging landscape, the APIs built with product thinking, domain alignment, lifecycle discipline, and hypermedia navigation will become the foundation for intelligent automation. They won't just connect systems but will enable new forms of collaboration between human creativity and machine capability. Key Takeaways for API Practitioners There's a comprehensive blueprint for organizations ready to embrace the API Renaissance: Start with Purpose:Understand your API's audience and business value before designing endpoints Design First:Use OpenAPI specifications as binding contracts, not afterthought documentation Embrace Domain Language:Align APIs with business vocabulary, not database schemas Plan for Evolution:Implement change management strategies that preserve trust while enabling innovation Measure Everything:Build observability into APIs from day one to enable continuous improvement Think Beyond CRUD:Design experience-based APIs that orchestrate workflows, not just data operations Prepare for AI:Include hypermedia controls that enable autonomous navigation and discovery Got 60 seconds? Tell us what clicked (or didn’t) Closing Note This article draws directly from RESTful API Design Patterns and Best Practices by Andrzej Jarzyna and Samir Amzani, published by Packt. The book provides a complete blueprint for designing, governing, and evolving APIs at scale, supported by real examples from companies like Stripe, Twilio, Adidas, and others who have successfully navigated the transition from integration tools to digital products. As software continues to connect everything from mobile apps to AI agents, APIs will remain the universal language of digital systems. The organizations that treat them as products today (with proper lifecycle management, domain alignment, and user-centered design) are writing the architecture of tomorrow's connected world. The API Renaissance isn't coming. It's here. The question is whether your organization will lead it or be left behind by it. For teams ready to implement these principles, RESTful API Design Patterns and Best Practices offers detailed guidance on OpenAPI specification, JSON Schema modeling, hypermedia implementation, and change management strategies that have been proven in production environments across multiple industries. Cheers! Editor-in-chief, Kinnari Chohan SUBSCRIBE FOR MORE AND SHARE IT WITH A FRIEND! *{box-sizing:border-box}body{margin:0;padding:0}a[x-apple-data-detectors]{color:inherit!important;text-decoration:inherit!important}#MessageViewBody a{color:inherit;text-decoration:none}p{line-height:inherit}.desktop_hide,.desktop_hide table{mso-hide:all;display:none;max-height:0;overflow:hidden}.image_block img+div{display:none}sub,sup{font-size:75%;line-height:0}#converted-body .list_block ol,#converted-body .list_block ul,.body [class~=x_list_block] ol,.body [class~=x_list_block] ul,u+.body .list_block ol,u+.body .list_block ul{padding-left:20px} @media (max-width: 100%;display:block}.mobile_hide{min-height:0;max-height:0;max-width: 100%;overflow:hidden;font-size:0}.desktop_hide,.desktop_hide table{display:table!important;max-height:none!important}} @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }
Read more
  • 0
  • 0

Kinnari Chohan
03 Nov 2025
8 min read
Save for later

WebDevPro #116: Next.js 16 accelerates full-stack builds, Rust tightens safety, and Django goes async

Kinnari Chohan
03 Nov 2025
8 min read
Crafting the Web: Tips, Tools, and Trends for Developers Advertise with Us|Sign Up to the Newsletter @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } WebDevPro #116: Next.js 16 accelerates full-stack builds, Rust tightens safety, and Django goes async Crafting the Web: Tips, Tools, and Trends for Developers Hi , In today's issue 116 of WebDevPro, we’re mapping the steady evolution of the web’s most trusted tools. From new compiler optimizations to frameworks finding modern rhythm, this week’s updates show how maturity drives innovation: 🚀 Next.js 16 strengthens full-stack React development with faster server components and smaller builds ⚙️ Rust 1.91.0 refines safety and performance with new lints and expanded platform support 🧩 Django 2025 report reveals a framework leaning into async, microservices, and modern Python workflows 💡 Cloudflare’s WAICT proposal introduces a new model for trustworthy client-side JavaScript 🧭 Microservices lessons from João Alves expose the hidden complexity behind distributed systems 🧠 Functional core tutorial from Google distills how purity makes code simpler and more testable Each story this week points to a quieter kind of progress, where frameworks, patterns, and practices evolve by becoming clearer, safer, and more intentional. Advertise with us Interested in reaching our audience? Reply to this email or write to kinnaric@packt.com. Learn more about our sponsorship opportunities here. Latest news: what's new in web development? 📰 🦀Rust 1.91.0 release: The Rust team published version 1.91.0 on October 30 2025, with new language lints (such as dangling_pointers_from_locals), promotion of several Windows/ARM targets to higher tiers, and stabilisation of numerous library-level APIs. This release shows Rust’s deep commitment to safety and performance evolution rather than sweeping outward-facing features. I believe this increment underlines how mature systems-languages continue to refine rather than reinvent. 🟢Node.js v25.1.0 minor release: Node.js v25.1.0 landed on October 28 2025, introducing an http.optimizeEmptyRequests server setting, a defensive-flag option for SQLite, and a new “watch config” namespace among other changes. These additions reflect steady maturation of the platform into more enterprise-grade use cases. I view this as a signal that JavaScript runtimes are settling into long-term stability and configurability. ☁️Azure SDK October 2025 update:The Azure SDK team delivered its October 2025 update, expanding support across languages (including Java and .NET), enhancing the messaging libraries, and strengthening identity and telemetry options. With cloud SDKs increasingly viewed as infrastructure pieces in themselves, this release emphasises API completeness and consistency. These updates make building against Azure more predictable and less of a moving target. ⚠️Azure outage impacts major services:Microsoft reported a major outage of its Azure cloud that took down services including Microsoft 365, Xbox Live and several retail chains. The disruption again highlights how dependent modern development and services are on a small number of cloud providers. My view is that such incidents underline the importance of architecture resilience and multi-region/multi-vendor planning. 🚀Next.js 16 release: Next.js version 16 introduces improved server-components support, smaller bundles by default, and tighter integration with React’s latest data fetching APIs. This iteration further positions Next.js as a full-stack React framework for production applications instead of “just” a frontend tool. This strengthens the case for using Next.js in large-scale web apps that blend static, server and client code. 📊State of Django 2025 report:Django 2025 analysis from PyCharm highlights increased use of async views, more micro-service deployments and growth in community packages for GraphQL and WebSockets. For backend developers favouring Python, this shows Django evolving beyond its monolithic roots into more modern service-oriented patterns. My take is that backend stacks built on Django are becoming more versatile and cloud-friendly than before. 82% of data breaches happen in the cloud The reality is you can’t stop every single attack so survival depends on how fast you can recover. Join us for the Cloud Resilience Summit on December 10th to: - Build true cyber resilience by shifting to an “assume breach” strategy - Gain practical, real-world cloud insights - Ensure rapid business recovery and minimal financial impact with a cloud restoration strategy Save My Spot! Expert corner: what's the web community talking about?🎙 🔬 Improving deeply nested React render performance with Jotai’s atomic state: RunHarbor breaks down how Jotai can help React apps manage performance inside complex component trees. By replacing global context with small, focused atoms, the article shows how developers can isolate reactivity so that only the components using specific state values re-render. It’s a practical example of how atomic state thinking can make large React projects feel simpler and faster. 🔥 Disasters I’ve seen in a microservices world Part II: João Alves shares stories of system failures caused by too many services per engineer, fragile test environments, and over-engineered API gateways. The lesson for architects is that distributed systems shift complexity rather than remove it, demanding deliberate operational discipline. Engineering teams should treat failure handling and maintenance as part of their feature roadmap. 🧠 The Continual Learning Problem:Jessy Lin discusses how models and software systems can evolve without losing prior knowledge and explores sparse memory-based fine-tuning as a solution. For developers building tools around AI or long-lived applications, this analogy reinforces that learning and stability must coexist. This mindset will influence how we update and version complex frameworks in the near future.Node.js is absorbing many capabilities that previously required third-party modules meaning fewer dependencies, less supply-chain risk, and leaner builds. The takeaway: revisiting your dependency list may directly reduce maintenance work and security exposure. 🪄 When perfect code fails:Marma Dev writes about how “perfect” code built on abstraction or magic often fails when its assumptions shift. It is a reminder that clarity and maintainability outweigh cleverness or elegance. I see this as a quiet argument for codebases that prioritize human readability over technical perfection. 🔖 Building CLIs with Ace a bookmarks app in Node.js and Bun:Galaxy Cloud demonstrates how to use the Ace CLI framework from the AdonisJS team to create a bookmarks app running on both Node.js and Bun. The example shows how CLI frameworks are evolving into developer-friendly spaces that encourage consistency and modularity. I find this trend empowering for developers who enjoy building with JavaScript beyond the browser. Want to be featured in WebDevPro? Share your tips or takes, we’re all ears! This week's book drop📚 Responsive Web Design with HTML5 and CSS Written by Ben Frain, this fifth edition of his long-running bestseller dives into the latest HTML5 and CSS techniques, think container queries, scroll-driven animations, and wide-gamut color usage. The book promises to equip front-end and full-stack developers with both fundamentals and advanced workflows required for building websites that truly adapt across devices. For teams looking to future-proof their responsive designs, this is a timely release worth putting on the shelf now. Order your copy now! Featured tutorials 🎓 🔁 Rethinking async loops in JavaScript:Smitty shares a fresh take on how developers can manage asynchronous iteration in JavaScript without falling into callback clutter. The tutorial demonstrates using for...of and Promise.all() patterns for predictable, readable async code while avoiding nested control flow. It’s a practical guide to writing asynchronous logic that feels more synchronous and less error-prone, a must-read for anyone refining their control flow intuition. 🧩 Simplify your code with a functional core:Google’s testing team explores how designing software with a functional core and imperative shell leads to simpler, testable, and more predictable systems. The post includes concrete examples showing how to isolate side effects and maintain pure logic. This tutorial encourages a design mindset where business logic remains pure while system boundaries handle complexity, promoting codebases that are both resilient and elegant. Got a minute? Tell us what clicked (or didn't) 🎬 That’s all for this week. Whether you're deep in the debugger or dreaming up the next big feature, don’t forget to step back and enjoy the build. Until next time! Write code that surprises you (in a good way). Cheers! Kinnari Chohan, Editor-in-chief SUBSCRIBE FOR MORE AND SHARE IT WITH A FRIEND! *{box-sizing:border-box}body{margin:0;padding:0}a[x-apple-data-detectors]{color:inherit!important;text-decoration:inherit!important}#MessageViewBody a{color:inherit;text-decoration:none}p{line-height:inherit}.desktop_hide,.desktop_hide table{mso-hide:all;display:none;max-height:0;overflow:hidden}.image_block img+div{display:none}sub,sup{font-size:75%;line-height:0}#converted-body .list_block ol,#converted-body .list_block ul,.body [class~=x_list_block] ol,.body [class~=x_list_block] ul,u+.body .list_block ol,u+.body .list_block ul{padding-left:20px} @media (max-width: 100%;display:block}.mobile_hide{min-height:0;max-height:0;max-width: 100%;overflow:hidden;font-size:0}.desktop_hide,.desktop_hide table{display:table!important;max-height:none!important}} @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }
Read more
  • 0
  • 0

Kinnari Chohan
02 Jun 2025
9 min read
Save for later

WebDevPro #93: AI Tools, Java 25, and TypeScript Goes Turbo

Kinnari Chohan
02 Jun 2025
9 min read
Crafting the Web: Tips, Tools, and Trends for DevelopersAdvertise with Us|Sign Up to the Newsletter @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }WebDevPro #93: AI Tools, Java 25, and TypeScript Goes Turbo 🌍🔍Crafting the Web: Tips, Tools, and Trends for DevelopersWeb Devs: Turn Your Knowledge Into IncomeBuild the knowledge base that will enable you to collaborate AI for years to come💰 Competitive Pay Structure⏰ Ultimate Flexibility🚀 Technical Requirements (No AI Experience Needed)Weekly payouts + remote work: The developer opportunity you've been waiting for!The flexible tech side hustle paying up to $50/hourAPPLY NOWHi ,This week’s stack is fast, fearless, and full of firsts. Microsoft’s orchestrating smarter updates, Nova’s giving JavaScript a Rusty reboot, and TypeScript Native is blowing devs away with 10x faster builds. From minimalist Go setups to AI tools that build apps on the fly, this drop is packed.Here’s what’s shifting the stack:🪐 Nova lands – Rust-built, JS-ready, 70% test262 and flying.⚡ TypeScript Native preview – 10x faster builds, written in Go.🧠 Local-first apps are trending – Rethinking dev with fast, private tools.🛠️ Go devs ditch DI frameworks – Redowan says skip the extras because Go’s got this.🔧 Miško Hevery on junior devs – Show what you’ve built; buzzwords won’t cut it.🔮 Perplexity Labs: AI-generated charts, tables, and web apps in seconds.Plus, a must-read for Rust devs: Rust Web Programming (3rd Edition) is your hands-on guide to async, WebAssembly, microservices, and deployment in the real world.Want to be featured in WebDevPro? Share your tips or takes—we’re all ears!Advertise with usInterested in reaching our audience? Reply to this email or write to kinnaric@packt.com.Learn more about our sponsorship opportunities here.Latest news: what's new in web development? 🧑‍💻 The dev world doesn’t stop buzzing, and neither do we. From lightning-fast TypeScript previews to Java’s latest brewing batch and a Rusty new JS engine, here’s what’s hot and happening this week. Stay sharp, stay curious.🧠 Skyvern’s Web Bench Is Here to Shake Up AI Testing: Skyvern launched Web Bench, a rich dataset with 5,750 tasks across 452 real websites. It tests both “read” and “write” actions, mimicking real user behavior more closely than ever. Skyvern 2.0 nailed the “write” tasks like downloads, form-filling, and more.🪐 Nova: A Rusty New Star in the JS Engine Galaxy: Say hi to Nova, an experimental JavaScript + WebAssembly engine written entirely in Rust. Built on data-oriented design principles, it’s aiming for efficiency and modularity. Already passing 70% of test262, it’s one to watch in engine land.🪟 Windows Update Just Leveled Up: Microsoft is turning Windows Update into a full app orchestration platform. Now third-party apps can tap into eco-friendly scheduling and unified update handling. Currently in private preview, but expect broader rollout soon.☕ Java 25: The Brew Gets Stronger: The upcoming JDK 25 introduces 17 new features, including Shenandoah’s generational GC. It also brings PEM support for cryptographic keys and fresh memory tools. Set to launch in September as the next long-term support release.⚡ TypeScript Native Preview: 10x Faster, Written in Go: Microsoft drops TypeScript Native, a reimagined toolchain powered by Go. Expect a 10x speed boost on most projects. No joke! You can try it now via nightly builds or the VS Code extension.Last Day! Get $149 Worth of Bestsellers for Just $18!These 4 bestselling titles are worth $149 on their own. Grab them along with 18 more must-have C# and .NET books in our Mega Bundle for just $18.Don’t miss out. The offer ends tonight!Expert corner: what's the web community talking about?🎙Got a finger on the pulse of dev Twitter? We do. From AI pair programming to local-first revolutions and Go’s no-frills philosophy, the community is buzzing. Here’s what everyone’s talking (and tweeting) about this week.🌀 Web Design Déjà Vu: Are We Back in 1997?: Cybercultural dives into the comeback of ’90s web vibes with centered layouts and deliberate simplicity. It’s a subtle takedown of today’s heavy, overengineered websites that often forget the basics. If this got your gears turning, you’ll love our upcoming release: Responsive Web Design with HTML5 and CSS!🧠 Local-First Development is Stealing the Spotlight: Cloud fatigue? You’re not alone. Local-first apps are making a comeback, where your data lives with you.Fast, private, resilient. Developers are buzzing: what if the cloud is just a sidekick, not the star?🛠️ Go Devs Are Ditching DI Frameworks: Redowan’s spicy take? Most Go projects don’t need DI frameworks at all. With Go’s clean interfaces and structure, doing it by hand just feels right. It’s minimalist engineering at its finest, and the dev world’s nodding along..🧪 Picking Your Next Programming Language (Without the Hype): Michael Lynch drops a brainy guide for devs itching to try something new. No trend-chasing here. Just simplicity, uniqueness, and impact. It’s the nudge you need to break out of your language bubble.🤖 Real Devs Are Pairing with LLMs: Senior engineers are teaming up with AI for debugging, planning, and code reviews. Peter Mbanugo’s piece shows how LLMs are already solid dev teammates. It’s not the future. It’s happening now, in your favorite IDE.🌐 Spring Devs, Say Hello to Smarter API Calls: Spring WebClient is getting major love for async, non-blocking API magic. It’s sleek, reactive, and perfect for scaling microservices like a pro. Less boilerplate, more control. What’s not to love?Packt catalogue: must read dev books📚📘 Rust Web Programming – Third Edition by Maxwell FlittonA hands-on guide to modern web development with Rust, covering async, microservices, nanoservices, WebAssembly, and real-world deployment strategies.📚 Comprehensive intro to full-stack Rust web dev🧠 Covers WebAssembly, Axum, native TLS, SurrealDB🏗️ Emphasizes microservice and nanoservice architectures🛠️ Hands-on with real projects and cloud deployment Grab your copy!Under the Radar 🔍Tiny tools. Big vibes.Not on your radar yet? These gems are quietly leveling up developer workflows, from whiteboarding to wireframes. They’re the kind of tools you’ll wish you’d discovered sooner.🧠 RegexLearn: An interactive regex tutorial that builds up your skills visually. Great for beginners who are tired of trial-and-error and ready to really get it.✏️ tldraw: A collaborative whiteboard made with developers in mind. Draw mockups, diagrams, or user flows and export them with dev-ready clarity.🔧 ToolHunt: A curated hub of underrated tools for developers, designers, and indie hackers. Think Product Hunt, but more focused and less noisy.👤 UI Faces: Need realistic avatars for UI mocks, team pages, or placeholder content? Access real human faces that feel authentic, not like stock photos.Exclusive expert spotlight: Miško Hevery on Junior Devs, AI & Making It Real 🎤This week’s expert spotlight features Miško Hevery, creator of Angular and Qwik, and currently CTO at Builder.io. With a career dedicated to building fast and scalable web apps, Miško has helped shape how modern development is done at scale. In our latest chat, he shares what still matters for junior devs in the age of AI—why LLMs are just tools, not shortcuts, and why building real things is still the strongest signal you can send. Spoiler: it’s not about how you build, but that you build at all.🎥 Watch the clip onX. Follow us on WebDevPro for more dev insights and hot takes.There's been like a growing narrative about, junior level roles probably being taken away. What kind of career advice would you want to give newcomers who are just starting out with web development in this age of AI and LLMs?The advice hasn’t changed: when you walk into an interview, what people want to see is what you’ve built.It doesn’t matter if you did it the hard way or used LLMs—what matters is that you executed. Because building isn't just coding. It’s goal-setting, problem-solving, and figuring out the path of least resistance.If you're just starting out, contribute to open source or build something valuable—even if no one uses it. Show that you can make something real.Ideas are cheap. Execution is the hard part. Can you persist, ask the right questions, and keep pushing when things get hard? That’s what really makes you stand out.Machine Learning Summit 2025Level up your skills with exclusive insights from top ML experts! 40% OFF if you book now.🎤 LLMs AMA with Sebastian RaschkaAsk your most pressing questions about large language models📈 GPTs for Time Series with Khuyen TranDiscover how to bring generative models to real-world forecasting.💡Learn directly from Luca Massaron, Thomas Nield, and 20+ ML experts in a power-packed lineup of live sessions, workshops, and AMAs.Use Code: EARLY40REGISTER NOW AND GET 40% OFFAI in the spotlight 🔦🤖 Perplexity Labs Drops – AI That Builds Charts, Apps & Answers 📊 From questions to interactive apps in seconds. 🧠 Acts like a 24/7 answering machine with built-in data visualization smarts. 🛠️ Makes AI more hands-on for devs, teams, and solo builders alike.Developer tip of the week 💡📊 Use console.table() to debug like a bossInstead of cluttering your console with objects or arrays, console.table(data) gives you a clean, sortable table view.Perfect for debugging API responses, datasets, or arrays of objects at a glance.And that's a wrap 🎬That’s your scoop from the dev-verse this week. Radar scans complete, tools tested, and tabs (mostly) cleared.If your brain’s buzzing with ideas or feedback, hit reply. We love a good code rant.Until next week, ship smart, sip coffee, and stay curious!Cheers!Kinnari Chohan,Editor-in-chiefSUBSCRIBE FOR MORE AND SHARE IT WITH A FRIEND!*{box-sizing:border-box}body{margin:0;padding:0}a[x-apple-data-detectors]{color:inherit!important;text-decoration:inherit!important}#MessageViewBody a{color:inherit;text-decoration:none}p{line-height:inherit}.desktop_hide,.desktop_hide table{mso-hide:all;display:none;max-height:0;overflow:hidden}.image_block img+div{display:none}sub,sup{font-size:75%;line-height:0}#converted-body .list_block ol,#converted-body .list_block ul,.body [class~=x_list_block] ol,.body [class~=x_list_block] ul,u+.body .list_block ol,u+.body .list_block ul{padding-left:20px} @media (max-width: 100%;display:block}.mobile_hide{min-height:0;max-height:0;max-width: 100%;overflow:hidden;font-size:0}.desktop_hide,.desktop_hide table{display:table!important;max-height:none!important}} @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }
Read more
  • 0
  • 0
Kinnari Chohan
17 Nov 2025
8 min read
Save for later

WebDevPro #118: Octoverse shows explosive developer growth, OWASP highlights 2025 web risks, and TypeScript leads the AI era

Kinnari Chohan
17 Nov 2025
8 min read
Crafting the Web: Tips, Tools, and Trends for Developers Advertise with Us|Sign Up to the Newsletter @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } WebDevPro #118: Octoverse shows explosive developer growth, OWASP highlights 2025 web risks, and TypeScript leads the AI era Crafting the Web: Tips, Tools, and Trends for Developers Hi , Welcome to this week’s edition of WebDevPro! Some weeks feel shaped by flashy releases, but this one stood out for a different reason. The conversations and updates circling the web development space leaned into insight, clarity, and a deeper understanding of the systems we depend on. From security researchers sharpening the industry’s awareness of real-world risks to language architects reflecting on how AI is subtly reshaping the developer workflow, the themes this week pointed toward a community thinking more carefully about the choices that guide modern engineering. Runtime maintainers, tool authors, and educators all contributed perspectives that make it easier to see where the ecosystem is heading and what skills will matter as it evolves. In this issue of WebDevPro, we look at ideas and updates that help developers work with more precision, more awareness, and a stronger grasp of the fundamentals that keep the web running. Before we dive in, here’s a quick look at this week’s highlights: 📊 Insights from GitHub Octoverse 2025 and what they signal for the developer ecosystem 🧠 TypeScript’s rise in the AI era, with perspective from Anders Hejlsberg 🛡️ OWASP Top 10 2025 RC1 outlining the most significant web application security threats 🟩 The State of Node.js 2025 explained by Matteo Collina 🔍 A deep dive into how JavaScript source maps work and how debugging tools reconstruct execution Advertise with us Interested in reaching our audience? Reply to this email or write to kinnaric@packt.com. Learn more about our sponsorship opportunities here. AI-Powered Development with Cursor Workshop Accelerate your coding workflow and ship apps faster with Cursor, Supabase, and OpenAI. Book Your Spot! 🗓️ Nov 29, 2025 | 8:30 AM – 12:30 PM (ET) | 💻 Virtual 🎟️ 40% OFF with code CURSOR40+ 2 FREE e-books After Purchase, Fill This Form to Claim Your FREE E-books! Latest news: what's new in web development? 📰 📊 GitHub Octoverse 2025: GitHub’s Octoverse report shows a remarkable acceleration in developer growth, with more than one new developer joining every second in 2025. The data highlights how AI usage is reshaping workflows and how TypeScript has climbed to the top of language adoption. These trends reflect a year defined by rapid skill expansion and a movement toward typed, tool-assisted development. 🛡️ OWASP Top 10 2025 RC1 highlights emerging web security risks: OWASP released the 2025 update of its Top Ten web application security threats, surfacing trends that reflect how modern applications fail in practice. The new categories emphasize supply-chain exposure, insecure AI integrations, and the growing risk in misconfigured authentication flows. This release gives teams a sharper framework for assessing where their systems are most vulnerable. 🐘 Storybook 10 introduces faster builds and a redesigned developer experience: Storybook 10 arrives with significant performance improvements, including faster story loading and a smoother preview environment. The update modernizes the internal architecture and improves compatibility with React Server Components and Next.js 16. It is a welcome upgrade for teams that manage large design systems and extensive UI component inventories. 🗄️The State of Node.js 2025 by Matteo Collina: Matteo Collina’s annual deep dive into Node’s roadmap covers performance trends, upcoming runtime features, and the growing influence of JavaScript tooling that builds on top of Node rather than around it. His perspective offers a grounded view of where the platform stands and where developers' needs are guiding its evolution. 📨 React Email 5: React Email 5 updates the library to React 19.2 and Next.js 16 while retiring the older renderAsync API. The new release simplifies template rendering and gives teams tighter compatibility with current React standards. It supports a growing shift toward using React for structured communication workflows that live alongside product code. 🟩Node.js v25.2.0:Node.js 25.2.0 arrives with refinements across utilities, networking behavior and diagnostic reporting. The release strengthens how developers observe and tune their runtime while keeping the platform aligned with modern JavaScript workflows. It signals a maturing phase for Node where clarity and stability are becoming core priorities. Expert corner: what's the web community talking about?🎙 🪄Learn JavaScript by building Mario: This hands-on tutorial rebuilds classic Mario mechanics from scratch to teach JavaScript fundamentals through motion, physics and sprite logic. It is a fun, visual way to understand how code interacts with real-time systems. 🔬 Why TypeScript leads the AI era of development: Anders Hejlsberg shares how TypeScript became the most active language on GitHub and why its type system aligns naturally with AI-supported development. His perspective connects ecosystem growth to the practical value of predictable, typed code in fast-moving projects. It is a thoughtful look at how the language continues to shape modern JavaScript practice. 🔥 Bringing high-performance syntax highlighting to the browser with CSS Highlights:This article shows how the CSS Custom Highlight API can replace token-wrapped DOM structures with lightweight highlight ranges. The approach improves rendering performance and keeps HTML cleaner, which benefits any team building editors, documentation tools, or rich UI surfaces. It feels like a practical upgrade to a problem developers have lived with for years. 🧠 Making time predictable in test suites:The Angular team explains strategies for testing code that depends on timers, scheduled events, or asynchronous transitions. The post outlines how mock clocks create predictable environments that avoid flaky tests and unclear timing behaviours. It is a helpful reminder to treat time as another dependency that deserves thoughtful design. 🔖How JavaScript source maps work under the hood: Polarsignals breaks down how source maps are generated, encoded, and consumed by modern tooling. The walkthrough connects the conceptual model to concrete examples, helping developers understand how debugging pipelines reconstruct real execution paths. Want to be featured in WebDevPro? Share your tips or takes, we’re all ears! This week's book drop📚 RESTful API Design Patterns and Best Practices 🚀 Design APIs that scale with your product using patterns that keep services stable as teams and traffic grow 📘 Build confidence with a practical, hands-on approach that covers contracts, versioning, OpenAPI, and real-world design choices 🧩 Avoid hidden complexity with guidance on domain-driven design, client-focused endpoints, and API evolution across distributed systems ⚡ Strengthen your architecture through techniques that reduce breaking changes and improve long-term maintainability Order on Amazon Order on PacktPub Featured tutorials 🎓 🔁 Importing torrents in Node.js with readable patterns: Evan Hahn shares a practical walkthrough on how to parse and import torrent files using Node.js, leaning on clear data structures and stream-based patterns. The tutorial illustrates how to inspect metadata, handle buffers with intention and keep parsing logic approachable for real-world file workflows. It offers a gentle deep dive into a format many developers rarely explore directly. 🧩 Understanding Module Federation through a hands-on guide: This guide breaks down the foundations of Module Federation with simple examples that reveal how JavaScript applications can share code at runtime. The author walks through configuration, dependency boundaries and loading strategies in a way that feels accessible without hiding the architectural implications. It helps developers grasp how to design microfrontends that stay flexible and maintainable. Got a minute? Tell us what clicked (or didn't) And before we say goodbye, here's a little web dev delight of the week 🌸 KokoScript lets you write JavaScript entirely in Japanese, complete with a playground that shows how the syntax compiles back to standard JS. It is a small, charming reminder of how creative the developer community can be when experimenting with language design. 🎬That’s all for this week. The ecosystem may be moving fast, but it is energizing to see so many developers share the ideas, tools, and experiments that help the rest of us grow a little sharper. If something in this issue sparked a thought, a question, or a new curiosity, I’d love to hear it. Until next time. Kinnari Chohan, Editor-in-chief SUBSCRIBE FOR MORE AND SHARE IT WITH A FRIEND! *{box-sizing:border-box}body{margin:0;padding:0}a[x-apple-data-detectors]{color:inherit!important;text-decoration:inherit!important}#MessageViewBody a{color:inherit;text-decoration:none}p{line-height:inherit}.desktop_hide,.desktop_hide table{mso-hide:all;display:none;max-height:0;overflow:hidden}.image_block img+div{display:none}sub,sup{font-size:75%;line-height:0}#converted-body .list_block ol,#converted-body .list_block ul,.body [class~=x_list_block] ol,.body [class~=x_list_block] ul,u+.body .list_block ol,u+.body .list_block ul{padding-left:20px} @media (max-width: 100%;display:block}.mobile_hide{min-height:0;max-height:0;max-width: 100%;overflow:hidden;font-size:0}.desktop_hide,.desktop_hide table{display:table!important;max-height:none!important}} @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }
Read more
  • 0
  • 0

Kinnari Chohan
24 Nov 2025
11 min read
Save for later

WebDevPro #119: Modern Async JavaScript, without the knots

Kinnari Chohan
24 Nov 2025
11 min read
Real-world insights for sharper web dev decisions Advertise with Us|Sign Up to the Newsletter @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } WebDevPro #119 Modern Async JavaScript, without the knots Real-world insights for sharper web dev decisions AI-Powered Development with Cursor Workshop Accelerate your coding workflow and ship apps faster with Cursor, Supabase, and OpenAI. Book Your Seat 🗓️Nov 29, 2025 | 8:30 AM – 12:30 PM (ET) | 💻 Virtual 🎟️ 40% OFF with codeCURSOR40+ 2 FREE e-books Fill This Form to Claim Your FREE E-books! Thanks for joining me for this week’s WebDevPro issue! Most things that feel slow in a web app are not actually slow. They are waiting. A request is in flight. A timer has not fired yet. The user has not clicked. Async JavaScript is how you keep the page responsive while that waiting happens. Once you see how the browser schedules work, how promises settle, and how await resumes your function, you stop guessing. Your UI starts to feel calm because your code is calm. This week’s deep dive is based on material from JavaScript from Beginner to Professional by Laurence Lars Svekis, Maaike van Putten, and Rob Percival. This book is a practical guide that breaks down modern JavaScript fundamentals with clarity. and the concepts discussed here draw from this book. Let’s start with the mental model, then build toward patterns that hold up when real-world complexity enters the picture. By the end, it becomes much easier to see what can run in parallel, what must be sequenced, what deserves a timeout, and what should be canceled the moment the user moves on. But before we get into it, here are the standout links from last week’s edition: 🪄Learn JavaScript by building Mario 🛡️ OWASP Top 10 2025 RC1 highlights emerging web security risks 📊 GitHub Octoverse 2025 🔬 Why TypeScript leads the AI era of development Have any ideas you want to see in the next article? Hit Reply! Advertise with us Interested in reaching our audience? Reply to this email or write to kinnaric@packt.com. Learn more about our sponsorship opportunities here. The event loop is the heartbeat JavaScript in the browser runs on a single thread. You do not spin up operating system threads. You schedule work that will continue later. The browser owns an event loop. It pulls tasks off queues and runs your callbacks when results are ready. There are two queues you feel every day. The task queue holds timers and I O completions. The microtask queue holds promise reactions. The loop runs a task, then drains microtasks, then gives the browser a chance to paint. That one detail explains a lot of puzzling behavior. A continuation after await is a microtask. A callback from setTimeout(fn, 0) is a task. The microtask wins the race. You can prove it with a tiny console exercise and watch the order of logs line up with the model. console.log("A: start"); Promise.resolve().then(() => console.log("B: microtask")); setTimeout(() => console.log("C: task"), 0); (async () => { console.log("D: before await"); await null; // schedules a microtask continuation console.log("E: after await"); })(); console.log("F: end"); // typical order: A, D, F, B, E, C If the page ever feels sticky, it usually means you blocked the main thread. The cure is not a trick. Break heavy work into small pieces, yield between pieces, and let the browser breathe. Promises are a contract, not a mystery A promise represents a later value or a reason for failure. It starts pending, then becomes fulfilled or rejected, and it never changes again. You do not poll a promise. You register reactions and the runtime calls you exactly once when it settles. Chaining works because .then returns a new promise that adopts what you return. If you return a plain value, the chain moves forward with that value. If you return a promise, the chain waits. If you throw, the chain jumps to the next rejection handler. Many head-scratching bugs come from forgetting to return the inner promise and letting a chain run ahead of the work. The fix is simple. If you start more async work inside a handler, return it. Make error handling part of the design. Decide where errors become messages and where they become quiet fallbacks. Unhandled rejections will shout in devtools, but your users need a calmer story. Async and await help you read what you wrote async and await do not change promise semantics. They make the choreography readable. An async function always returns a promise. await yields inside that function until a promise settles, then either gives you the value or throws the error. You get the same behavior as a well-written chain, but in the order your brain tells the story. Keep try and catch around logical chunks, not the entire function unless it truly is one unit. Put cleanup in finally so it runs whether you succeeded or failed. That is where you stop spinners, release locks, and finish metrics. Here is a compact pattern for network work that needs clear outcomes and guaranteed cleanup. async function loadProfile(id, { signal } = {}) { startSpinner(); try { const res = await fetch(`/api/profile/${id}`, { signal }); if (!res.ok) throw new Error(`HTTP ${res.status}`); return await res.json(); } catch (err) { return { error: true, message: err.message }; } finally { stopSpinner(); } } One pitfall to keep in mind. array.map(async item => ...) gives you an array of promises. If you want the values, await them as a group. If the steps depend on each other, resist cleverness and write them in sequence. Orchestrating what overlaps and what depends A calm UI often comes down to honest orchestration. Some work can run together. Some must wait. If you are fetching user data, preferences, and notifications, start them together and join them when all are ready. If you are logging in and need the token before fetching a profile, keep that flow in sequence so the dependency is clear. For batches where one failure should not sink the rest, gather everything and inspect the outcomes after. For timing concerns, compose a timeout without twisting the control flow. function withTimeout(promise, ms) { return Promise.race([ promise, new Promise((_, rej) => setTimeout(() => rej(new Error("Timeout")), ms)) ]); } These helpers do not remove thinking. They encode intent so the code reads like the plan you had in your head. Cancellation that matches how people behave People change their minds. They type again. They navigate away. If a search response from an old query lands after the new one, it can overwrite fresh state with stale data. Treat cancel as a normal outcome. The platform gives you AbortController and AbortSignal. Wire them in and clear the pending state when the user moves on. let current = 0; async function search(q) { const id = ++current; const controller = new AbortController(); const res = await fetch(`/api/search?q=${encodeURIComponent(q)}`, { signal: controller.signal }); const data = await res.json(); if (id !== current) return; // stale result, drop it renderResults(data); } Add a simple guard like that and you avoid ghost updates even if some lower level cannot be canceled. Do not toast an error when the user intentionally cancels. Just settle the UI and let them keep going. Concurrency limits and backpressure Starting twenty operations at once feels bold until your server pushes back and your tab stutters. A small limiter gives you backpressure. Allow a fixed number of active operations. Queue the rest. When one finishes, start the next. Median times improve. Tails tighten. Rate limits hurt less. You can write a limiter in a handful of lines or use a tiny utility if your team prefers. The key is to adopt the habit on the paths that matter. If you are streaming results into the DOM, apply the same idea. Do not reflow the page for every tiny chunk. Buffer a few and render on a steady rhythm so the browser can paint between updates. Streams and async iteration when a spinner is not enough Sometimes the right move is to show progress as it happens. Users prefer a trickle of real content over a long spinner. Async iterators make this clean. Loop over incoming chunks, render slices as they arrive, and the page feels alive. Pair it with a skeleton screen so the shape of the UI is visible from the start. Your content grows into a believable frame rather than jumping from nothing to finished. Wiring the UI so async behaves Most async work starts with an event. A click, a keypress, an input change. If you wire listeners at the right time and understand how events travel through the DOM, your async code stops fighting the page. The figure on the left shows bubbling: the event fires on the target, then moves outward through its ancestors. On the right, the figure shows capturing: the event moves in from the outer ancestor toward the target before the usual bubbling phase. Watch the order of the console messages. That order is the lesson. A normal listener gives you inner to outer. A capture listener gives you outer to inner. This is why delegation works so well. One listener on a stable parent can hear clicks from many dynamic children. Attach listeners when elements exist. DOMContentLoaded is the sweet spot. If you want to intercept early, register a capture listener. If you want one place to handle many items, register a bubbling listener on a parent and let events rise to it. Here is a tiny delegation pattern that stays out of the way: document.addEventListener("DOMContentLoaded", () => { const list = document.querySelector("#todo-list"); list.addEventListener("click", async (e) => { const btn = e.target.closest("[data-action='delete']"); if (!btn) return; try { const id = btn.closest("li").dataset.id; await fetch(`/api/todos/${id}`, { method: "DELETE" }); btn.closest("li").remove(); } catch (err) { alert(err.message); } }); }); Two controls to remember as you read the figures. event.preventDefault() stops the browser’s default action. event.stopPropagation() stops the journey through the tree. They solve different problems. Use them on purpose, not by habit. Debugging without guesswork There is a fast way to get unstuck. Put a breakpoint on the await line that surprises you. Step once. Watch local variables. Watch the call stack shift when the continuation runs. Put a breakpoint in the catch you believe is responsible for that block of work and confirm that it fires. Verify that it finally runs every time. Ten minutes of that beats an hour of logs. When a flow does something odd, ask three questions. Did the handler attach at the time I thought it did? Did the promise I awaited actually reject, or did it resolve to an error-shaped value? Did my cleanup run? You can answer those in the debugger faster than you can by guessing. Make it feel fast, not just be fast People judge speed by responsiveness. Start optimistic updates where it is safe and reconcile with the server when the result arrives. Keep event handlers small so the browser can paint and react to the next input. Defer non-critical work with requestAnimationFrame or a microtask. If you need heavy computation, hand it to a worker so the main thread stays clear. The goal is not a perfect number on a benchmark. The goal is a page that feels alive even on a noisy network and a mid-range phone. A short wrap so the ideas stick Promises are the contract. async and await make the contract readable. The event loop sets the rhythm and your code decides what runs together and what must wait. Add cancel so old results never clobber new ones. Add a gentle limiter so nothing overwhelms anything else. Add retries with timeouts so failures are handled on purpose. Wire events at the right time and let delegation carry some of the weight. Debug at the await points. If you keep these habits, your app will feel composed on a good day and resilient on a bad one. If you want to go deeper into these foundations, many of the concepts in this week’s issue come from JavaScript from Beginner to Professional. It’s a solid reference to keep on your shelf, or your Kindle! Cheers! Editor-in-chief, Kinnari Chohan Got 60 seconds? Tell us what clicked (or didn’t) SUBSCRIBE FOR MORE AND SHARE IT WITH A FRIEND! *{box-sizing:border-box}body{margin:0;padding:0}a[x-apple-data-detectors]{color:inherit!important;text-decoration:inherit!important}#MessageViewBody a{color:inherit;text-decoration:none}p{line-height:inherit}.desktop_hide,.desktop_hide table{mso-hide:all;display:none;max-height:0;overflow:hidden}.image_block img+div{display:none}sub,sup{font-size:75%;line-height:0}#converted-body .list_block ol,#converted-body .list_block ul,.body [class~=x_list_block] ol,.body [class~=x_list_block] ul,u+.body .list_block ol,u+.body .list_block ul{padding-left:20px} @media (max-width: 100%;display:block}.mobile_hide{min-height:0;max-height:0;max-width: 100%;overflow:hidden;font-size:0}.desktop_hide,.desktop_hide table{display:table!important;max-height:none!important}} @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }
Read more
  • 0
  • 0

Kinnari Chohan
10 Nov 2025
16 min read
Save for later

WebDevPro #117: Responsive Web Design Essentials and Why It’s Non-Negotiable for Modern Websites

Kinnari Chohan
10 Nov 2025
16 min read
Real-world insights for sharper web dev decisions Advertise with Us|Sign Up to the Newsletter @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } WebDevPro #117 Responsive Web Design Essentials and Why It’s Non-Negotiable for Modern Websites Real-world insights for sharper web dev decisions Hi , Welcome to the newest issue of WebDevPro! This time, let’s revisit the core idea behind responsive web design. As Ben Frain, the author of Responsive Web Design with HTML5 and CSS, puts it, it’s “the presentation of web content in the most relevant format for the viewport and device accessing it.” In its infancy, it was typical for responsive design to be implemented by starting with a fixed-width desktop design before trying to scale the design down as needed for smaller screens. However, processes evolved, and it became apparent there was a better way. Namely, everything from design to content management and development worked better when starting with the smallest screens first, and then “progressively enhancing” the design and content for larger screens and/or more capable devices. If the term “progressive enhancement” makes no sense right now, fear not. We’ll be talking about that again in a moment. In today’s digital landscape, responsive web design is no longer optional; it’s essential. Whether you're building a blog, an e-commerce store, or a corporate website, ensuring that your site adapts to different screen sizes is crucial to providing a seamless user experience. In this article, we’ll break down the key principles of responsive web design, discuss why it's a must for modern websites, and show you how to implement it effectively. But let’s rewind for a moment — here are the standout links from our previous edition: ⚙️ Google Testing Blog simplified testing with a “Functional Core, Imperative Shell” approach ⚡ Next.js 16 introduced stable Turbopack, Cache Components, and a new proxy layer 🔁 A deep dive into better async loop patterns in JavaScript 🐍 PyCharm’s “State of Django 2025” survey revealed key trends and popular tools Have any ideas you want to see in the next article? Hit Reply! Build Secure AI Apps Using MCP! We’re running one of the most intense workshops on MCP - Model Context Protocol (MCP) Mastery Workshop (on November 15) to help devs and tech leads get a clear understanding of how to build reliable and secure AI apps with MCP in production. Here's an exclusive offer for our WebDevPro subscribers - just use the code WEBNL40 to get 40% OFF on your ticket! Use Code - WEBNL40 to get 40% OFF! Advertise with us Interested in reaching our audience? Reply to this email or write to kinnaric@packt.com. Learn more about our sponsorship opportunities here. The Shift Toward Responsive Design The world of web design was once dominated by the idea of building static, fixed-width websites. These sites were designed with a particular screen size in mind, usually based on desktop screens. The process was simple: Design for the desktop, then shrink the design for mobile screens. This might’ve worked when the web was primarily accessed through desktop computers, but when mobile devices entered the picture, the whole paradigm needed a serious rethink. Then came the iPhone, the first mobile device that offered a usable browsing experience. Suddenly, we weren’t just designing for 1024px wide screens anymore. We had to think about much smaller screens (320px for an iPhone) and much larger ones (the rise of 4K and ultra-wide monitors). In 2010, Ethan Marcotte coined the term Responsive Web Design in an article that changed the web forever. Instead of creating a website for each device, we could create one flexible, adaptable site that would adjust based on the screen size. This wasn’t just an innovation; it was a paradigm shift that fundamentally changed the way websites were built. Fast forward to today, and responsive web design is no longer an option; it’s a requirement. If your website doesn’t work on mobile, you’re essentially leaving users behind. This has far-reaching consequences, not only for user experience but also for SEO rankings, as Google prioritizes mobile-friendly sites. The Core Elements of Responsive Web Design Responsive web design may sound like a buzzword, but when you break it down, it’s built on three core principles: flexible layouts, responsive images, and media queries. Let’s unpack each of them. 1. Flexible Layouts: Using Fluid Grids The foundation of responsive design is the fluid grid. Think of it as the flexible backbone of your site. In traditional web design, layouts were built using fixed widths, often in pixels. A website might look perfect on a large desktop screen but fall apart when viewed on a smaller mobile screen. The beauty of fluid grids is that they use percentage-based values rather than fixed pixel values. This means that elements on the page can resize proportionally depending on the screen’s size. For example, if you set a content container to 80% width, it will always take up 80% of the available screen space, whether on a 320px mobile screen or a 1920px desktop screen. Here’s an example: With a little CSS, our images will never exceed their bounds It’s like building a house with flexible walls that expand or contract based on the size of the lot. No matter how the screen changes, your website adapts. 🔑 Takeaway: If you’re still using fixed-width layouts, switch to fluid grids to ensure your design is flexible and adaptive. 2. Responsive Images The second pillar of responsive web design is images. In a traditional website, images were often fixed in size and had to be manually adjusted for each screen size. But when you start dealing with mobile devices, desktop displays, and everything in between, images need to scale too. With CSS’s max-width property, you can make images responsive. By setting an image’s max width to 100%, the image will resize automatically based on its container’s size. If you have an image inside a div that is 400px wide, the image will adjust to fit within that 400px width, no matter the device. However, making images responsive isn’t just about scaling. Different devices need different image sizes. Enter the srcset attribute. By providing multiple image sources at different resolutions (like 1x, 2x, or 3x), browsers can choose the appropriate one based on the device’s screen resolution. This ensures the image looks crisp on high-resolution screens (like Retina displays) and keeps load times fast on mobile devices by using smaller images. 🔑 Takeaway: Always use max-width: 100% for images and consider using srcset to serve optimized images for different devices. 3. Media Queries: The Magic of Adaptation Finally, we get to media queries, which allow you to apply different styles based on device characteristics, like screen width, height, or resolution. Media queries are a key tool for responsive design because they allow you to tweak your layout for different screen sizes, orientations, and even device capabilities. For example, you might want to apply a different layout or font size on screens smaller than 600px. You can easily do this with a media query: @media (max-width: 600px) { body { font-size: 14px; } } This code tells the browser, "When the screen width is 600px or less, use a smaller font size." Media queries let you design in breakpoints, which are specific points where your layout or design needs to change. The key here is flexibility: as the screen width shrinks, you can adjust everything from font sizes to layout direction, ensuring that your content looks perfect no matter the device. A well-designed responsive site should never "break" on smaller devices. Instead, it should adapt gracefully, offering a smooth user experience on all screen sizes. 🔑 Takeaway: Use media queries to apply styles based on screen size and make your design adaptive, not fixed. Understanding the Viewport and How Browsers See Your Design Before diving into best practices, it’s worth stepping back to understand how browsers interpret and render your layout. This perspective often separates a good responsive site from a truly polished one. Responsive web design is as much about communicating with the browser as it is about creating flexible layouts. Understanding how the browser “thinks” about space, scale, and context helps you design with intention instead of trial and error. The Viewport: Your Invisible Canvas The viewport is the visible area of a web page within the browser window: the window through which your content is seen. Think of it as your digital stage. When you open a site on a large desktop monitor, it might stretch beautifully across the screen. But on a smaller device, that same design could appear zoomed out and unreadable, like looking at a billboard through binoculars from miles away. This happens because, by default, mobile browsers used to render pages as if they were 980 pixels wide, even when the physical screen was far smaller. The browser would then “squeeze” the layout into that width, forcing users to pinch and zoom their way around the page. The fix comes down to one humble yet essential line of HTML: <meta name="viewport" content="width=device-width, initial-scale=1.0"> This viewport meta tag tells the browser to match the layout width to the device width and scale the content naturally. It’s essentially saying: “Render this page as it was meant to be seen on this screen.” Without it, even the most carefully coded responsive design will fall apart — images will appear tiny, text unreadable, and layouts unmanageable. In short: no viewport meta tag, no responsive design. With only minimal code, we can build a page that responds to the viewport size and offers a preferable layout as needed. By adding just a few more styles, things look even easier on the eye. With those in place, your basic responsive page can look like this on an 800px viewport: The same HTML and CSS provide a different layout for larger viewports Device Pixels vs. CSS Pixels Here’s where things get a little abstract, but it’s crucial. Not all pixels are created equal. Your smartphone might boast a “1080p” or “4K” display, but CSS doesn’t work with physical pixels. Instead, it uses logical (or CSS) pixels, which act as a virtual unit of measurement that the browser translates into physical ones. This abstraction lets browsers display content consistently, regardless of device resolution. For instance, a 200-pixel-wide box in CSS might occupy 400 or even 600 physical pixels on a high-resolution (Retina) display. The browser scales things behind the scenes so that what you see remains visually consistent across devices. It’s a subtle but essential concept, and once you grasp it, those mysterious layout inconsistencies start to make sense. This also explains why testing designs on actual devices often reveals surprises that don’t show up in desktop previews. Browsers are interpreting your code based on device density, zoom level, and scaling factors, not just viewport width. Container Queries: The Future of Responsiveness For years, media queries have been the backbone of responsive design, allowing layouts to change based on the overall screen size. But they come with one limitation: they only respond to the viewport,not the context of individual elements within it. Enter container queries, the next evolution of responsive design. Container queries allow elements to adapt based on the size of their parent container, not the screen. This means a component, like a card, gallery, or sidebar, can intelligently restyle itself depending on where it lives within the layout. For example: @container (max-width: 600px) { .card { flex-direction: column; } } This snippet tells a .card component to switch from a horizontal layout to a vertical one when its parent container becomes narrower than 600px. It doesn’t care whether that’s happening on a mobile screen, a tablet split-view, or a compact sidebar on a desktop; it simply adapts to its environment. The result is modular, self-contained design logic, a far cry from the one-size-fits-all approach of early responsive web design. Container queries usher in an era where components truly understand their space and behave independently, making scalable design systems far easier to maintain. Progressive Enhancement Revisited All of this ties neatly back to the philosophy we began with: progressive enhancement. It’s the idea that you start with a rock-solid foundation that works everywhere, and then progressively add layers of sophistication as the device or browser allows. Start with clean, accessible HTML that works on the smallest, simplest devices. Then enhance it with modern CSS features like Flexbox, Grid, and container queries. Finally, add JavaScript interactivity as the cherry on top, not as the foundation holding everything up. This approach ensures that your site is usable by everyone, from someone browsing on a basic feature phone to a user on the latest ultra-wide 6K display. It’s the essence of designing for the web as a continuum, not a collection of discrete screens. The web should scale up, not just down. It’s not about constraining a desktop site to fit into a mobile screen; it’s about building an experience that grows gracefully as the canvas expands. Best Practices for Building a Responsive Website We’ve covered the essentials, but let’s take a look at some best practices that will elevate your responsive design efforts and ensure your websites are optimized for the best user experience. 1. Mobile-First Design: Start with the Smallest Screen Mobile-first design is a methodology that’s often misunderstood, but it’s crucial in responsive web design. It’s simple: Start designing for the smallest screen first, then progressively enhance the design for larger screens. Why? Because mobile devices are the most used devices for browsing the web today. By designing for mobile first, you focus on what truly matters: clear content, easy navigation, and essential functionality. Once the mobile version is solid, you use media queries to add more complex layouts, larger images, and other enhancements for tablets and desktops. 💡 Takeaway: Design for mobile first to ensure your website is optimized for the most important platform: mobile. 2. Use Flexible Layout Techniques Like Flexbox and Grid When you need a more complex layout, Flexbox and CSS Grid are your best friends. They allow for more flexible and powerful layouts compared to traditional floats or inline-blocks. Flexbox is perfect for one-dimensional layouts (either horizontal or vertical). CSS Grid is ideal for two-dimensional layouts, where you need to arrange both rows and columns. Both allow for responsive layouts that adapt automatically to varying screen sizes without complex calculations or hacks. 💡Takeaway: Use Flexbox for simple one-dimensional layouts and CSS Grid for more complex, two-dimensional layouts. Both are excellent tools for responsive web design. 3. Optimize Your Site for Speed Responsive web design isn’t just about making your site look good on different devices; it’s also about making it fast. Mobile users often rely on slower internet connections, so optimizing your website for performance is key. Lazy loading: Only load images and content when they are needed (i.e., when they enter the viewport). Image optimization: Compress and use modern image formats (like WebP) to keep your images fast and light. Minification: Minify CSS, JavaScript, and HTML files to reduce load times. 💡Takeaway: Always prioritize performance with techniques like lazy loading, image compression, and minification to ensure fast loading times on all devices. 4. Test Across Devices and Viewports Just because a site looks good on your laptop doesn’t mean it will look great on a smartphone. Testing is critical. Use tools like Chrome DevTools or BrowserStack to test your website across different screen sizes and devices. Responsive design doesn’t just happen automatically; it requires thoughtful iteration and testing to ensure that every element works seamlessly, no matter the viewport. 💡Takeaway: Always test your design across multiple devices and screen sizes to ensure it’s functioning as expected. Final Thoughts: The Future of Web Design is Responsive Responsive web design is no longer an option; it’s the standard. Whether you’re building a blog, an e-commerce store, or a business website, responsive design is the key to reaching the broadest possible audience. Websites must look great and function well on any device, or risk losing potential users. As you embark on your next web project, remember the key principles of responsive web design: Use fluid grids and flexible layouts to create adaptable designs. Optimize images for different screens and resolutions. Use media queries to adjust your site’s design based on screen size. Embrace a mobile-first approach for better performance and user experience. Prioritize speed, optimize your code, and always test across devices. By following these best practices and keeping the needs of your users in mind, your website will be prepared for any screen, no matter how large or small. So, take these insights and start building sites that work, everywhere. This article is adapted from Ben Frain’s Responsive Web Design with HTML5 and CSS (Fifth Edition). If you found this excerpt insightful and want to explore the full, modern approach to building truly adaptive websites, buy your copy now and discover how to create designs that perform beautifully across every device and context. Buy on Amazon Buy on Packt Cheers! Editor-in-chief, Kinnari Chohan Got 60 seconds? Tell us what clicked (or didn’t) SUBSCRIBE FOR MORE AND SHARE IT WITH A FRIEND! *{box-sizing:border-box}body{margin:0;padding:0}a[x-apple-data-detectors]{color:inherit!important;text-decoration:inherit!important}#MessageViewBody a{color:inherit;text-decoration:none}p{line-height:inherit}.desktop_hide,.desktop_hide table{mso-hide:all;display:none;max-height:0;overflow:hidden}.image_block img+div{display:none}sub,sup{font-size:75%;line-height:0}#converted-body .list_block ol,#converted-body .list_block ul,.body [class~=x_list_block] ol,.body [class~=x_list_block] ul,u+.body .list_block ol,u+.body .list_block ul{padding-left:20px} @media (max-width: 100%;display:block}.mobile_hide{min-height:0;max-height:0;max-width: 100%;overflow:hidden;font-size:0}.desktop_hide,.desktop_hide table{display:table!important;max-height:none!important}} @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }
Read more
  • 0
  • 0
Kinnari Chohan
09 Jun 2025
10 min read
Save for later

WebDevPro #94: Angular Trims Down, Node Powers Ahead, Remix Evolves

Kinnari Chohan
09 Jun 2025
10 min read
Crafting the Web: Tips, Tools, and Trends for DevelopersAdvertise with Us|Sign Up to the Newsletter @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }WebDevPro #94: Angular Trims Down, Node Powers Ahead, Remix Evolves 🌍🔍Crafting the Web: Tips, Tools, and Trends for DevelopersWeb Devs: Turn Your Knowledge Into IncomeBuild the knowledge base that will enable you to collaborate AI for years to come💰 Competitive Pay Structure⏰ Ultimate Flexibility🚀 Technical Requirements (No AI Experience Needed)Weekly payouts + remote work: The developer opportunity you've been waiting for!The flexible tech side hustle paying up to $50/hourAPPLY NOWHi ,This week’s stack is sharper, more secure, and increasingly self-aware. Angular steps into its zoneless future, Remix opens its doors to the community, and the npm ecosystem gets another wake-up call, this time from polymorphic malware. The AI conversation turns introspective, with Claude getting smarter (but secretive).Here's your tl;dr:🧠 Angular 20 lands – defer blocks, zoneless rendering, and performance-first updates.🛡️ npm malware alert – your config files and SSH keys are at risk.🧱 Remix grows up – governance, RFCs, and a steadier contributor experience.🌀 Anthropic Ends Windsurf’s Claude Access in Strategic Move Against OpenAI – no more direct access.🧰 Node doubled down – Config cleanup and smarter await? We’ll take it.📈 2025 dev forecast – AI, ethics, edge-native roles, and framework face-offs.Also worth your time: Learn React Hooks, 2nd Edition dropped, just in time for React 19. Custom hooks, cleaner state logic, and the end of class components; this one’s your upgrade guide.Got a tip or take? Send it our way and you might see it featured in WebDevPro!Advertise with usInterested in reaching our audience? Reply to this email or write to kinnaric@packt.com.Learn more about our sponsorship opportunities here.A better way to handle vendor security reviews?If you've ever dealt with vendor onboarding or third-party cloud audits, you know how painful it can be: long email chains, stale spreadsheets, and questionnaires that don’t reflect what’s actually happening in the cloud.We recently came across CloudVRM, and it’s a refreshingly modern take on the problem.Instead of asking vendors to fill out forms or send evidence, CloudVRM connects directly to their AWS, Azure, or GCP environments. It pulls real-time telemetry every 24 hours, flags misconfigs, and maps everything to compliance frameworks like SOC 2, ISO 27001, and DORA.It’s already being used by banks and infra-heavy orgs to speed up vendor approvals by 85% and reduce audit overhead by 90%.Worth checking out if you're building or maintaining systems in regulated environments, or just tired of spreadsheet security.Watch the demoLatest news: what's new in web development? 🧑‍💻 Frameworks leveled up, malware took aim, and AI stirred the pot (again). Here's what the web dev world chewed on this week.🧠 Angular 20 launches with smarter builds and zoneless progress: Angular’s latest update is all about performance and clean code vibes. With new defer blocks for surgical lazy loading and a move toward a zoneless future (yes, finally), it’s clear the Angular Renaissance isn’t just marketing.🟢 Double Node.js release day: config gets cleaner, await using expands: Node.js dropped not one but two updates recently. Version 22.16.0 introduces experimental support for node.config.json, paving the way for simpler, centralized project configs. Meanwhile, 24.1.0 builds on await usingsupport, pushing Node deeper into structured resource management territory. 🔗22.16.0 release notes🔗24.1.0 release notes🌀 No More Claude for Windsurf; Anthropic Protects Its Models from Rival Ecosystem: Claude now browses the web, but if you were hoping to peek behind the curtain, tough luck. Anthropic says its Windsurf stack won’t be shared, especially not with OpenAI. “Odd,” they said. Strategic, we read between the lines.🛡️ Node.js devs under fire; npm malware strikes again: Installing random npm packages without reading the docs? What is this, the wild west of 2015?A new polymorphic malware campaign is harvesting sensitive files from Node environments. Your .npmrc and SSH keys are not safe. Audit those dependencies or risk getting owned. Literally.📢 Remix opens up: new governance, more community control: Remix is going full open-source adulting. The framework now has RFCs, working groups, and a governance model that invites more voices to the table. Translation: fewer surprises, more stability, and maybe fewer tweets from angry contributors.Expert corner: what's the web community talking about?🎙The dev community’s looking ahead: Some cloning apps for fun, others predicting frameworks, ethics, and AI identity crises. 2025’s shaping up to be less about syntax, more about choices. And yes, vibe shifts included.🎥 CLI? GUI? Try LLM: Viktor Farcic demonstrates how AI can streamline interactions with IDPs. More intuitive than GUIs, more powerful than CLIs. From querying databases to spinning up infrastructure, we're heading toward a prompt-first future.🔭 The 2025 web dev forecast: AI, edge, and... ethics?: Expect more AI, fewer servers, and a rising need for ethical tech decisions. It’s a future full of promise and job titles that don’t exist yet. Edge-native empathy engineer, anyone?🧱 Framework face-off: what to keep an eye on in 2025: From React’s continued dominance to the rise of Qwik and Astro, the framework battlefield is getting crowded. The message? Choose wisely or you’ll be explaining your pick in every team meeting for the next year.🌀 Stack Overflow’s AI gamble and the dev identity crisis: Stack Overflow is leaning hard into AI to stay relevant, but in doing so, it might be redefining what it means to be a “developer.” Is AI the new stack, or just another tool in the belt? Existential crisis loading...📈 Web trends devs can’t ignore in 2025: Think accessibility-first, no-code/low-code evolution, and AI-as-co-pilot. TL;DR: If your stack isn’t flexing with user-centric design, you might be the bottleneck.Packt catalogue plus a bonus excerpt📚📘 Learn React Hooks, 2nd Edition by Daniel BuglReact 19 is here, and with it comes a sharper, cleaner, more powerful Hooks story. If you’re still reaching for useStateand calling it a day, this book is your next upgrade.Author Daniel Bugl walks you through everything, from building your first Hook-based app to writing custom Hooks, handling form actions, and replacing class components like it’s 2018 calling.Grab your copy!About the authorDaniel Bugl is a full-stack developer, product designer, and entrepreneur specializing in web technologies. He holds a BSc in business informatics and an MSc in data science from TU Wien. A contributor to open source and an active React community member, he founded TouchLay, a hardware/software startup helping businesses showcase their offerings. He’s also served as a technical advisor and full-stack dev for large enterprises and the Austrian government, building citizen services and more.Here’s an excerpt from the book that shows how to make state shareable, clean, and debounced, using a custom Hook that syncs with the URL without spamming history.Creating the Debounced History State HookLet’s now get started extracting the code from the CreatePost component into a DebouncedHistory State Hook:1. Copy the Chapter12_3 folder to a new Chapter12_4 folder by executing the following command: $ cp -R Chapter12_3 Chapter12_42. Open the new Chapter12_4 folder in VS Code.3. Create a new src/hooks/debouncedHistoryState.js file.4. Inside it, import the following: import { useState, useEffect } from 'react' import { useDebouncedCallback } from 'use-debounce' import { useHistoryState } from '@uidotdev/usehooks'5. Define a function that accepts an initial state and a timeout value for the debounce: export function useDebouncedHistoryState(initialState, timeout) {6. Now, define the History State Hook: const { state, set, undo, redo, clear, canUndo, canRedo } = useHistoryState(initialState)7. Next, define a State Hook for the actively edited content: const [content, setContent] = useState(initialState)8. Then, define a Debounced Callback Hook that will set the value of the History State Hook: const debounced = useDebouncedCallback((value) => set(value), timeout)9. Add the Effect Hook that we had before in the CreatePost component: useEffect(() => { debounced.cancel() setContent(state) }, [state, debounced])Remember, this Effect Hook is used to sync the History State back into the actively editedcontent state, meaning that it will change the content of the textbox whenever we triggerthe undo, redo, or clear functionality.10. Now, define a handler function which sets the content state and starts the debouncedcallback: function handleContentChange(e) { const { value } = e.target setContent(value)debounced(value)}11. Finally, return all the values and functions we need from the Hook:return { content, handleContentChange, undo, redo, clear, canUndo,canRedo }}We now have a drop-in replacement for the Debounced History State functionality, which is used in the CreatePostcomponent, so let’s implement it!AI in the spotlight 🔦🤖 Even Sundar Pichai’s vibe-coding nowVibe coding? You know it, you’ve seen it, you might already be doing it. Now Sundar Pichai’s officially on board. The Google CEO revealed he’s been spending time riffing with AI tools, coding by description, not syntax. If the guy running Google is vibe-coding, safe to say it’s more than just a phase.Developer tip of the week 💡🛠️ Don’t sleep on SCIMIf you’re building anything that touches user management for enterprise clients, SCIM (System for Cross-domain Identity Management) isn’t just a nice-to-have, it’s table stakes. This spec handles user provisioning, deprovisioning, and role updates automatically via APIs. Translation: no more janky sync scripts or angry IT teams. It’s the kind of protocol you won’t notice... until you desperately need it. Learn it before your biggest customer asks why you don’t support it.Keep a dev journal🌿Logging your daily wins, bugs, and lessons isn't just for retros, it's for you. A dev journal helps you track progress, spot patterns, and level up faster.Get started:📘 You should keep a developer’s journal – Stack Overflow🛠️ Flow by Invide – Minimalist dev journaling tool📋 Developer Brain Template – Notion MarketplaceStart small: jot down a few bullet points at the end of each day. Your future self will thank you!And that's a wrap 🎬Not every week reshapes your workflow but this one nudged the edges. From vibe-coding going mainstream to frameworks tightening up, and protocols like SCIM reminding us the boring bits still matter.Until next time, build thoughtfully.Cheers!Kinnari Chohan,Editor-in-chiefSUBSCRIBE FOR MORE AND SHARE IT WITH A FRIEND!*{box-sizing:border-box}body{margin:0;padding:0}a[x-apple-data-detectors]{color:inherit!important;text-decoration:inherit!important}#MessageViewBody a{color:inherit;text-decoration:none}p{line-height:inherit}.desktop_hide,.desktop_hide table{mso-hide:all;display:none;max-height:0;overflow:hidden}.image_block img+div{display:none}sub,sup{font-size:75%;line-height:0}#converted-body .list_block ol,#converted-body .list_block ul,.body [class~=x_list_block] ol,.body [class~=x_list_block] ul,u+.body .list_block ol,u+.body .list_block ul{padding-left:20px} @media (max-width: 100%;display:block}.mobile_hide{min-height:0;max-height:0;max-width: 100%;overflow:hidden;font-size:0}.desktop_hide,.desktop_hide table{display:table!important;max-height:none!important}} @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }
Read more
  • 0
  • 0

Kinnari Chohan
16 Jun 2025
10 min read
Save for later

WebDevPro #95: Latest Django, Python, Spring Tools Releases + Meta AI Privacy Scare

Kinnari Chohan
16 Jun 2025
10 min read
Crafting the Web: Tips, Tools, and Trends for DevelopersAdvertise with Us|Sign Up to the Newsletter @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }WebDevPro #95: Latest Django, Python, Spring Tools Releases + Meta AI Privacy Scare 🌍🔍Crafting the Web: Tips, Tools, and Trends for DevelopersGet hands-on with MCP!Join us on July 19 for a 150-minute interactive MCP Workshop. Go beyond theory and learn how to build and ship real-world MCP solutions. Limited spots available! Reserve your seat today.Use code EARLY35 for 35% off Hi ,Bugfixes, AI upgrades, security alarms and one privacy blunder that has everyone talking. From core tooling like Django, Spring, and Python getting critical fixes, to OpenAI's smoother GPT-4o and a major misstep in Meta’s AI app design, this week’s webdev round-up is packed with updates that may not make the front page, but absolutely belong in your workflow.Here’s your quick brief:🛠️ Django 5.0.6 and 4.2.13 patch packaging bugs for smoother rollouts🌱 Spring Tools 4.31.0 brings sharper AOT query insight and Spring Boot 3.5 support🐍 Python 3.13.5 fixes a Windows regression affecting extension modules🤖 GPT-4o’s June update improves memory, function calls, and multimodal stability🕵️‍♂️ Meta’s AI app stirs privacy concerns after users share personal data publicly, unknowinglyIn the Expert corner, devs debate the value of Rust compiler speed, explore the rise of passkeys in Spring Security, and unpack how prompt-first AI design could reshape tooling entirely. Read Benj Edward’s o3-pro take or see how David Crawshaw wrestles with AI agents in real workflows.📘 This week’s book pick: Practical Serverless and Microservices with C#.Whether you’re scaling with Azure Functions or simplifying microservices with .NET Aspire, this guide hits both breadth and depth. Grab your copy today!Got a tip or take? Send it our way and you might see it featured in WebDevPro!Advertise with usInterested in reaching our audience? Reply to this email or write to kinnaric@packt.com.Learn more about our sponsorship opportunities here.Latest news: what's new in web development? 🧑‍💻 From framework fixes to AI feature upgrades (and one major privacy red flag), this week’s updates span the tools and topics shaping modern development. Whether you're deep in Python, Spring, or just keeping an eye on AI evolutions, here’s what’s worth your attention.🛠️ Django 5.0.6 and 4.2.13 Bugfix Releases: Django has issued bugfix releases 5.0.6 and 4.2.13, which are reissues of the previous 5.0.5 and 4.2.12 versions. These updates address packaging errors and ensure the stability and reliability of the framework for ongoing projects.🌱 Spring Tools 4.31.0 Sharpens the Dev Toolkit:The latest Spring Tools update brings smoother support for Spring Boot 3.5, better code navigation in VSCode/Eclipse with hierarchical symbols, and improved AOT query visibility. Plus, it’s fully compatible with the Eclipse 2025-06 release.🐍 Python 3.13.5 Fixes Windows Regression: Python 3.13.5 has been released to address a regression affecting Windows users, specifically an issue with the pyconfig.h file in the traditional installer. This fix ensures that extension module builds specify Py_GIL_DISABLED when targeting the free-threaded runtime, maintaining compatibility and stability for developers working on Windows platforms.🤖 OpenAI GPT-4o June Update: Enhanced Functionality:OpenAI has rolled out updates to GPT-4o, focusing on improving system behavior based on user feedback. Enhancements include more reliable memory usage, improved function calling accuracy, and increased stability in multi-modal interactions. These updates aim to make GPT-4o more intuitive and effective across various tasks.🕵️‍♂️ Meta AI App Raises Privacy Concerns:Meta's AI app, launched in April 2025, has come under scrutiny for potential privacy issues. The app features a "Discover" feed where users can share their interactions with the AI chatbot. However, many users have inadvertently shared sensitive information, including personal medical issues and legal matters, often linked to identifiable Instagram profiles. Privacy advocates express concern over users' misunderstanding of the visibility and privacy of their data.Focus mode: On (ft. Beats)🎧 Your code has a rhythm. Your focus should too. This week, we’re tuning into music that powers better dev sessions:Need Deep Flow? Try Endel for AI-generated soundscapes that sync with your circadian rhythm. Think: personalized ambient playlists that cut through noise (literally).Science-Backed Beats: Brain.fm is built on neuroscience. Their “Focus” mode has been shown to improve attention within 15 minutes—perfect for getting into deep work fast.Curated for Coders: Explore Programming Music, a GitHub-curated list of playlists and albums tailored for developers. From ambient to electronic, find your perfect coding soundtrack.Because sometimes the best productivity tool... is a good pair of headphones.Expert corner: what's the web community talking about?🎙What are developers really talking about right now? Whether it’s speculative AI, secure auth, or the eternal love-hate with compilers, this week’s community picks capture the pulse.🧠 Decoding AI "Reasoning" with OpenAI's o3-pro: Viktor Farcic demonstrates how AI can streamline interactions with IDPs. More intuitive than GUIs, more powerful than CLIs. From querying databases to spinning up infrastructure, we're heading toward a prompt-first future.🎙️ Exploring Passkeys with Spring Security:In a recent episode of A Bootiful Podcast, Daniel Garnier-Moiroux delves into the integration of passkeys within Spring Security applications. The discussion offers valuable insights into enhancing authentication mechanisms and the evolving landscape of web security.💰 Meta's $15 Billion Bet on Superintelligence:Meta is reportedly investing $15 billion to pursue the development of computerised "superintelligence," aiming to surpass current AI capabilities. This strategic move includes acquiring a significant stake in Scale AI and reflects Meta's ambition to regain its position in the AI race. The initiative has prompted discussions about the feasibility and ethical considerations of such advancements.🦀 Rust's Compiler Performance Debate:A thought-provoking blog post questions why Rust doesn't prioritize compiler performance more aggressively. The author suggests that while compiler speed is important, it's just one of many aspects the Rust community balances to maintain the language's robustness and safety guarantees.🤖 Programming with AI Agents:David Crawshaw shares his experiences and challenges in integrating AI agents into programming workflows. He emphasizes the importance of understanding the limitations and potential of agents, advocating for a balanced approach that combines human intuition with AI assistance.Packt catalogue plus a bonus excerpt📚📘 Practical Serverless and Microservices with C# by Gabriel Baptista and Francesco AbbruzzeseLearn how to build secure, scalable apps using Azure Functions, Container Apps, and .NET Aspire. This book shows you when to use microservices and serverless and when not to, while guiding you through real-world scenarios, cost planning, and best practices for cloud-native development.Pre-order now!Meet Gabriel...Gabriel Baptista is a tech leader with 20+ years in software development. He heads a team building retail and industrial apps, serves on a tech advisory board, teaches computer engineering, and co-founded start-ups in automation and logistics. He’s also taught software and IT at multiple institutions....and FrancescoFrancesco Abbruzzese, author of the MVC and Blazor Controls Toolkits, has championed the Microsoft web stack since ASP.NET MVC's inception. His company, Mvcct Team, builds web apps, tools, and services. He began with AI-based financial decision systems and later contributed to top-10 games like Puma Street Soccer.If you’ve worked with Kubernetes for local microservices testing, you know the setup can be heavy. In this excerpt from Practical Serverless and Microservices Applications with C# and Azure, see how the same scenario is simplified using .NET Aspire — a lighter, code-first way to orchestrate microservices locally:Using .NET Aspire in practiceIn this section, we will adapt the Kubernetes exampleto run with Aspire. As a first step, let’s copy the whole solution folder into another in a different location, so we can modify it without destroying the previous version.Then, let’s execute the following steps to prepare the overall solution:Add a new App Host project to the solution and call it CarSharingAppHost.Add a new .NET Aspire Service Defaults project to the solution and call it CarSharingServiceDefaults.Add a reference to the FakeSource, FakeDestination, and RoutesPlanning projects to the CarSharingAppHost Add a reference to the CarSharingServiceDefaults project to the FakeSource, FakeDestination, and RoutesPlanning Right-click on the CarSharingAppHost project and, in the menu that appears, select Set as Startup Project.The preceding steps prepare the solution for .NET Aspire. Now, let’s start modifying the code. As a first step, we must add service defaults to all the microservices. Therefore, let’s add builder.AddServiceDefaults(); to the program.cs file of the FakeSource, FakeDestination, and RoutesPlanning projects. Then, we must add app.MapDefaultEndpoints(), which adds health endpoints just to the program.cs file of the RoutesPlanning project, since it is the only web project that we have among our microservices. It must be placed as shown here:var app = builder.Build();app.MapDefaultEndpoints();Now, let’s remember that we added all the microservices parameters as environment variables in their Properties/launcheSettings.json file. We placed them in the Docker launch settings. Now, since these projects will not use Docker anymore while running in Aspire, we must copy all these definitions into the other launch setting profile.This is the launch settings code of the RoutesPlanning project after this change:{"profiles": {"http": {"commandName": "Project","environmentVariables": {//place here your environment variables"ConnectionStrings__DefaultConnection": "Server=localhost;Database=RoutesPlanning;User Id=sa;Password=Passw0rd_;Trust Server Certificate=True;MultipleActiveResultSets=true","ConnectionStrings__RabbitMQConnection": "host=localhost:5672;username=guest;password=_myguest;publisherConfirms=true;timeout=10","Messages__SubscriptionIdPrefix": "routesPlanning","Topology__MaxDistanceKm": "50","Topology__MaxMatches": "5","Timing__HousekeepingIntervalHours": "48","Timing__HousekeepingDelayDays": "10","Timing__OutputEmptyDelayMS": "500","Timing__OutputBatchCount": "10","Timing__OutputRequeueDelayMin": "5","Timing__OutputCircuitBreakMin": "4"},"dotnetRunMessages": true,"applicationUrl": "http://localhost:5212"},"Container (Dockerfile)": {……Want the full walkthrough with real code, resource config, and deployment guidance?Pre-order the book!Developer tip of the week 💡🔐 Mastering OAuth 2.0: Secure Authorization SimplifiedUnderstanding OAuth 2.0 is crucial for modern web development, especially when dealing with third-party integrations. OAuth 2.0 allows users to grant limited access to their resources without sharing credentials. For instance, enabling an application to access your profile data without exposing your password.Key components of the OAuth 2.0 flow include:Resource Owner: The user who authorizes access.Client: The application requesting access.Authorization Server: Validates the user and issues access tokens.Resource Server: Hosts the protected resources.A typical flow involves the user authorizing the client, the client receiving an authorization grant, exchanging it for an access token from the authorization server, and then accessing the resource server using that token.And that's a wrap 🎬Another week, another stack of updates, hot takes, and low-key chaos. If your brain’s buzzing with thoughts, tools, or spicy dev opinions, don’t gatekeep.Until next time.Cheers!Kinnari Chohan,Editor-in-chiefSUBSCRIBE FOR MORE AND SHARE IT WITH A FRIEND!*{box-sizing:border-box}body{margin:0;padding:0}a[x-apple-data-detectors]{color:inherit!important;text-decoration:inherit!important}#MessageViewBody a{color:inherit;text-decoration:none}p{line-height:inherit}.desktop_hide,.desktop_hide table{mso-hide:all;display:none;max-height:0;overflow:hidden}.image_block img+div{display:none}sub,sup{font-size:75%;line-height:0}#converted-body .list_block ol,#converted-body .list_block ul,.body [class~=x_list_block] ol,.body [class~=x_list_block] ul,u+.body .list_block ol,u+.body .list_block ul{padding-left:20px} @media (max-width: 100%;display:block}.mobile_hide{min-height:0;max-height:0;max-width: 100%;overflow:hidden;font-size:0}.desktop_hide,.desktop_hide table{display:table!important;max-height:none!important}} @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} } @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }
Read more
  • 0
  • 0
Modal Close icon
Modal Close icon