commit b2bf701739c4775da790d5c77b65842f65c1dfa0
parent bcd903c6ff45b399ca2d56b3fd018aa06cebff8b
Author: Jake Bauer <jbauer@paritybit.ca>
Date: Thu, 28 Mar 2019 02:52:07 -0400
Expand about-site content
Diffstat:
1 file changed, 52 insertions(+), 10 deletions(-)
diff --git a/pages/about-site.md b/pages/about-site.md
@@ -5,13 +5,14 @@ various computing and computer science topics, configuration files, tips and
tricks, and other things that I think others could find useful.
I designed this website with the principles of minimalism and simplicity in
-mind. There is no client-side JavaScript, the server code is contained in a
-single file less than 110 lines long, and there aren't any resource-hogging
-images or superfluous animations to distract you from the important stuff: the
-content. I took an article by Drew DeVault (linked below) as inspiration for
-the philosophy behind the design of this website.
+mind. There is no client-side JavaScript except where necessary on project
+pages, the server code is contained in a single file less than 115 lines long,
+and there aren't any resource-hogging images or superfluous animations to
+distract you from the important stuff: the content. I took an article by Drew
+DeVault [1] as inspiration for the philosophy behind the design of
+this website.
-The code for this website is licensed under the GPL-3.0-or-later. I chose this
+The code for this website [2] is licensed under the GPL-3.0-or-later. I chose this
license because of what the license stands for and what I see my website being
used for. I think people should be able to audit everything about my site and
if they take my code and distribute it I want them to also share what they've
@@ -31,8 +32,9 @@ those who visit my website and use my services. I do this by not collecting any
of my users' information, by not using tracking cookies (or any cookies at
all), and by building a website that doesn't rely on insane numbers of
impossible-to-audit scripts, obfuscated code, or sketchy ad platforms. I don't
-monetize my website because I believe in giving back to the community the
-knowledge that I have gained and the things that I have created.
+monetize my website using ad services or paywalls because I believe in giving
+back to the community the knowledge that I have gained and the things that I
+have created for free and without hassle.
The only thing I keep track of is how many times my pages have been visited.
You can see how I do this by taking a look at the code for this website below
@@ -41,8 +43,48 @@ that information into a file. I do this just because I like to see what people
are interested in, what things of mine have been useful, and if any pages have
"gone viral" so to speak.
+### The Technical Side
+
+This website is built using nodejs as the back-end. This may cause some people
+to cringe, especially since this is a website serving mostly static pages, but
+hear me out. I built this website using nodejs because that's the back-end that
+I learned how to use in university and it's the one that I know the best and am
+most comfortable with. Although in the future I will most-likely move to
+Nginx/PHP for it's faster serving speeds and better database support (databases
+being used in projects hosted on the site), for now nodejs seemed like the best
+and easiest way for me to get my website up and my stuff out there.
+
+That being said... I don't use npm. At all. Whatsoever. All of the code that
+makes up my website has been written by me with help from the nodejs
+documentation and the ever-helpful StackOverflow. There will eventually be an
+essay on why I dislike sub-system package managers like npm but the gist of it
+is that I don't like running someone else's code that I haven't fully audited,
+for which I have to rely on them to maintain, and because it is way easier to
+just write something like this from scratch, given the simplicity, than to try
+to read and understand someone else's code.
+
+The pages themselves are written in the Markdown markup language. This is then
+compiled into HTML, has a header and footer stuck on to it, and is released as
+a fully-formed HTML webpage. Because of the ease of writing in Markdown and
+then being able to translate that into HTML, it just made sense to do it this way.
+
+The CSS for the website is sent through a CSS minifier to make it as small as
+possible for serving to clients. The service I use is linked below [3] and is
+interacted with through their API from my webpage compilation script.
+
+I am constantly tweaking and changing the script which compiles the webpages in
+order to achieve the best outcome with the least amount of manual effort. For
+example, one of my current hurdles is compiling specific pages with certain CSS
+files while leaving those files out of other pages. Right now, because there is
+only a small section of CSS for one specific page, all of the CSS gets put into
+the base.css file. Although this is technically inefficient as far as
+bandwidth usage, it doesn't make a noticeable difference since the amount of
+page-specific CSS is so tiny.
+
### References
-[The Git Repository For This Website](https://git.sr.ht/~jbauer/paritybit.ca)
+[1] [Drew DeVault's Article on Website Design](https://drewdevault.com/2018/09/04/Conservative-web-development.html)
+
+[2] [The Git Repository For This Website](https://git.sr.ht/~jbauer/paritybit.ca)
-[Drew DeVault's Article on Website Design](https://drewdevault.com/2018/09/04/Conservative-web-development.html)
+[3] [CSS Minifier Service](https://cssminifier.com)