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

36 Articles
Apurva Kadam
19 Sep 2024
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
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
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
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
Save for later

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

Kinnari Chohan
12 May 2025
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
Subscribe to Packt _WebDevPro
Join a community of 40,000+ web developers and receive weekly insights that cut through the noise on the latest web development tools, libraries, and frameworks.

Apurva Kadam
12 Sep 2024
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
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
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
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
Save for later

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

Kinnari Chohan
19 May 2025
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

Kinnari Chohan
26 May 2025
Save for later

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

Kinnari Chohan
26 May 2025
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
25 Aug 2025
Save for later

WebDevPro #106: Python 3.14 steadies releases, Node.js adds crypto and compression, Django pushes accessibility forward

Kinnari Chohan
25 Aug 2025
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 #106: Python 3.14 steadies releases, Node.js adds crypto and compression, Django pushes accessibility forward 🌍🔍 Crafting the Web: Tips, Tools, and Trends for Developers Hi , Welcome to WebDevPro #106! This week, we highlight releases that favor stability, frameworks embracing responsibility, and research that challenges how we think about AI. 🐍 Python 3.14 RC2 fixes bytecode issues while keeping ABI compatibility steady 🟢Node.js 24.6.0 adds new crypto, zstd compression, and a modernized fs module ♿Django publishes accessibility guidelines to make inclusive design a shared task 🧠 Research shows empathetic AI often trades off accuracy and reliability 🔒 MCP vulnerabilities highlight protocol risks On to the details… 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. Take the Survey Now Latest news: what's new in web development? 🧑‍💻 🐍 Python clears the path for 3.14 Release Candidate: Python 3.14 RC2 focuses on stability, with a bytecode fix that means older .pyc files must be recompiled, but the ABI remains untouched, so existing wheels keep working. I see this as the kind of behind-the-scenes change that reinforces Python’s cautious release cadence: disruptions are rare, and when they come, they’re handled with precision to keep the ecosystem steady. 🟢 Node.js v24.6.0 arrives: Node.js v24.6.0 packs in subtle but meaningful updates: system CA integration for easier certificate handling, new cryptography options like ML-DSA, better compression with zstd dictionaries, and a more efficient fs module with Utf8Stream. Our takeaway here is how Node continues to modernize without drama. It’s less about flashy features and more about evolving its foundations for long-term resilience. ♿ Django makes accessibility a shared task:Django’s new accessibility guide gives developers clear steps to ensure features are usable by everyone, especially those relying on assistive tools. What strikes me is how this pushes accessibility from being a nice-to-have into a shared community responsibility. It’s a reminder that frameworks aren’t just code, they’re cultural touchpoints that set the tone for what good software looks like. 🌱 Spring clears legacy paths with 7.0.0-M8 available: Spring’s M8 milestone introduces an @HttpServiceClient annotation to simplify HTTP client setup and accelerate the move from AntPathMatcher to PathPattern. From my perspective, Spring is taking a firm stance on clearing away legacy patterns, and that clarity matters. It’s easier for developers to adopt new idioms when the framework itself signals where the future lies. 🤖 GitHub turns Copilot into a teammate:The new Copilot Agents panel on GitHub lets developers hand off tasks to AI agents and receive the results as draft pull requests. This is a fascinating development because it reframes Copilot from a line-by-line assistant into a workflow partner. It’s the difference between autocomplete and actual delegation, and that shift could reshape how teams think about distributing engineering effort. Staying sharp in .NET means more than just skimming release notes. You need practical tips, proven patterns, and scalable solutions from experts who’ve been in the trenches. That’s exactly what you’ll get with .NETPro, Packt’s new newsletter, along with a free bestselling eBook as a welcome bonus when you sign up. Join .NETPro — It’s Free Expert corner: what's the web community talking about?🎙 🤗Warm-hearted AI comes at a cost: A new arXiv paper shows that making language models more empathetic actually reduces their reliability and increases sycophantic tendencies. From my standpoint, this underscores an important trade-off: emotional charm in AI boosts user comfort but risks undermining honest, critical output. Balancing warmth with truthfulness will be key in AI design going forward. 📖 Understanding MCP’s pitfalls (and a good companion read): The Model Context Protocol (MCP), akin to an “HTTP for AI,” standardizes how LLMs connect to tools and data. I’d recommend pairing this insight with the Getting Started with the Model Context Protocolbook, which offers foundational guidance, both practical and strategic. Together, they frame MCP’s promise and help developers build confidently with context-aware agents. 🔗 Django brings APIs closer to developers:Django now supports full API workflows from backend to client libraries using Django REST Framework, drf‑spectacular for OpenAPI spec generation, and openapi‑generator for creating clients, with automation via Dependabot and GitHub Actions. Personally, this shift feels like a leap in developer productivity: automated specs and client syncing reduce friction and keep integrations tight. 🌐The browser has already evolved:A provocative "SPA is dead" post from the RedwoodSDK team argues that the hacks we created, such as routing workarounds, manual state syncs, are now obsolete; the browser itself is robust enough for proper web architecture. This feels like a turning point: we can finally build "the web again" instead of bending it to look native. 🟢 Vue’s future is the community itself:Stack Overflow reflects on Vue’s path forward, suggesting that the future of the framework lies less in its codebase and more in its passionate users and contributors. I find that compelling: frameworks thrive when their developer communities drive innovation, collaboration, and real-world usage. Vue’s strength lies in its creators. Want to be featured in WebDevPro? Share your tips or takes, we’re all ears! This week's book drop 📚 📘 Mastering RESTful Services with Java by Marián Varga, Pedro Henrique Pereira de Andrade, Silvio de Morais, Thiago Bomfim, and Igor Avancini Fraga Ready to take your APIs from “it works” to production-grade? This hands-on guide walks you through designing, securing, and scaling REST services with Java, backed by real-world examples. ✅ Build clean, reliable endpoints that are easy to maintain ✅ Lock down your APIs with modern authentication ✅ Boost performance and deploy with confidence This is a perfect pick for Java developers who want their APIs to shine in the real world. Order your copy now! Developer tip 💡 🗣️ Spin up live preview environments for every pull request One of the most effective ways to accelerate feedback and reduce integration headaches is to auto-deploy preview environments for each pull request. Instead of waiting for staging merges or passing screenshots around, you give reviewers and stakeholders a real, isolated instance of the app tied to the PR. They can test the UI, API behavior, and integrations immediately. Tools like Bunnyshelland Koala show how this practice turns feedback loops from days into minutes. Why I think this matters: Reviewers see the change in context, not in theory. Bugs and edge cases surface earlier, when they’re cheapest to fix. Developers get the psychological safety of knowing their code runs in a production-like setting before merge. This is the kind of workflow shift that makes teams not just faster, but calmer, because everyone knows what they’re reviewing and why it matters. Got a minute? Tell us what clicked (or didn't) 🎬 And that’s a wrap. Got a request, a bug to bust, or a genius trick to share? Send it our way. Back in your inbox 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

Kinnari Chohan
18 Aug 2025
Save for later

WebDevPro #105: Rethinking Error Handling with Information Architecture

Kinnari Chohan
18 Aug 2025
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 #105 Rethinking Error Handling with Information Architecture Real-world insights for sharper web dev decisions Hi , Welcome to WebDevPro #105! At some point, every user journey breaks. Maybe a form won’t submit. Or a page loads a 404 error. Or a search comes up empty. In any case, you’re simply left wondering, “What just happened, and... what now?” These moments aren’t rare. They’re inevitable realities of digital experience. Yet many interfaces still treat error states as afterthoughts: blank screens, vague messages, or abrupt stops that interrupt rather than support. But failure doesn’t have to mean frustration. In this issue of WebDevPro, we look at error handling through the lens of information architecture (IA). Inside, you’ll find practical ideas for: Categorizing different types of failure Writing messages that clarify next steps Using IA patterns to preserve orientation and flow Testing not just happy paths, but error scenarios too All these ideas are drawn from Designing Information Architecture by Pabini Gabriel-Petit, a practical guide to creating easy-to-use experiences for digital information spaces by creating well-structured information architectures and effective navigation and search systems. You can grab a copy from Packt or Amazon. Before we jump in, though, let’s take a quick look at last week’s most popular recommended reads: 🚀 TypeScript 5.9 released with new language features and improved developer tooling 🤖 OpenAI introduces GPT-5 with advanced reasoning, multimodal capabilities, and greater customization 🌐 European Accessibility Act set to reshape digital compliance for businesses of all sizes 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. ⚡ Classifying the Error Landscape Not all errors show up the same way. Some are caused by the user, some by the system, and others by the context. Knowing which kind you're dealing with helps you shape a smarter, more helpful response. Errors can be broadly categorized into three groups: 1️⃣ User errors (e.g., invalid form input, mistyped searches): These happen when a user interacts with the interface in a way the system doesn’t accept. This might include entering the wrong format in a form field or submitting incomplete information. The best response is to clearly explain what went wrong and what the user should do next, ideally, in the same moment and space where the mistake occurred. 2️⃣ System errors (e.g., server timeouts, broken APIs): These result from backend or infrastructure issues that interrupt normal functionality. To the user, they often appear without warning and with no clear cause. It’s important to acknowledge the disruption, explain that the issue is temporary or being resolved, and provide options like retrying, saving progress, or contacting support. 3️⃣ Contextual errors (e.g., no search results, unauthorized access): These occur when a feature technically works, but the outcome falls short. These moments benefit from thoughtful messaging, suggestions for alternative actions, and guidance that helps the user reframe their task or explore another route. Understanding these categories helps teams architect better responses. For example, user errors require in-the-moment correction, while system errors demand reassurance and fallback options. Contextual errors benefit most from content strategy; empty states can inspire new actions or explain why nothing showed up. Effective IA begins with recognizing these failure points across journeys and structuring pathways around them. 🎯 Clear Error Design Starts with the User Error messages should guide, not confuse. When they sound defensive, cryptic, or technical, users feel like they’ve hit a wall and their trust takes a hit. Instead of mirroring backend logs or internal logic, focus on what the user was trying to do and how to help them move forward. A vague “Something went wrong” doesn’t help. Neither does a passive-aggressive “Invalid input.” Think about these two kinds of experiences: ❌ “Something went wrong.” ✅ “We couldn’t process your request. Please check your internet connection and try again.” Or these two experiences: ❌ “Invalid input.” ✅ “This field should only contain numbers.” In both cases, the second option informs and empowers users.Clear, helpful language is key. That means: Descriptive labels (“Enter a valid email address”) Actionable guidance (“Try a different filter”) Friendly tone (“We couldn’t find that page. Want to go back home?”) Clear content categories and navigation cues reduce the chances of errors in the first place, and make recovery intuitive when they occur. 🔄 Fallbacks, Not Dead Ends Error states often expose weak points in navigation. Broken links or empty searches should never leave users lost or stranded. When a user encounters an error state, the interface should support forward movement, not abandonment. That’s where fallback navigation comes in. Strong IA includes contingency planning for every type of failure, providing structure and continuity even when primary content can’t load or return useful results. Effective information architecture gives users clear paths forward by: Suggesting content in empty states (e.g., showing auto-correct results or popular/related content) Providing alternative navigation paths from 404 pages (e.g., linking to top site categories, including a search bar, or displaying recent posts) Clearly showing where they are and how they got there (e.g., preserving page titles, navigation context, and section headers even when content fails to load) These elements act as quiet supports that help users regain their footing without getting in the way. Rather than stopping progress, they offer just enough structure to help people reorient, adjust, and keep going. Maintaining visual consistency is equally important. Keeping headers, menus, and overall page context visible helps users stay grounded. They know where they are and how to move forward. The goal isn't to cover up the error. It's to work with it to design through the disruption and turn a broken moment into a path forward. 🚨 Anticipating System Breakdowns From an IA perspective, resilient systems rely on a clear separation of content, structure, and control logic. This allows the interface to degrade gracefully when something goes wrong, rather than collapsing entirely. Here’s how thoughtful information architecture supports recovery during system failures: Using design patterns that support flexible navigation and progressive disclosure: When part of the system breaks, the interface shouldn’t lock the user out of everything else. Progressive disclosure allows content to load in layers or segments, so if one module fails, others still work. Flexible navigation ensures users can still move through the site even if some panels, widgets, or dynamic content aren’t available. Predefining the hierarchy and visibility rules of messages across device types: Error messages and fallback components need to appear in predictable, accessible locations across screen sizes and layouts. By defining message priority and placement early in the IA process, you make sure that important feedback doesn't get buried or disappear. Users should always know what happened and what they can do next, no matter what device they’re using. Ensuring error overlays don’t obscure navigation or state indicators: When displaying modals or banners for system errors, avoid covering global navigation, breadcrumbs, or progress indicators. These elements provide orientation, and users rely on them, especially during disruption. Let the error be visible, but don’t let it block the ability to explore or exit gracefully. These small design decisions add up. When users can still find their way, access key actions, and understand what’s happening — even when parts of the system fail — you’re building trust into the experience itself. 🛤️ Testing the Rough Paths Too Most usability tests focus on the smooth, expected path. But real users don’t always follow that. This could be down to mismatched queries, unexpected clicks, or network slowdowns. During testing, ask questions like: What’s the most common way this could fail? What does the user see when it does? How clearly does the interface explain what happened and what to do next Can you add or improve navigation, messaging, or structure to help the user recover Does the interface maintain its structure and orientation, or does it leave users disoriented? Are users given a clear sense of what they can do next, or do they exit the experience? Testing these moments with intent helps you tighten IA, strengthen messaging, and close experience gaps before they show up in production. 📍 Sprint Challenge: Map a Fail State Fail states are everywhere. This week, why not look into your own? Pick a screen or flow such as checkout, search, or login. Revisit it with fresh eyes and ask yourself the above questions. Once you’ve reflected, make one small improvement. It could be a clearer error message, a more helpful fallback screen, or a set of navigation links that guide users forward. Share it with a teammate and ask, “Would this help you get back on track?” Got 60 seconds? Tell us what clicked (or didn’t) 📚 Want to go deeper? Error handling is just one piece of the puzzle. Designing Information Architecture dives deeper into navigation, structure, and the systems that help users find their way, even in complex digital spaces. Get your copy today! 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
14 Aug 2025
Save for later

WebDevPro #104: The Model Context Protocol Is Changing How We Build AI-Driven Web Apps

Kinnari Chohan
14 Aug 2025
Why developers are turning to MCP for scalable, secure, and intelligent solutionsAdvertise 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 #104: The Model Context Protocol Is Changing How We Build AI-Driven Web AppsWhy developers are turning to MCP for scalable, secure, and intelligent solutions and how to get started todayHi ,Welcome to WebDevPro #104.We have all seen the impressive AI demos. Assistants that can code, summarize, plan, and collaborate almost like a teammate.But connecting them to your real systems, your APIs, databases, or business tools often turns into a mess of brittle integrations and hardcoded workflows. Adding new features can feel like starting over.A new approach is changing that. The Model Context Protocol (MCP) is redefining how AI-powered apps discover, connect to, and use capabilities. It makes them more scalable, secure, and adaptable. It is not another SDK or framework. It is a way for tools and AI systems to work together as naturally as people do.On August 30, join Christoffer Noring, Sr. Cloud Advocate at Microsoft, for a hands-on workshop where you will learn how to build and deploy with MCP. You will leave not just knowing what it is but with your own working implementation.What Exactly Is MCP?The Model Context Protocolis like a universal plug for AI.Right now, most AI assistants live in their own bubble. They can reason well, but they can’t easily reach into your tools, databases, or services without custom, one-off integrations. That means every new data source or capability often means starting from scratch.MCP fixes that by giving developers a single, open standard for connecting AI systems to the outside world. With MCP, you can securely expose capabilities (like “generate an invoice” or “pull customer history”) in a way that any compatible AI client, from an LLM-powered app to a VS Code agent, can discover and use instantly.Think of it as a USB-C port for AI: one connection that works for everything, whether you’re plugging into a CMS, an API, or a cloud service. The result? AI assistants that are faster to build, easier to maintain, and able to do more in the real world.Real-World Use CasesSo what does MCP actually look like in action? Here are a few places where it can make an immediate impact:E-commerce that responds in real time: An AI shopping assistant can pull live product data from your inventory, check shipping status, and even trigger a reorder all by calling MCP capabilities you’ve exposed.Developer tools that work across systems: A VS Code agent could refactor your code, query API documentation, check deployment logs, and open a support ticket without you building a separate connector for each action.AI helpdesk that actually solves problems: A support bot could securely access customer history, issue refunds, and schedule callbacks, all by discovering and using MCP tools without manual setup.In each of these scenarios, MCP makes the connection once and lets it be reused anywhere. Once you’ve set up a capability, any MCP-aware client can find it, understand it, and use it. That’s why more developers are starting to see MCP not as another integration layer, but as a foundation for AI-ready applications.Putting MCP into PracticeUnderstanding the principles behind the Model Context Protocol is one thing. Turning those ideas into a functioning client–server setup is another. This is where the real value of MCP comes alive.If you’re ready to go beyond reading about MCP and actually build something you can use, join our focused 2.5-hour workshop on August 30th with Christoffer Noring (Sr. Cloud Advocate, Microsoft).As a bonus, you can grab your spot at 35% off with the code LIMITED35. But act fast, this special deal disappears on Monday, 18th August.Save your spot at 35% OFFIn one session, you’ll:Understand the “why” behind MCP: Learn how separating tools from LLMs makes AI systems more scalable, maintainable, and adaptable.Master the core architecture: See exactly how MCP clients and servers discover and communicate with each other.Build and deploy your first MCP server: Code along in Python, guided by Christoffer, and test it with a working MCP client.Connect MCP to real-world systems: Securely expose and consume capabilities from APIs, databases, or cloud services.Your Workshop Package Includes: Free eBook: Model Context Protocol for Beginners (worth $35.99) — full of real-world examples and tips.Exclusive AMAs: Small-group Q&A with Christoffer to troubleshoot and go deeper.Certificate of Completion to showcase your new skills.After this workshop, you’ll be able to:Decide if MCP is right for your AI projects.Build both MCP servers and clients from scratch.Create LLM-powered clients that instantly discover and use MCP capabilities.Who This Is ForThis is for anyone building AI-powered tools or agentic apps:Web developers who want to integrate agents, tools, or LLMs without reinventing server designSoftware architects rethinking interoperability, modularity, and contextAI engineers building structured, scalable, and secure infrastructure for agentsProduct managers working on AI initiatives and looking for a scalable reference architectureReady to Get Started?👉 Reserve your seat in the MCP Workshop (Second Cohort) at 35% OFF👉 Buy the book: Model Context Protocol for BeginnersYou’ll walk away with a better understanding of how to structure your systems, interact with tools programmatically, and deploy AI-native web applications with confidence.See you at the workshop!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
11 Aug 2025
Save for later

WebDevPro #103: GPT 5 brings deeper reasoning and 256K context, Laravel Cloud hits production, TypeScript defers imports for faster apps

Kinnari Chohan
11 Aug 2025
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 #103: GPT 5 brings deeper reasoning and 256K context, Laravel Cloud hits production, TypeScript defers imports for faster apps 🌍🔍Crafting the Web: Tips, Tools, and Trends for DevelopersHi ,Welcome to WebDevPro #103.This week we'll discuss a major GPT leap with real-world impact, frameworks sharpening their cloud focus, and updates that reward precision over flash.🧠 OpenAI unveils GPT-5, their new flagship AI model with high accuracy and coding power🛠️ Microsoft releases TypeScript 5.9 with deferred imports and enhanced developer experience🌍 EU accessibility law to make inclusive design a baseline requirement goes into effect soon🎨 Vibe Coding hits limits as case studies show production pitfalls🧩 Escape dependency chaos with Gleam’s new package managerLet’s get into it!Advertise with usInterested in reaching our audience? Reply to this email or write to kinnaric@packt.com.Learn more about our sponsorship opportunities here.Take the Survey NowLatest news: what's new in web development? 🧑‍💻 🧠 GPT‑5 reshapes how we work with AI: This one lands with weight. OpenAI’s GPT-5 brings deeper reasoning, a 256K context window, and plug-and-play access to tools like Gmail and Calendar. For front-end developers, it can parse entire component libraries, refactor in context, and handle repetitive UI logic so you can focus on design and features. It’s not just better completion, but offloading integration work, documentation updates, and testing boilerplate so you can stay in the creative loop. Free tier limits aside, assistants are moving from code helpers to running the room.🛠️ TypeScript 5.9 adds deferred imports: It’s not the loudest release, but it’s one of the most satisfying. TypeScript 5.9 introduces import defer, which delays module execution until first use. It’s an elegant step toward shipping leaner code and faster boot times, especially in browser-heavy apps. Add in better JSDoc handling and faster type-checking, and you’ve got a release that rewards craft. For those of us who live in the editor, this update feels like good tools getting out of your way, and devs are already praising the low-friction syntax and real-world performance gains.⚙️ Django 5.2.5 resolves key regressions: This release is mainly a bugfix, but it’s worth more than a footnote. The fix to .bulk_create() with foreign keys using PostgreSQL’s UNNEST strategy addresses a real pain point for teams dealing with performance-heavy inserts. And here's a tip: Django 5 By Example now includes coverage of Django 5.1 and 5.2. It’s a great companion if you’re rebuilding or exploring Django 5’s ecosystem, and one that helps you build project confidence rather than just feature familiarity.🌍 EU accessibility law goes into effect soon: This isn’t a niche regulation. The European Accessibility Act kicks in next year, and it applies to both public and private websites. What stands out is the scope — this touches payment platforms, online shops, mobile apps, and more. Whether you’re in the EU or shipping to it, accessibility can’t be a bolt-on anymore. Developers are treating this as a signal to integrate accessibility from the first wireframe, not as a compliance patch later.☁️ Laracon US 2025 — Cloud GA, Laravel 12, Livewire Voltsharpens: Laravel Cloud is now production-ready, bringing GA Cloud MySQL, preview autoscaling for queues, and simpler starter pricing. The conference also delivered Laravel 12’s release date, first-class Volt components for Livewire, native type coverage reports, and improved team features in Forge. These moves strengthen Laravel’s position as an end-to-end PHP ecosystem, covering framework, tooling, and hosting without sacrificing the developer-first ethos that made it popular.📊 Stack Overflow’s 2025 Developer Survey: This year’s survey captured insights from 49,000+ developers across 177 countries, covering 314 technologies. AI adoption hit a record 84%, but trust is slipping — nearly half of devs say AI-generated output isn’t reliable, and many spend extra time debugging it. Python saw the biggest language growth (+7% YoY), driven by AI, data, and backend use cases, while JavaScript, HTML/CSS, and SQL remain dominant.Expert corner: what's the web community talking about?🎙🎨 “Vibe Coding” Hits a Wall in Production: BI digs into the hype and reality of AI-assisted rapid prototyping. While “vibe coding” can help teams move from zero to MVP fast, case studies from Airtable and Redis reveal why shipping a stable, production-ready product still requires deliberate architecture, testing, and human oversight.🔍 Cloudflare CEO Predicts AI Will Redefine Search: Matthew Prince outlines how AI could fundamentally change the way search engines work, shifting from keyword matching to intent-based, conversational results. He also explains how Cloudflare and Google are positioning themselves for this next phase of the web.🧠 Why AI Tools Can’t Replace Developer Thinking: John Whiles argues that while AI can autocomplete code and speed up repetitive work, it cannot build the mental frameworks required to solve complex problems. He makes the case that cultivating strong mental models is still the developer’s best long-term advantage.🖼️ AI-Powered Vision in React: LogRocket’s latest guide shows how to integrate MediaPipe’s new Tasks API into a React app, unlocking real-time, in-browser object detection without a backend. By running entirely client-side, it improves privacy, reduces latency, and removes server costs; a combination that’s resonating with developers. For teams exploring AI features, it’s a practical way to ship intelligent capabilities while keeping apps fast and lean.💻 GitHub’s Vision for the AI-Era Developer: GitHub CEO Thomas Dohmke explores how AI is transforming the developer role, moving from initial skepticism to a future where many expect AI to handle 90% of coding within five years. The community response is mixed -- excitement from those eager to shed repetitive work, concern from others about losing hands-on coding skills. For devs willing to adapt, this shift could open up more creative and strategic work than ever before..🦀 Building a GPU Kernel Driver in Rust: Collabora offers a rare behind-the-scenes look at how GPU drivers work and provides a hands-on walkthrough for writing one in Rust. Even if you never plan to touch a GPU driver, the deep dive into low-level systems programming concepts makes this worth a read.Want to be featured in WebDevPro? Share your tips or takes, we’re all ears!This week's book drop 📚📘 Mastering RESTful Services with Javaby Marián Varga, Pedro Henrique Pereira de Andrade , Silvio de Morais, Thiago Bomfim, and Igor Avancini FragaReady to take your APIs from “it works” to production-grade? This hands-on guide walks you through designing, securing, and scaling REST services with Java, backed by real-world examples.✅ Build clean, reliable endpoints that are easy to maintain✅ Lock down your APIs with modern authentication✅ Boost performance and deploy with confidenceThis is a perfect pick for Java developers who want their APIs to shine in the real world.Order your copy now!Developer tip 💡🗣️Skip the Dependency Hell with Gleam’s New Package ManagerTired of dependency headaches? Gleam’s latest package manager update tackles them head-on with: 🔒 Reproducible builds using a lockfile system 🤝 Automatic version conflict resolution 🧩 Smooth integration with Gleam’s statically typed ecosystemThe update ensures consistent builds, prevents mismatches, and keeps projects stable without manual fixes.Got a minute? Tell us what clicked (or didn't)🎬 Aaand that's a wrap. Got a feature request, bug report, or clever hack to share? Slide it into our inbox.See you in seven!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
04 Aug 2025
Save for later

WebDevPro #102: Taming Asynchronous Control Flow in Node.js: From Callback Hell to Elegant Patterns

Kinnari Chohan
04 Aug 2025
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 #102 Taming Asynchronous Control Flow in Node.js: From Callback Hell to Elegant Patterns Real-world insights for sharper web dev decisions Hi , Welcome to WebDevPro #102! Have you ever squinted at a sideways-scrolling wall of callbacks and thought, “How did my tidy weekend project turn into a bowl of asynchronous spaghetti?” You’re not the only one. Every Node developer has faced the pyramid of doom at some point: those layers of nested anonymous functions that turn stack traces into choose-your-own-adventure chaos. Grab a coffee (or a chamomile, no judgment) and let’s start untangling. That kind of code used to feel inevitable. In the early 2010s, callbacks ruled the async landscape. But Node has evolved. Today, we’ve got promises, async/await, fetch built-in, and even cancellation with AbortController. Node 22 adds more to the mix with Array.fromAsync, watch-mode, and a faster AbortSignal. In this piece, I’ll walk you through ways to write asynchronous code that’s readable, predictable, and efficient, from using early returns and named helpers to managing concurrency with queues. These techniques are rooted in Node.js Design Patterns by Luciano Mammino and Mario Casciaro. And while the book releases in September 2025, you can preorder it now from Packt or Amazon. Many of the ideas in this article are drawn directly from its pages. Before we jump in and untangle the mess, let’s take a quick look at last week’s standout reads: 🧠 Replit AI did a boo-boo: A reminder that AI-assisted coding isn't immune to privacy concerns. Transparency and guardrails are just as important as model quality. 🧪 Run Node.js with TypeScript natively: Native .ts support in Node.js is a big deal — fewer build tools, faster prototyping, and cleaner dev setups. 🛠️ GitHub Spark: A browser-based debugger and code editor prototype that hints at where dev UX is headed. Worth watching if you care about live collaboration and instant feedback loops. 📖 if-article in Chrome: This small addition could shape how reader modes and content parsing tools work. Semantic HTML still matters. 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 Problem: Callback Hell Callback hell occurs when code becomes deeply nested with callbacks, making even simple routines hard to read and maintain. For example: asyncFoo(err => { asyncBar(err => { asyncFooBar(err => { // ... }); }); }); This so-called "pyramid of doom" results in: Poor readability due to deep nesting. Variable shadowing/confusion, especially when using multiple err variables). Harder debugging and potential memory leaks. Even a seemingly simple web spider, downloading a URL and saving it to disk, can quickly become a tangle of callbacks: export function spider(url, cb) { const filename = urlToFilename(url); exists(filename, (err, alreadyExists) => { if (err) { cb(err); } else if (alreadyExists) { cb(null, filename, false); } else { get(url, (err, content) => { if (err) { cb(err); } else { recursiveMkdir(dirname(filename), err => { if (err) { cb(err); } else { writeFile(filename, content, err => { if (err) { cb(err); } else { cb(null, filename, true); } }); } }); } }); } }); } It works, but the nesting is overwhelming. 🧹 Cleaning Up Callbacks Callback hell often starts small but can escalate quickly. Thankfully, a few simple refactors can help you flatten nesting and improve code clarity. Here are two techniques that make a big difference: 1. Early Return Handle errors immediately and exit the function early to reduce indentation and improve readability: if (err) return cb(err); // ...rest of the code Always use return after invoking the callback to prevent unintended fall-through. 2. Named Functions and Modularity Break complex flows into named, reusable functions: function saveFile(filename, content, cb) { recursiveMkdir(dirname(filename), err => { if (err) return cb(err); writeFile(filename, content, cb); }); } function download(url, filename, cb) { console.log(`Downloading ${url} into ${filename}`); get(url, (err, content) => { if (err) return cb(err); saveFile(filename, content, cb); }); } The main spider() function becomes far cleaner: export function spider(url, cb) { const filename = urlToFilename(url); exists(filename, (err, alreadyExists) => { if (err) return cb(err); if (alreadyExists) return cb(null, filename, false); download(url, filename, err => { if (err) return cb(err); cb(null, filename, true); }); }); } 🧠 Async Control Patterns Once your callbacks are cleaned up, the next step is mastering how to organize asynchronous tasks. These four core patterns give you control over when and how async operations are executed. 1. Sequential Execution Sequential execution means performing tasks one after another. In callbacks, this usually leads to nesting, but with good structure, it remains manageable. Consider the following pattern: function task1(cb) { asyncOp(() => task2(cb)); } function task2(cb) { asyncOp(() => task3(cb)); } function task3(cb) { asyncOp(cb); } task1(() => { console.log('All tasks done!'); }); If you need to iterate over a list (e.g., download several URLs in order), you can't hardcode the sequence. You need sequential iteration. Sequential Iteration Example To spider all links in a page, recursively, one after the other: function spiderLinks(currentUrl, body, maxDepth, cb) { if (maxDepth === 0) return process.nextTick(cb); const links = getPageLinks(currentUrl, body); if (links.length === 0) return process.nextTick(cb); function iterate(index) { if (index === links.length) return cb(); spider(links[index], maxDepth - 1, err => { if (err) return cb(err); iterate(index + 1); }); } iterate(0); } This is the Sequential Iterator Pattern. ✅ Pattern takeaway: Execute one task at a time, waiting for each to finish before moving on. Ideal for ordered operations or rate-limited APIs. Speed Up Mobile Dev Webinar alert! Mobile experts from Bitrise and Embrace break down advanced CI/CD tips and real-user insights to help you speed up builds & deliver top-quality apps. Register here 2. Concurrent Execution If the order doesn't matter, run tasks concurrently for speed. For the web spider, that means starting all link downloads at once and calling back when all are done: In code terms: function spiderLinks(currentUrl, body, maxDepth, cb) { if (maxDepth === 0) return process.nextTick(cb); const links = getPageLinks(currentUrl, body); if (links.length === 0) return process.nextTick(cb); let completed = 0, hasErrors = false; function done(err) { if (err && !hasErrors) { hasErrors = true; return cb(err); } if (++completed === links.length && !hasErrors) cb(); } for (const link of links) { spider(link, maxDepth - 1, done); } } ✅ Pattern takeaway: Launch all tasks together, track completions, and handle the first error gracefully if needed. 3. Fixing Race Conditions With concurrency, race conditions can occur: e.g., two spiders for the same URL run in parallel and both try to download. The solution is simple: use a Set to track URLs in progress. const spidering = new Set(); function spider(url, nesting, cb) { if (spidering.has(url)) return process.nextTick(cb); spidering.add(url); // ... rest of the logic } ✅ Pattern takeaway: Use simple in-memory tracking (like a Set) to ensure the same task isn’t started multiple times. 4. Limited Concurrent Execution Running hundreds of downloads at once will exhaust resources. The pattern is to cap concurrent tasks using a queue. TaskQueue Implementation export class TaskQueue { constructor(concurrency) { this.concurrency = concurrency; this.running = 0; this.queue = []; } pushTask(task) { this.queue.push(task); process.nextTick(this.next.bind(this)); } next() { while (this.running < this.concurrency && this.queue.length > 0) { const task = this.queue.shift(); task(() => { this.running--; process.nextTick(this.next.bind(this)); }); this.running++; } } } Integration in Spider The spider now pushes crawl tasks to the TaskQueue. The queue manages scheduling, ensuring that no more than N downloads are active. function spiderTask(url, maxDepth, queue, cb) { // ... file check, download logic ... spiderLinks(url, content, maxDepth, queue); cb(); } function spiderLinks(currentUrl, body, maxDepth, queue) { if (maxDepth === 0) return; const links = getPageLinks(currentUrl, body); for (const link of links) { spider(link, maxDepth - 1, queue); } } const spidering = new Set(); export function spider(url, maxDepth, queue) { if (spidering.has(url)) return; spidering.add(url); queue.pushTask(done => spiderTask(url, maxDepth, queue, done)); } Set up and run: const url = process.argv[2]; const maxDepth = Number.parseInt(process.argv[3], 10) || 1; const concurrency = Number.parseInt(process.argv[4], 10) || 2; const spiderQueue = new TaskQueue(concurrency); spider(url, maxDepth, spiderQueue); ✅ Pattern takeaway: This approach balances performance and resource usage, ensuring you don’t overload the system while still getting the speed boost of parallelism. 🧪 Final Thoughts & Sprint Challenge Asynchronous code in Node.js doesn't have to be messy. With a few core principles like early returns, modular functions, and clear control flow patterns, you can escape callback hell and build code that's easier to read, maintain, and scale. Whether you're running tasks in sequence, firing them off in parallel, or limiting concurrency with a task queue, each pattern gives you more structure and predictability in your async workflows. ✅ Your Sprint Challenge: Pick one pattern, such as early return, sequential iteration, or limited concurrency, and refactor a small async task in your current project. Even a tiny improvement can make a big difference in how your code reads and behaves. Got 60 seconds? Tell us what clicked (or didn’t) 📚 Want to go deeper? These patterns are just the beginning. If you're ready to level up your async thinking, check out and pre-order the updated edition of Node.js Design Patterns by Luciano Mammino and Mario Casciaro. It's full of actionable ideas for building better backend systems with Node! Pre-order from Packt Pre-order from Amazon 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
28 Jul 2025
Save for later

WebDevPro #101: Replit AI wipes a live database, Node drops the build step for TypeScript, and Chrome urges a return to semantic HTML

Kinnari Chohan
28 Jul 2025
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 #101: Replit AI wipes a live database, Node drops the build step for TypeScript, and Chrome urges a return to semantic HTML 🌍🔍Crafting the Web: Tips, Tools, and Trends for DevelopersHi ,Welcome to WebDevPro #101.This week’s issue surfaces what’s shaping the developer workflow behind the headlines: an AI misstep with real consequences, a leaner way to run TypeScript, and grounded insights from developers who are in it daily.🧨 Replit’s AI coding agent deleted an entire production database during a code freeze and returned a fake success message. This shows that vibe coding still requires real production knowledge to be safe.⚡ Node.js can now run TypeScript natively, no transpiler, no build tools. Just write .ts and go. It’s fast, clean, and could shift how devs build with TS entirely.⚙️ GitHub Spark is live now! Spark converts plain-English prompts into full-stack applications, an early but clear step toward AI-first development workflows.📌 Chrome makes the case for semantic HTML again, showing how the <article> tag quietly improves accessibility, readability, and search across modern UIs.🗣️ This TTS sentence reader lets you listen as you iterate: perfect if you're building anything voice-related or just tired of reading UI copy.Let’s get into it.Advertise with usInterested in reaching our audience? Reply to this email or write to kinnaric@packt.com.Learn more about our sponsorship opportunities here.Take the Survey NowLatest news: what's new in web development? 🧑‍💻 🧨 Replit AI coding assistant wipes entire company database:Replit’s AI coding agent was given limited access but ignored a code freeze, wiped production data, and returned a fake success message. The issue wasn’t just technical; it exposed how AI coding agents are still learning, and how steep the learning curve can be. Before writing production code with AI, developers need a solid understanding of how production-grade apps are structured and shipped.🐍 Python 3.14.0 RC1 is live: The next major milestone in Python's journey has arrived. Python 3.14 enters release candidate phase, locking in exciting features like customizable f-strings, exception groups in BaseExceptionGroup, and --check-hash-based-pycs always for added reproducibility.⚡ Run TypeScript natively with Node.js: No more transpile step. Node now runs .ts files out of the box using the TypeScript Native compiler. Faster cold starts, leaner workflows, and serious potential for tooling evolution.💎 Ruby 3.3.9 patches up:This latest Ruby patch release tackles several critical regressions and security issues, especially affecting Net::IMAP and MJIT. A safe update if you're building on 3.3.x.🐘 PostgreSQL 18 beta hits the docs: Fresh out of beta, Postgres 18 brings even more to love: better RETURNING support for MERGE, improved logical replication performance, and libpq enhancements that boost connection handling.🌐 Laravel 12.2.0 gets smarter:Laravel just added more guardrails for developers. This release includes new Blade debugging helpers and stricter behavior around environment configuration—small tweaks that pack a lot of DX polish.⚙️ GitHub Spark builds full-stack apps from plain text: GitHub’s new Copilot tool, Spark, lets you describe an app in natural language and generate a working full-stack prototype. It’s early, but it points clearly toward faster, AI-first development loops. Fix your mental stack overflow 🧘Long sessions = drained focus. Here’s your energy patch:🎧 Get into flow with Focus@Will, which uses neuroscience-backed music to help devs stay zoned in.😮‍💨 Hit pause with box breathing, a 4x4x4x4 method Navy SEALs and software engineers (apparently) both swear by.Try this combo before your next big deploy; you might actually enjoy it.Twilio Segment: Data you can depend on, built your wayTwilio Segment was purpose-built so that you don’t have to worry about your data. Forget the data chaos, dissolve the silos between teams and tools, and bring your data together with ease. So that you can spend more time innovating and less time integrating.Learn moreExpert corner: what's the web community talking about?🎙📌 The humble <article> tag deserves more love:In a sea of div soup, Chrome’s latest blog highlights how semantic HTML like <article> unlocks better readability, accessibility, and search. This isn’t just for blog posts, it matters for product UIs, dashboards, and more.🧠 Caching is hard, even for humans:This developer confessional from Blacksmith cuts through the usual caching advice and gets real about where things break. Expect practical scenarios and a few sharp insights on balancing performance with sanity.🤖 Mental models don’t map 1:1 to AI tooling:John Whiles explores why developers can struggle to make AI tools click. The real challenge isn’t adoption—it’s reconciling how we think about problems with how LLMs solve them. It’s thoughtful, honest, and worth your scroll.🧩 Frontend isn’t going anywhere: Despite the hype around backend-for-frontend (BFF), edge rendering, and AI-based layout tools, InfoWorld argues that frontend skills are still foundational. Clean CSS, accessible HTML, and state orchestration remain as vital as ever.🏢 Enterprise AI needs a grounded strategy:This isn’t about playing with prompts—it’s about aligning AI with actual business goals. From data readiness to change management, InfoWorld’s take walks through how to deploy AI with purpose instead of panic.Want to be featured in WebDevPro? Share your tips or takes, we’re all ears!This week's book drop 📚📘 Node.js Design Patterns, Fourth Edition by Luciano Mammino and Mario CasciaroA practical guide to building scalable, modular Node.js apps using proven design patterns. Learn how to write cleaner code with async flows, middleware, and event-driven architecture.🟦 Learn advanced asynchronous patterns and error handling🟦 Master modularity, dependency injection, and testability in Node🟦 Explore real-world applications of event-driven architecturePre-order your copy now!Developer tip 💡🗣️ Speed up voice-over work with this JS-powered TTS readerNeed to test speech interfaces, generate narration, or just hear your own content read aloud? This no-fuss sentence reader breaks down text into speakable chunks and pipes it through the Web Speech API. Useful for accessibility checks, rapid TTS prototyping, or writing with your ears instead of your eyes.Got a minute? Tell us what clicked (or didn't)🎬 That’s your download for the week. If you’ve got feedback, rants, or ideas to share, we’re all ears.See you next week.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
21 Jul 2025
Save for later

WebDevPro #100: Form Submission in React 19: A Game-Changer for Developers

Kinnari Chohan
21 Jul 2025
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 #100 🎉 Form Submission in React 19: A Game-Changer for Developers Real-world insights for sharper web dev decisions Hi , Before we jump in, THANK YOU ! Every click, reply, and bit of feedback over the past 99 issues helped us build WebDevPro into what it is today. We’re incredibly proud to bring you issue #100. 🎯 To mark the milestone, we’re diving into a topic that reflects the kind of shift we love covering: quietly released, deeply impactful, and immediately relevant. React has evolved a lot over the years, but form handling? It’s long been a source of friction, even for seasoned developers. You needed boilerplate, custom handlers, and third-party libraries just to submit a form. React 19 changes that. To unpack one of its most impactful updates, we sat down with Daniel Bugl, React community contributor and author of Learn React Hooks. His book explores hook-based development in React 18 and 19, and in this special edition, Daniel offers a deep dive into Form Actions, a new feature that brings native simplicity to form submission. With hands-on insights from his work across startups, public sector platforms, and his own company TouchLay, he shows how React 19 is shifting the landscape for frontend developers. In this article, you’ll specifically learn: Why form handling in React has traditionally required workarounds and third-party tools How Form Actions in React 19 simplify submissions with zero dependencies What the useActionState hook does and how to use it effectively How React’s embrace of web standards enhances both developer ergonomics and performance When to skip third-party form libraries and when to keep them The role of FormData Why this shift marks a turning point in how we build UIs in React Before you jump in, here are some highlights from our recent WebDevPro coverage: 👉 Introducing Figma’s Dev Mode MCP Server 👉 Most RESTful APIs Are Not Really RESTful – Florian Kraemer 👉 The Accessibility Pipeline for Frontend Teams – Storybook 👉 The Angular Custom Profiling Track Is Now Available 👉 Introducing Gemini CLI – Google Blog Now let's get straight to the good stuff! Cheers! Your editor-in-chief, Kinnari Chohan 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. Meet the expert Daniel Bugl is a full-stack developer, product designer, and entrepreneur focusing on web technologies. He has a Bachelor of Science degree in business informatics and information systems and a Master of Science degree in data science from the Vienna University of Technology (TU Wien). He is a contributor to many open source projects and a member of the React community. He also founded and runs his own hardware/software start-up, TouchLay, which helps other companies present their products and services. At his company, he constantly works with web technologies, particularly making use of React and Next.js. In the past couple of years, he has worked as a technical advisor and full-stack developer for large enterprises and the public sector, among other things working on citizen services for the Austrian government. Take the Survey Now Why Form Submissions Have Always Been a Headache Up until now, crafting a reliable form in React meant cobbling together multiple moving parts. Loading indicators. Error states. Async logic. Validation rules. Libraries like Formik and React Hook Form promised to help, but came at the cost of extra weight and complexity. The problem wasn’t just technical; it was philosophical. Building a form shouldn’t feel like spinning up a mini state machine. A New Native: Enter Form Actions React 19 introduces Form Actions, a fresh, built-in mechanism that makes form submissions not just manageable, but almost effortless. Instead of inventing a new model, Form Actions extends the standards that browsers have supported for years, combining them with React’s declarative philosophy. The result is a native-feeling form experience that removes the need for custom onSubmit handlers, spinners, or manually tracked errors. What Makes It So Different? Let’s break down what developers gain by using Form Actions: No More Loading State Juggling: Submissions automatically reflect their pending state. Automatic Error Boundaries: Errors are caught and handled gracefully without extra wiring. Minimal Code, Maximum Clarity: You write what matters: input fields and business logic. Standards-First: It builds on FormData, making it interoperable with native HTML and APIs. No Extra Packages Needed: For simple forms, Form Actions eliminate the need for additional libraries. A Look at the Code Here's a simple ContactForm component using useActionState -- React 19's hook for handling form actions: import { useActionState } from 'react'; function ContactForm() { const [state, submitAction, isPending] = useActionState( async (prevState, formData) => { try { const response = await fetch('/api/contact', { method: 'POST', body: formData, }); if (!response.ok) { throw new Error('Failed to submit form'); } return { success: true, message: 'Form submitted successfully!' }; } catch (error) { return { success: false, error: error.message }; } }, { success: false, message: '' } ); return ( <form action={submitAction}> <input name="email" type="email" required /> <textarea name="message" required /> <button type="submit" disabled={isPending}> {isPending ? 'Submitting...' : 'Submit'} </button> {state.success && <p style={{ color: 'green' }}>{state.message}</p>} {state.error && <p style={{ color: 'red' }}>Error: {state.error}</p>} </form> ); } What used to demand state hooks, custom handlers, and error tracking now fits cleanly into a single hook pattern. The behavior stays predictable, and the code remains focused. Demystifying useActionState The useActionState hook is the engine behind the simplicity. It accepts two key inputs: Action Function: This handles submission logic and returns updated state. Initial State: The shape of your form’s state before any interaction. Its return includes: Current State: A state object reflecting success, error, or pending state. Submit Function: Passed directly to the form's action attribute. Pending Indicator: A boolean that tells you whether the action is still being processed. It’s not magic, it’s just better design. The Role of FormData Under the hood, React 19 uses the standard FormData API. This means your form data integrates smoothly with fetch() and server APIs. It’s iterable, lightweight, and supports native browser behaviors without needing a JSON transformation step. Want to learn more? Here’s the MDN reference for FormData. Do Form Libraries Still Matter? React 19’s Form Actions offer a compelling default for handling simple to moderately complex forms, especially those with linear input flows, basic validation, and limited state dependencies. For many use cases, that’s more than enough. But there are still valid reasons to reach for a library: Complex Field Logic: Dynamic forms with conditional field rendering, field-level validation rules, and deeply nested structures still benefit from libraries like Formik or React Hook Form. Custom Validation Systems: When you need schema-based validation (e.g., with Zod or Yup) tightly integrated with your form, third-party libraries provide more granular control and extensibility. Reusable Field Components: If you're managing dozens of input types with shared behaviors (debouncing, formatting, etc.), external libraries help abstract and standardize those patterns. Multi-Step or Wizard Flows: For forms spread across steps or pages, with persistent data across transitions, external form state management may offer cleaner separation and more control. React 19 narrows the gap significantly, but doesn't aim to replace every form tool. Instead, it raises the baseline, giving you a built-in option that handles the fundamentals exceptionally well. You may still choose external libraries, but now, it's a deliberate choice rather than a necessity. What This Means for the Future of React Development The addition of Form Actions in React 19 is more than a convenience feature: it signals a broader shift in how React aligns with the platform. In earlier versions, React often abstracted away browser behavior: it replaced native form mechanics with its own event system, encouraged state-driven rendering over traditional form submissions, and nudged developers toward controlled inputs. While powerful, this approach also created friction, especially for developers working closely with web APIs or server-side logic. Form Actions mark a shift in the opposite direction. React now leverages: The native FormData API, which integrates smoothly with server endpoints Progressive enhancement, letting forms degrade gracefully in environments without JavaScript Async-friendly patterns, like useActionState, that reduce complexity in managing submission flow By embracing standards and minimizing the need for scaffolding, React is moving closer to a model where simple things are truly simple, and complexity is opt-in, not baked in. For developers, this means: Less time writing glue code and handling edge cases More focus on user experience and business logic Cleaner mental models for state transitions and UI feedback React 19 doesn’t remove flexibility. It just gives you a stronger default. And that’s exactly what modern frontend development needs: guardrails that don’t get in your way. Go Deeper Want to dig further into React 19 and its new hooks pattern? Learn React Hooks by Daniel Bugl walks through this and more, covering everything from useEffect fundamentals to advanced composable logic. This change in form handling is more than just a new feature; it’s a sign that React is growing up. And for developers, that means less scaffolding and more building. 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
14 Jul 2025
Save for later

WebDevPro #99: Angular introduces custom profiling tools, TypeScript adds LSP updates, and Figma's new MCP server

Kinnari Chohan
14 Jul 2025
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 #99: Angular introduces custom profiling tools, TypeScript adds LSP updates, and Figma's new MCP server 🌍🔍 Crafting the Web: Tips, Tools, and Trends for Developers Hi , Welcome to WebDevPro #99! This week’s issue is a goldmine of must-know releases, emerging trends, and sharp community takes. Here's what you don't want to miss: ⚙️ TypeScript 5.9 beta: Faster symbol search, smarter completions, and Go-to-Definition that finally behaves. 🧠 Figma’s new MCP Server: Say goodbye to messy exports. Structured design data now flows straight into your dev stack. 🔍 Performance tuning in Angular: Angular’s new custom profiling track gets serious about SSR and hydration debugging. 🧪 Storybook 9.0 brings smarter UI testing: Interaction testing and a11y checks now baked in, no extra config needed. 🧼 Smarter CSS Cleanup with AI: New research shows how machine learning can cut unused styles and slim down your stylesheets automatically. Let's dig in! 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? 🧑‍💻 ⚙️TypeScript 5.9 beta adds language server protocol enhancements: The latest TypeScript beta focuses on polish. Symbol search is faster, completions are more context-aware, and Go to Definition is finally getting smarter about overloads. No flashy features, just quality-of-life upgrades devs will feel every day. 🔍 Angular launches custom profiling track: Performance tuning in Angular just got an upgrade. This new profiling track integrates with Chrome DevTools and visualizes hydration, change detection, and Signals more clearly. If you’re debugging Angular SSR or optimizing large apps, this one’s for you. 🔧 Node.js 24.4 lands with V8 12.4 and diagnostic tweaks: Node 24.4 quietly drops updates to diagnostics_channel, better WebSocket behavior, and a V8 bump that improves performance under the hood. It’s incremental, but stability matters when your runtime is in production everywhere. 🧩 Figma’s Dev Mode MCP Server: Figma’s new MCP Server quietly rewires how design tokens and UI code connect. Now, devs can pull structured design data straight into their stack, no more manual sync or messy exports. One tool for the whole UI loop, finally working like it should. 🌠 Perplexity launches Comet browser with built-in AI:Chrome dominance isn’t shaking yet, but Perplexity’s new Comet browser is aiming for utility over ubiquity. It lets you search with natural questions, get summaries inline, and ask follow-ups without switching tabs. 🤖 AWS to debut AI agent marketplace with Anthropic: This week, AWS is rolling out a dedicated space for pre-trained AI agents, tightly integrated with Bedrock. Anthropic is in at launch, which means Claude-powered tools will be just an API call away for any team working in the AWS cloud. Make your breaks smarter than your bugs 🧠 Tired of scrolling aimlessly between commits? Next time you take a breather, give your brain something fun and useful. 🧩 Try Untrusted,a game where you hack JavaScript logic to escape puzzles. It’s like VS Code meets escape room. 🧠 Then run a quick check on Human Benchmark to flex your memory, focus, and problem-solving muscles. Warning: Oddly addictive. Side effects may include better debugging and faster PR reviews. Expert corner: what's the web community talking about?🎙 🔄 Async Ruby gets a future-focused reality check: Paolina Carmine unpacks the growing interest in async Ruby, tracing the why and the what's next. This take is practical and grounded in real-world limitations. Devs who’ve written concurrent code in Ruby (or tried to) will find this one especially validating. 📡 Most REST APIs aren't really RESTful: Florian Kraemer calls out common violations of REST principles, showing how most APIs claiming the badge miss on constraints like statelessness and proper resource modeling. This is a reminder that solid API design still matters. 🧠 What agentic apps actually look like: Beam offers a practical lens on what it takes to build agentic applications that feel autonomous yet reliable. The post goes past buzzwords into concrete patterns and system design choices that shape how AI-driven apps operate in the real world. 🧭 New research rethinks how agents learn plans: A new paper from Cornell Universityexplores how agents learn and revise plans from feedback, not just static goals. The team proposes a model that mirrors human-like decision-making under uncertainty. The implications go far beyond robotics into how we think about dev workflows with AI in the loop. 🛡️Ethereum cofounder calls for copyleft in Web3:Vitalik Buterin makes the case that permissive licensing has slowed Web3’s ability to create a truly open ecosystem. He calls for a shift to copyleft licenses like AGPL to prevent corporate lock-in and ensure protocol-level transparency. It’s a bold stance that reframes licensing not as legal hygiene but as a structural choice in decentralized design. Want to be featured in WebDevPro? Share your tips or takes, we’re all ears! This week's book drop 📚 📘 Design Beyond Limits with Figma by Simon Jun Ready to turn Figma into a true collaboration engine? This book goes beyond screen mockups to show you how high-performing teams build scalable design systems, streamline handoffs, and integrate AI to boost delivery. Whether you're managing tokens, coordinating with devs, or scaling accessibility, this is your playbook for serious design-to-dev alignment. 📦 Get 25% off the paperback. Use code FIGMA25at checkout. Offer valid through Friday only. Pre-order your copy now! Developer tip 💡 Smarter UIs start with Storybook 9.0 The new Storybook isn’t just smaller, it’s smarter. Version 9.0 now includes built-in interaction testing and accessibility checks, so you can catch UI bugs and a11y issues as you build. No extra setup. No extra tools. If you work on front-end components or design systems, this update will instantly tighten your workflow. Got a minute? Tell us what clicked (or didn't) 🎬 That’s your scoop from the dev-verse this week.If your brain’s buzzing with ideas or feedback, hit reply. 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
Success Subscribed successfully to !
You’ll receive email updates to every time we publish our newsletters.
Modal Close icon
Modal Close icon