<?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: Hai Le Gia</title>
    <description>The latest articles on DEV Community by Hai Le Gia (@hailg).</description>
    <link>https://dev.to/hailg</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F303392%2Ff8e06694-e231-4e77-aa09-a529b9a6d8f7.jpg</url>
      <title>DEV Community: Hai Le Gia</title>
      <link>https://dev.to/hailg</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hailg"/>
    <language>en</language>
    <item>
      <title>Fast Storage - Netlify Blob challenge</title>
      <dc:creator>Hai Le Gia</dc:creator>
      <pubDate>Sun, 12 May 2024 20:50:07 +0000</pubDate>
      <link>https://dev.to/hailg/fast-storage-netlify-blob-challenge-5f96</link>
      <guid>https://dev.to/hailg/fast-storage-netlify-blob-challenge-5f96</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/netlify"&gt;Netlify Dynamic Site Challenge&lt;/a&gt;: Build with Blobs.&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;I want to build a webapp to support freelancer, software engineers to host their digital products quickly for their MVP. Previously, I would host my downloadable resources on S3 and share with my customers or put it into my landing pages. However, I hate the fact that I have to update this link on all my pages every time when I update new version of the file. &lt;/p&gt;

&lt;p&gt;So what I want to have is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Easily create a product with a downloadable digital file.&lt;/li&gt;
&lt;li&gt;Get a fixed + permanent link for the product. Every time I update the product by uploading a new file, the link won't need to be changed.&lt;/li&gt;
&lt;li&gt;Able to create an auto expiration link for a product so that I can use it for any email or promotion campaigns. The link will live for a period that I defined and then it will be invalidated without me doing any thing.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;All the features I built in last few days are listed in this landing page here: &lt;a href="https://regal-madeleine-9b4642.netlify.app/"&gt;https://regal-madeleine-9b4642.netlify.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A quick look of a few screens showing the features:&lt;/p&gt;

&lt;h3&gt;
  
  
  Mobile screens to add/update products
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkfbscnuugja3us2dj6gx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkfbscnuugja3us2dj6gx.png" alt="Mobile screens" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Expirable link creation
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcchfvfj8xx3jqs447e0e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcchfvfj8xx3jqs447e0e.png" alt="Image description" width="800" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Platform Primitives
&lt;/h2&gt;

&lt;p&gt;I'm using Netlify Blobs to store both the products' photo and binary files. The products and the Blobs' keys are then stored into a DynamoDB table so that I can manage them properly.&lt;/p&gt;

&lt;p&gt;DynamoDB also comes handy with the ability to expire an item. I used this for the short-live link features.&lt;/p&gt;

&lt;p&gt;I'm using Next.js Image so it will leverage Netlify Image CDN as well.&lt;/p&gt;

&lt;p&gt;Here is a cover image for my landing page&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foxgz82emb8mib2m3n4kd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foxgz82emb8mib2m3n4kd.png" alt="Landing Page" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>netlifychallenge</category>
      <category>devchallenge</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
