<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Aditya</title>
    <description>The latest articles on DEV Community by Aditya (@adityawaslost).</description>
    <link>https://dev.to/adityawaslost</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3288446%2Fc9cd949a-4d63-4449-a907-10fca96c41e5.jpeg</url>
      <title>DEV Community: Aditya</title>
      <link>https://dev.to/adityawaslost</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/adityawaslost"/>
    <language>en</language>
    <item>
      <title>Biryani, With Love: A Deccan-Inspired Interactive Atlas</title>
      <dc:creator>Aditya</dc:creator>
      <pubDate>Sun, 02 Aug 2026 11:31:41 +0000</pubDate>
      <link>https://dev.to/adityawaslost/biryani-with-love-a-deccan-inspired-interactive-atlas-4amb</link>
      <guid>https://dev.to/adityawaslost/biryani-with-love-a-deccan-inspired-interactive-atlas-4amb</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/frontend-2026-07-29"&gt;Frontend Challenge - Comfort Food Edition, Perfect Landing&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Biryani, With Love&lt;/strong&gt; is an interactive editorial atlas about the many regional traditions that share the name biryani.&lt;/p&gt;

&lt;p&gt;I chose biryani because comfort food is rarely only about flavour. It can hold a city, a family ritual, a migration story, a celebration, and a memory of home in the same pot. The landing page follows that idea from Hyderabad through India and across the Indian Ocean.&lt;/p&gt;

&lt;p&gt;The experience includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A research-led map of eight Indian biryani traditions&lt;/li&gt;
&lt;li&gt;A method lab comparing kachchi, pakki, and one-pot cooking sequences&lt;/li&gt;
&lt;li&gt;A guided loop through fourteen traditions across nine countries&lt;/li&gt;
&lt;li&gt;A comparison tool for grain, method, flavour, heat, perfume, tang, and richness&lt;/li&gt;
&lt;li&gt;A historical route connecting language, court kitchens, regional grains, and Indian Ocean migration&lt;/li&gt;
&lt;li&gt;A research shelf that makes the supporting sources visible&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The visual system is inspired by a contemporary Deccan pavilion. Saffron, peacock green, pomegranate red, plum, brass, and ivory create the palette. The hero uses CSS-built arches, minarets, jali panels, steam, rice grains, garnish, and an open copper handi.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/puri-adityakumar/embed/MYJZObG?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codepen.io/puri-adityakumar/pen/MYJZObG" rel="noopener noreferrer"&gt;Open the full CodePen&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Journey
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Finding the right metaphor
&lt;/h3&gt;

&lt;p&gt;My first version treated the page like a clean editorial index. It was readable, but it did not carry enough of the warmth, ceremony, and visual richness of the subject.&lt;/p&gt;

&lt;p&gt;The breakthrough was to stop treating biryani as a list of recipes and instead design an edible atlas. Each section became a different way to read the same dish: geography, cooking sequence, migration, flavour, and memory.&lt;/p&gt;

&lt;h3&gt;
  
  
  Researching the architecture
&lt;/h3&gt;

&lt;p&gt;The heritage direction was grounded in specific references rather than a generic ornamental style.&lt;/p&gt;

&lt;p&gt;I studied the &lt;a href="https://hyderabad.telangana.gov.in/tourist-place/charminar/" rel="noopener noreferrer"&gt;Charminar architecture described by Hyderabad District&lt;/a&gt;, particularly its four-sided arches, minarets, carved rings, and Qutb Shahi lotus details. I also looked at a &lt;a href="https://www.metmuseum.org/art/collection/search/453343" rel="noopener noreferrer"&gt;sixteenth-century Indian jali in The Metropolitan Museum of Art&lt;/a&gt;, where stars, hexagons, and interlocking geometry create a play of light and pattern.&lt;/p&gt;

&lt;p&gt;Those ideas became solid-color architectural frames, small lattice details, geometric rules, and the central handi illustration. I kept the interface modern by using strong editorial typography, square cards, clear hierarchy, and restrained motion.&lt;/p&gt;

&lt;h3&gt;
  
  
  Correcting the map
&lt;/h3&gt;

&lt;p&gt;The first map used a simplified world dataset and looked noticeably wrong. I replaced it with the official &lt;a href="https://surveyofindia.gov.in/pages/outline-maps-of-india" rel="noopener noreferrer"&gt;Survey of India 1:16m outline vector&lt;/a&gt;, including the island territories.&lt;/p&gt;

&lt;p&gt;The eight city points are projected from geographic coordinates instead of being positioned by eye. The map remains a cultural navigation device, but its outline and locations now have a defensible source.&lt;/p&gt;

&lt;h3&gt;
  
  
  Building the interactions
&lt;/h3&gt;

&lt;p&gt;The project is a single responsive HTML document with inline CSS and vanilla JavaScript. CodePen separates those same three layers into its HTML, CSS, and JavaScript panels.&lt;/p&gt;

&lt;p&gt;JavaScript is used purposefully for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Switching regional map stories&lt;/li&gt;
&lt;li&gt;Updating cooking method diagrams&lt;/li&gt;
&lt;li&gt;Running and pausing the global biryani loop&lt;/li&gt;
&lt;li&gt;Filtering traditions by geography&lt;/li&gt;
&lt;li&gt;Comparing two traditions&lt;/li&gt;
&lt;li&gt;Updating the historical route&lt;/li&gt;
&lt;li&gt;Respecting reduced-motion preferences&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The page contains no raster food photography. The hero, diagrams, decorative architecture, and interface details are created with HTML, CSS, and inline vector geometry.&lt;/p&gt;

&lt;h3&gt;
  
  
  Accessibility and usability
&lt;/h3&gt;

&lt;p&gt;I wanted the atlas to remain useful beyond its visual impact. It includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Semantic sections and heading structure&lt;/li&gt;
&lt;li&gt;Keyboard-operable SVG map points&lt;/li&gt;
&lt;li&gt;Visible focus states&lt;/li&gt;
&lt;li&gt;A skip link&lt;/li&gt;
&lt;li&gt;Live regions for changing content&lt;/li&gt;
&lt;li&gt;Reduced-motion support&lt;/li&gt;
&lt;li&gt;Responsive layouts for narrow screens&lt;/li&gt;
&lt;li&gt;Source links for the research claims&lt;/li&gt;
&lt;li&gt;Clear notes where flavour scores are interpretive rather than scientific measurements&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What I Am Proud Of
&lt;/h2&gt;

&lt;p&gt;I am most proud that the page does not rank biryanis or declare one authentic winner. It gives each tradition enough context to feel distinct while showing the shared ritual underneath: rice, patience, adaptation, and memory.&lt;/p&gt;

&lt;p&gt;The final result feels like a love letter, a research object, and a modern landing page at the same time.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI Collaboration
&lt;/h2&gt;

&lt;p&gt;I used OpenAI Codex as a collaborative coding, research, and iteration tool. I directed the concept, selected the biryani theme, reviewed each visual pass, identified inaccuracies, and made the final design decisions. The implementation and research sources were checked and refined through that collaboration.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>frontendchallenge</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>DUM: Breaking the Seal on Hyderabadi Biryani with Pure CSS</title>
      <dc:creator>Aditya</dc:creator>
      <pubDate>Sun, 02 Aug 2026 06:19:47 +0000</pubDate>
      <link>https://dev.to/adityawaslost/dum-breaking-the-seal-on-hyderabadi-biryani-with-pure-css-28d0</link>
      <guid>https://dev.to/adityawaslost/dum-breaking-the-seal-on-hyderabadi-biryani-with-pure-css-28d0</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/frontend-2026-07-29"&gt;Frontend Challenge - Comfort Food Edition, CSS Art&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Inspiration
&lt;/h2&gt;

&lt;p&gt;Hyderabadi dum biryani is more than a dish to me—it is a ritual. The sealed handi, the slow charcoal heat, the suspense before the atta crust is broken, and the first rush of saffron, mint, birista, and spice all feel inseparable from the experience.&lt;/p&gt;

&lt;p&gt;I wanted to turn that moment into an interactive midnight poster: Hyderabad’s skyline behind a copper handi, with the food hidden until the viewer breaks the seal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Click &lt;strong&gt;BREAK THE SEAL&lt;/strong&gt; to lift the lid and reveal the four biryani layers.&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/editor/puri-adityakumar/embed/019fc0e2-b269-7487-be30-6e380fcb9616?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;The artwork is built with HTML and CSS only:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A native &lt;code&gt;&amp;lt;details&amp;gt;&lt;/code&gt; / &lt;code&gt;&amp;lt;summary&amp;gt;&lt;/code&gt; control stores the open and closed states.&lt;/li&gt;
&lt;li&gt;CSS &lt;code&gt;:has()&lt;/code&gt; coordinates the seal crack, lid lift, layer reveal, steam, labels, embers, and state-aware copy.&lt;/li&gt;
&lt;li&gt;Rice grains, mint leaves, birista, spices, meat, copper patina, flour dust, the skyline, and the moon are all CSS shapes.&lt;/li&gt;
&lt;li&gt;There are no images, SVGs, canvas, JavaScript, gradients, or frameworks.&lt;/li&gt;
&lt;li&gt;A mobile composition and &lt;code&gt;prefers-reduced-motion&lt;/code&gt; keep the piece responsive and accessible.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The reveal is deliberately choreographed:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;seal cracks → lid lifts → layers separate → labels arrive → steam settles&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Journey
&lt;/h2&gt;

&lt;p&gt;The hardest part was keeping the illustration detailed without losing the strong poster silhouette. I iterated on three areas:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Material:&lt;/strong&gt; hammered copper marks, soot, flour residue, dough cracks, and print texture.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Depth:&lt;/strong&gt; curved food layers, overlapping grains, steam arches, and ingredient silhouettes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Motion:&lt;/strong&gt; a staged opening sequence rather than making every element animate at once.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The most satisfying decision was using a semantic HTML control for the interaction. The artwork still works with a keyboard, and disabling motion does not hide the final state.&lt;/p&gt;

&lt;p&gt;I used Codex as an iterative coding and visual-critique partner. I directed the concept, cultural references, composition, and final decisions, while the agent helped implement and test the CSS system.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I’m proud of
&lt;/h2&gt;

&lt;p&gt;The finished piece stays intentionally constrained: one HTML file, one CSS file, a small palette, and no image assets. The interaction adds drama, but CSS remains the star of the submission.&lt;/p&gt;

&lt;p&gt;Thanks for taking a look—and remember: patience is the final ingredient.&lt;/p&gt;

</description>
      <category>frontendchallenge</category>
      <category>devchallenge</category>
      <category>css</category>
    </item>
    <item>
      <title>AI Storyline Generator</title>
      <dc:creator>Aditya</dc:creator>
      <pubDate>Sun, 14 Sep 2025 21:49:45 +0000</pubDate>
      <link>https://dev.to/adityawaslost/ai-storyline-generator-3flp</link>
      <guid>https://dev.to/adityawaslost/ai-storyline-generator-3flp</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/google-ai-studio-2025-09-03"&gt;Google AI Studio Multimodal Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I created AI Storyline Generator, a web app that turns a set of images and a short text prompt into a cohesive narrative. It helps writers and artists quickly build stories or prototypes by offering three modes: Surprise Me (short story with optional cover art), Light Novel (full chapter with illustrations), and Manga (panel art).&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Demo Video&lt;/strong&gt;&lt;br&gt;
  &lt;iframe src="https://www.youtube.com/embed/d9XCAK-FJoM"&gt;
  &lt;/iframe&gt;
&lt;br&gt;
&lt;strong&gt;Screenshots&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzp0hr8a28v8of4af7app.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzp0hr8a28v8of4af7app.png" alt="Screenshot-1"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6z5bkwgq0dpvv3u8t7pk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6z5bkwgq0dpvv3u8t7pk.png" alt="Screenshot-2"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftjjwiu2uqx951s8arkrr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftjjwiu2uqx951s8arkrr.png" alt="Screenshot-3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  LINK
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://ai.studio/apps/drive/1LfupIv14tZuSoTqDvHD6yHBoHzgc0bgG" rel="noopener noreferrer"&gt;Applet Link 🌱&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Note: I was not able to publish the app due to billing issues. Please accept the published app link. Thankyou.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Used Google AI Studio
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Used gemini-2.5-flash-image-preview for vision–language tasks like story generation and all image outputs.&lt;/li&gt;
&lt;li&gt;Used gemini-2.5-flash for Manga mode to reliably create structured JSON scripts.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Multimodal Features
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Image-to-Story Generation: Combines multiple images and text into a connected plot.&lt;/li&gt;
&lt;li&gt;Narrative-Aware Illustration: Generates key-scene illustrations directly from the AI-written story.&lt;/li&gt;
&lt;li&gt;Automated Manga Pipeline: Creates a full manga page by chaining image analysis, JSON scripting, and panel art generation&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>devchallenge</category>
      <category>googleaichallenge</category>
      <category>ai</category>
      <category>gemini</category>
    </item>
    <item>
      <title>Efficient Architecture 101: Is Your Upload Strategy Actually Efficient?</title>
      <dc:creator>Aditya</dc:creator>
      <pubDate>Tue, 26 Aug 2025 17:15:06 +0000</pubDate>
      <link>https://dev.to/adityawaslost/efficient-architecture-101-is-your-upload-strategy-actually-efficient-j17</link>
      <guid>https://dev.to/adityawaslost/efficient-architecture-101-is-your-upload-strategy-actually-efficient-j17</guid>
      <description>&lt;h2&gt;
  
  
  Before we start...
&lt;/h2&gt;

&lt;p&gt;So, why this series? I've recently jumped straight into the complexities of system design, and I think the best approach to learning is by writing blogs and sharing what I have learned. My goal is to create simple blogs with humor and a lot of diagrams. Please note, I'm still learning, so if you're experienced and find something that can be improved or is incorrect, please share your thoughts.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Challenge: A Real-World Bottleneck
&lt;/h2&gt;

&lt;p&gt;Not long ago, I was digging through a codebase and found a classic file upload setup. The user would select a file in their browser, the browser would send it to our backend server, and &lt;em&gt;then&lt;/em&gt; the server would upload it to a cloud storage bucket like AWS S3.&lt;/p&gt;

&lt;p&gt;It worked, but it was far from efficient. The architecture looked something like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0a5qvwoztmbdjrss4ddu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0a5qvwoztmbdjrss4ddu.png" alt=" " width="381" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  So, approach has some serious drawbacks
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It's Slow for the User:&lt;/strong&gt; The file has to make two trips over the internet. The user is stuck waiting for both to complete.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It Hogs Server Resources:&lt;/strong&gt; Imagine 100 users uploading large videos at once. Your server is suddenly trying to process gigabytes of data, choking its memory, CPU, and bandwidth. This is a classic scalability nightmare.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It Can Be More Expensive:&lt;/strong&gt; You're paying for the bandwidth twice – once for the data coming into your server, and again for it going out to the cloud storage. Ouch.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A Slightly Better Approach (That's Actually Worse)
&lt;/h2&gt;

&lt;p&gt;So, to fix the speed issue, why not just upload directly from the browser? Modern tools like the AWS SDK for JavaScript let you do just that. The flow seems simpler and faster.&lt;/p&gt;

&lt;p&gt;But this comes with a giant, flashing, red security warning. To allow the browser to upload, you have to embed your secret access keys directly in the frontend code. This is like leaving the master key to your entire house under the doormat.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fft9src89bcir9prpplfh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fft9src89bcir9prpplfh.png" alt=" " width="322" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Anyone with a little know-how can open their browser's developer tools, find your keys, and gain full, unrestricted access to your storage bucket. It's a disaster waiting to happen.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Real Solution: Pre-Signed URLs
&lt;/h2&gt;

&lt;p&gt;This is where we get the best of both worlds: the speed of a direct upload and the security of a server-managed process.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A &lt;strong&gt;pre-signed URL&lt;/strong&gt; is a special, temporary, and secure link that your server generates. It gives a user permission to perform a &lt;em&gt;specific action&lt;/em&gt; (like uploading a file with a specific name) directly to your cloud storage, but only for a limited time.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frufi0ch96t3i72jbne5p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frufi0ch96t3i72jbne5p.png" alt=" " width="719" height="680"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;the browser first asks the server for permission. The server then generates a temporary, pre-signed URL and sends it back. The browser uses this special URL to upload the file directly to cloud storage. The server's only job is to authorize the request, not to handle the heavy file transfer itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  So, Why prefer pre-singed url for uploads?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Enhanced Security:&lt;/strong&gt; Your cloud storage credentials are never exposed on the client-side.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Improved Performance:&lt;/strong&gt; Files are uploaded directly to cloud storage, reducing latency for the user.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Increased Scalability:&lt;/strong&gt; Offloads the bandwidth and processing load from your server, allowing it to handle more application requests.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost Optimization:&lt;/strong&gt; Reduces egress bandwidth costs from your server.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Best Practices
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Use Short-Lived URLs:&lt;/strong&gt; Always configure pre-signed URLs with the shortest possible expiration time (e.g., 5-15 minutes) to minimize the risk of misuse.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Utilize Multipart Uploads:&lt;/strong&gt; For large files, leverage multipart uploads. This involves generating multiple pre-signed URLs to upload the file in chunks, which improves reliability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Implement Resumable Uploads:&lt;/strong&gt; In case of network interruptions, a robust implementation should allow the upload to resume from the last successfully uploaded part, rather than restarting the entire process.&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
  </channel>
</rss>
