<?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: Denny Ferrassoli</title>
    <description>The latest articles on DEV Community by Denny Ferrassoli (@dennyferra).</description>
    <link>https://dev.to/dennyferra</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%2F18036%2Fee8c12b2-bd41-4df6-a7b0-0d84a42ddbba.jpeg</url>
      <title>DEV Community: Denny Ferrassoli</title>
      <link>https://dev.to/dennyferra</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dennyferra"/>
    <language>en</language>
    <item>
      <title>Collagery - A collage gallery builder</title>
      <dc:creator>Denny Ferrassoli</dc:creator>
      <pubDate>Mon, 13 May 2024 05:17:06 +0000</pubDate>
      <link>https://dev.to/dennyferra/collagery-a-collage-gallery-builder-beb</link>
      <guid>https://dev.to/dennyferra/collagery-a-collage-gallery-builder-beb</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;: Visual Feast.&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Collagery is a dynamic "collage" / "gallery" builder. Add images to your collagery, specifying the layout and quality of images.&lt;/p&gt;

&lt;p&gt;I unfortunately had very limited time for this submission, so I rushed through a lot, but I really wanted to participate. I hope you enjoy playing with it as much as I did building it.&lt;/p&gt;

&lt;p&gt;One neat use-case was that you can add the same picture with different quality to get a side-by-side comparison of the images.&lt;/p&gt;

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

&lt;p&gt;DEMO: &lt;a href="https://collagery.netlify.app/submission"&gt;https://collagery.netlify.app/submission&lt;/a&gt;&lt;br&gt;
Source: &lt;a href="https://github.com/dennyferra/netlify-gallery"&gt;https://github.com/dennyferra/netlify-gallery&lt;/a&gt; (pardon the mess)&lt;br&gt;
Originally sourced from &lt;a href="https://nextjs-platform-starter.netlify.app/"&gt;https://nextjs-platform-starter.netlify.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Select your image and configure your settings&lt;/strong&gt;&lt;br&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%2Ffodyn2xh1abjvx673t49.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%2Ffodyn2xh1abjvx673t49.png" alt="Select an image and configure settings" width="800" height="478"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Build your collagery&lt;/strong&gt;&lt;br&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%2Ftws1hvbhzd04e0s0pjvi.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%2Ftws1hvbhzd04e0s0pjvi.png" alt="Example collagery" width="604" height="493"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;This submission uses the Netlify Image CDN to transform and deliver images quickly and efficiently to enhance the user experience. It also takes advantage of a basic caching utilizing the Cache-Control header configured with &lt;code&gt;public, max-age=604800, must-revalidate&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The Netlify Image CDN was very easy to get started with and if I had more time I would like to have provided users with more customization of the transforms. The API makes it very easy to use in a dynamic context and would save me a ton of time versus trying to setup my own back-end image transformations and CDN. Cheers to Netlify!&lt;/p&gt;

</description>
      <category>netlifychallenge</category>
      <category>devchallenge</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>EGG: Ethereum Guessing Game</title>
      <dc:creator>Denny Ferrassoli</dc:creator>
      <pubDate>Thu, 24 May 2018 22:41:53 +0000</pubDate>
      <link>https://dev.to/dennyferra/egg-ethereum-guessing-game-2bop</link>
      <guid>https://dev.to/dennyferra/egg-ethereum-guessing-game-2bop</guid>
      <description>&lt;h1&gt;
  
  
  What I built
&lt;/h1&gt;

&lt;p&gt;🥚 EGG: The Ethereum Guessing Game! Can you see the future? Then you'll win mad internet fame by playing EGG. Guess what you think the price of Ethereum will be before the round ends and whoever guesses closest wins the round!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Now for the marketing version:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;An innovative real-time e-sports guessing game that leverages the Ethereum decentralized platform empowering players to deliver best-of-breed analysis of future market trades! (&lt;em&gt;ICO coming soon&lt;/em&gt;)&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://etherguess.herokuapp.com/" rel="noopener noreferrer"&gt;https://etherguess.herokuapp.com/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Link to Code
&lt;/h2&gt;

&lt;p&gt;I split up the back/frontend so there are 2 repos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Backend: &lt;a href="https://github.com/dennyferra/PusherContest" rel="noopener noreferrer"&gt;https://github.com/dennyferra/PusherContest&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Frontend: &lt;a href="https://github.com/dennyferra/PusherContestFront" rel="noopener noreferrer"&gt;https://github.com/dennyferra/PusherContestFront&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  How I built it 🤓
&lt;/h1&gt;

&lt;p&gt;I started out not really knowing what I wanted to build but I knew what stack I wanted to use: Node/Express, React/&lt;a href="https://github.com/mobxjs/mobx" rel="noopener noreferrer"&gt;MobX&lt;/a&gt;. I built a few MobX projects prior to this and I was interested in trying out some features of MobX that I hadn't used before. I was very limited with time so the code is quite unorganized, slapped together with duct tape and marshmallows, and likely has bugs (no tests), but I might revisit it at a later time and clean things up.&lt;/p&gt;

&lt;p&gt;I used &lt;a href="https://bulma.io/" rel="noopener noreferrer"&gt;Bulma CSS Framework&lt;/a&gt; for the first time. Started out with a template and overall it was pretty easy to work with. I also used some animations from &lt;a href="https://daneden.github.io/animate.css/" rel="noopener noreferrer"&gt;Animate.css&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I stumbled on &lt;a href="https://codesandbox.io" rel="noopener noreferrer"&gt;CodeSandbox&lt;/a&gt; and ended up writing the frontend entirely using their online editor. It's a really nice editor, feels like VS Code, and they have support for various frameworks like React, Angular, Vue, and Preact.&lt;/p&gt;

&lt;p&gt;Interestingly enough the easiest part of this project was using Pusher. I had a presence channel and public channel set up in no time at all. Their documentation made it pretty easy to get set up. My only issue was the auto-reloading of CodeSandbox - it ended up keeping channels open so I inadvertently hit the 100 concurrent users limit. After I realized what was going on I changed a setting in CodeSandbox to fully reload on changes and then my problems were gone.&lt;/p&gt;

&lt;p&gt;Hosted the site on Heroku so the Dyno will time out when no users are on the site, but that's unlikely since I'm pretty sure this game will be the next Facebook 🔥 Have fun, thanks!&lt;/p&gt;

</description>
      <category>pushercontest</category>
      <category>game</category>
    </item>
  </channel>
</rss>
