Redesigning My Portfolio Site
Tags: beginners, career, webdev, design
Published: 2019-08-16 11:20:54

~~<strong>Edit</strong>: <em>8/19/19 @ 9:45am</em>
I have merged this branch with my master branch. All links now point to my current site, <a href="https://www.ryanfurrer.dev/">ryanfurrer.dev</a>~~

<strong>Edit</strong>: <em>8/22/19 @7:10am</em>
I discovered this cool thing that Netlify does and it gives all pushes to the Origin a unique URL - this means I can still display my <a href="https://5d408fe1ad61da000acea425--ryanfurrer-portfolio.netlify.com/">old site</a>!

###Relevent Links###

If you just wish to see the old and new sites you can hit the links below:

<ul>
<li><a href="https://5d408fe1ad61da000acea425--ryanfurrer-portfolio.netlify.com/">Old Portfolio Site</a></li>
<li><a href="https://ryan-furrer-v2.netlify.app/">New Portfolio Site</a> - at a temporary Netlify domain until I merge with the Master Branch</li>
</ul>

<hr>

<h1>Redesigns Are Fun</h1>

Early in my journey, I created my <a href="https://5d408fe1ad61da000acea425--ryanfurrer-portfolio.netlify.com/">initial portfolio website</a> as my first "big" HTML & CSS project. It is very basic but not the <em>worst</em> looking website, in my opinion.

As I will be applying to jobs in the next 1-1.5 months, mid to late September 2019, I wanted to recreate the portfolio site that will be housing my projects.

##Why Redesign?##

I wanted to redesign my site for a few reasons:

<ul>
<li>I have learned a lot in the last few months and wanted to apply it all in one project</li>
<li>I did not feel that the current site was worth the effort of re-factoring the code, I'd rather start from scratch</li>
<li>I have a problem with looking at the same design for an extended period of time.</li>
    <ul>
    <li>While this is kind of a joke, I often say that I have a problem because I change my phone's home screen (Android) about once per week 😂</li>
    </ul>
</ul>


##Design Process##

Upon choosing the look and feel for my site, I wanted to create the feeling of something light (in feel, not color), clean, simple, and meaningful. Everything on the page has to have purpose. 

><em>I mention the color because there will be dark mode toggle on my site #darkmodeeverything</em>

I also knew I wanted to include a "card" idea in it. These cards would contain the actual content of the web page.

![Blog section of https://www.ryanfurrer.dev/](https://thepracticaldev.s3.amazonaws.com/i/d74p1sxif3lk1900lyj7.PNG)

These were the only real general ideas I set out with. Instead, I first created a skeleton of the page by creating the content with HTML. For sections where I hadn't decided upon the content, I just put placeholder text.

Next I created my banner. I knew I wanted this to take up 100% of the screen upon loading the page so I set the height of the `<header>` to `100vh`. You can see it below on both mobile and desktop.

![My portfolio site's landing page on a Dell XPS 13 Laptop](https://thepracticaldev.s3.amazonaws.com/i/yhreyxcidtaei0crdmzj.png)

###Mobile First###

You may have heard of this "mobile-first" approach to building modern websites. While I personally don't like designing mobile sites, I think they're boring, I feel it's easier to go from small -> large.

It was important for the "card" design to be on both mobile and desktop, so I created a class called `.content-container` and applied it to every section on my page that I wanted that "card" design on - Reusable CSS is a beautiful thing.

I also knew that I did not want to use a standard mobile navigation at the top of my page. Hamburger menus are great, but they are used <em>everywhere</em>, even on some desktop sites. You can see below that my mobile site navigation in the header looks the same as it does on larger screens.

![My portfolio site's landing page on an Apple iPhone X](https://thepracticaldev.s3.amazonaws.com/i/eb2ubda8ijoe4ixonkt9.png)

##Optimizations##

This was my first time truly utilizing Google's <a href="https://developers.google.com/web/tools/lighthouse/">Lighthouse Audits</a> that are built right into the Dev Tools. This is an amazing and powerful tool that I highly recommend you check out if you haven't.

The audit breaks your sight down on a scale of 0 - 100 in four different sections: Performance, Accessibility, Best Practices, and SEO.

<strong>Performance</strong> is how well your site performs. How fast it is to load, how well optimized your images are, minifying your code, and much more.

<strong>Accessibility</strong> is currently a very big topic, and rightfully so. For those browsing the web who's sight is impaired, they need a way to navigate, and a lot use something called a <a href="https://www.afb.org/blindness-and-low-vision/using-technology/assistive-technology-products/screen-readers">screen reader</a>. Lighthouse ensures your website is accessible to everyone and is one of the biggest reasons I recommend using it.

<strong>Best Practices</strong> is just that, ensuring that you are using the best coding practices possible. One of those that I see ignored most of the time is "<em>Avoids Requesting The Notification Permission On Page Load</em>" 😒

<strong>SEO</strong> is very important if you want your site to show up in search results. SEO stands for "Search Engine Optimization" and while I'm not expert at it, Google is, which means Lighthouse is.

I think the best thing about Lighthouse is that if you don't understand something it is telling you to do, every part of the audit has a "learn more" link!

![Lighthouse results on new portfolio site](https://thepracticaldev.s3.amazonaws.com/i/3gbqy7gowcoypyptcd0b.png)
<figcaption>I still have some work to do but I hope to have straight 100's by the end of the weekend</figcaption>


##Things still to do##

These are items that I want to complete before merging this branch with the master-branch. When that is done it will replace the current site at <a href="https://www.ryanfurrer.dev/">my domain</a>.

<ul>
<li>Fix Photos that are too compressed</li>
<li>Finalize font sizing</li>
<li>Add LinkedIn link to footer</li>
<li>Add favicon</li>
<li>Clean up code</li>
    <ul>
    <li>Redundant/Unnecessary CSS</li>
    <li>Make sure HTML is semantic</li>
    </ul>
<li>Adjust margin and padding</li>
    <ul>
    <li>Increase margin/padding to allow for more room to breathe</li>
    <li>Make sure it is all equal where it should be</li>    
    </ul>
<li>Add dark theme to website</li>
    <ul>
    <li>I'll be using <a href="https://dev.to/ryan_furrer/simple-javascript-theme-toggle-46ea">ezToggle</a></li>
    </ul>
<li>Add floating navigation when past header</li>
</ul>

##Closing Thoughts##

I have thoroughly enjoyed this project and cannot wait to work on my next one. If you've waited this entire time to check out the new site, <a href="https://www.ryanfurrer.dev/">here it is</a>!

I really appreciate you taking the time to read my article and <em>please</em> to reach out below in the comments or on <a href="https://twitter.com/ryanfurrer_dev">Twitter</a> if you have any questions, comments, constructive criticism...anything!

~~<strong>Edit</strong>: <em>8/19/19 @ 9:45am</em>
I have merged this branch with my master branch. All links now point to my current site, <a href="https://www.ryanfurrer.dev/">ryanfurrer.dev</a>~~

<strong>Edit</strong>: <em>8/22/19 @7:10am</em>
I discovered this cool thing that Netlify does and it gives all pushes to the Origin a unique URL - this means I can still display my <a href="https://5d408fe1ad61da000acea425--ryanfurrer-portfolio.netlify.com/">old site</a>!