aboutsummaryrefslogtreecommitdiff
path: root/content/blog/2020-12-27-website-redesign.md
blob: 997c961053e7a53c9d25d02b0a6391ad0433d962 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
+++
date = 2020-12-27
title = "Redesigning My Website: The 5 KB Result"
description = "A retrospective on my recent website redesign."
+++

# A Brief History

As a form of continuous learning and entertainment, I've been running a
handful of websites since 2016 when I took my first programming courses
in college. I maintain one main website, the place I consider the
official website to represent me. Under this site, I have a handful of
subdirectories and subdomains.

One of the parts I've enjoyed the most about web development is the
aspect of designing an identity for a web page and working to find
exciting ways to display the site's content. Inevitably, this means
I've changed the designs for my websites more times than I could
possibly count. Since I don't really host anything on my main webpage
that's vital, it allows me the freedom to change things as inspiration
strikes.

Historically, I've relied on core utilities for spacing, components,
and layouts from [Bootstrap](https://getbootstrap.com) and added custom
CSS for fonts, accents, colors, and other items. I also tend to create
sites with no border radius on items, visible borders, and content that
takes up the entire screen (using whitespace inside components instead
of whitespace around my components).

# The Redesign Process

About a week ago, I found myself wishing for a new design yet again. The
prior design was largely inspired by IBM's [Carbon Design
System](https://www.carbondesignsystem.com) and relied on jQuery,
Bootstrap, along with some compressed
[.webp](https://en.wikipedia.org/wiki/WebP) images.

To anyone who knows my preferences toward web design - and even in my
personal life - it should be no surprise that I immediately started
looking for inspiration on minimalism. While there are some decent
minimalistic designs on sites like
[Dribbble](https://dribbble.com/search/shots/popular/web-design?q=minimalism),
people seem to mostly discuss [brutalist web
design](https://brutalist-web.design) when you ask about minimalism.
While brutalist web design doesn't have to be minimal, it often is.

I suppose, in a way, I did create a brutalist website since my HTML is
semantic and accessible, hyperlinks are colored and underlined, and all
native browser functions like scrolling and the back button work as
expected. However, I didn't think about brutalism while designing these
sites.

The new design followed a simple design process. I walked through the
screens on my blog and asked myself: "Is this element necessary for a
user?" This allowed me to first start by removing all javascript, which
had the sole purpose of allowing users to open a collapsed navbar on
mobile. Replacing the collapsible navbar allowed me to remove both
jQuery and Bootstrap's javascript.

Next, I removed things like author names (since I'm literally the only
person who will ever write on this site), multiple ways to click on a
blog post card, blog post descriptions, and the scroll-to-top button. It
also helped to move all categories to a single page, rather than have
each category on its own page.

The final big piece to finish the
"[KonMari](https://en.wikipedia.org/wiki/Marie_Kondo#KonMari_method)"-like
part of my process was to remove Bootstrap CSS in its entirety. However,
this meant pulling out a few very useful classes, such as `.img-fluid`
and the default font stacks to keep in my custom CSS.

After removing all the unnecessary pieces, I was finally able to
reorganize my content and add a very small amount of custom CSS to make
everything pretty. This took a brief amount of time, effectively just
consisting of me converting `<div>` tags into things like
`<ul>` lists and choosing accent colors.

# The Results

## Reflection

So, what did all of this reorganizing do to my webpages? Well, first, my
websites are now **ridiculously fast**. Since the prior designs were
also minimal and didn't have many images, they measured up in
Firefox's Network Monitor around 300 KB - 600KB. After making the
changes, my main site is at 5 KB transferred (22 KB total), and my blog
is at 6.5 KB transferred (13 KB total). **That means the redesigned
pages are less than 2% the size of the old designs.**

Google Lighthouse ranks the new webpage as 100 in performance,
accessibility, and best practices, with SEO at 92 since they think tap
targets are not sized appropriately for mobile users. First contextual
paints of the pages are under 0.8 seconds with 0 ms of blocking time.
However, the blog subdomain ranks at 100 for all four categories! First
contextual paints of the blog homepage are under 1.0 seconds with 0 ms
of blocking time, due to the fact that the CSS for my blog is within a
separate CSS file, and the CSS for my main website is simply embedded in
the HTML file.

Now that everything is complete, I can confidently say I'm happy with
the result and proud to look at the fastest set of websites I've
created so far.