<?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: vypxl</title>
    <description>The latest articles on DEV Community by vypxl (@vypxl).</description>
    <link>https://dev.to/vypxl</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%2F208174%2Ff6694001-0434-46d4-9a5b-fd80147c1dc1.png</url>
      <title>DEV Community: vypxl</title>
      <link>https://dev.to/vypxl</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vypxl"/>
    <language>en</language>
    <item>
      <title>I released my personal website!</title>
      <dc:creator>vypxl</dc:creator>
      <pubDate>Sat, 09 May 2020 18:36:06 +0000</pubDate>
      <link>https://dev.to/vypxl/i-released-my-personal-website-2dal</link>
      <guid>https://dev.to/vypxl/i-released-my-personal-website-2dal</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;This article was originally published on my blog: &lt;a href="https://vypxl.io/blog/post/about-my-website"&gt;https://vypxl.io/blog/post/about-my-website&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Hey! Welcome and thank you for visiting my first blogpost. Here, I want to talk about all the things that went into developing my personal website.&lt;/p&gt;

&lt;p&gt;What you can see on &lt;a href="https://vypxl.io"&gt;vypxl.io&lt;/a&gt; is actually my fourth(!!) attempt on creating a website and blog for myself, the first three attempts remain unfinished though. Also, I won't talk about the &lt;em&gt;great&lt;/em&gt; programming practices I used back then. But now I can proudly say that I have a personal website, one thing I always wanted to have since I started programming. Now then, how did I accomplish what you can see there?&lt;/p&gt;

&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;p&gt;This website is built on top of a so-called JAMstack.&lt;br&gt;
JAM stands for &lt;strong&gt;J&lt;/strong&gt;avascript, &lt;strong&gt;A&lt;/strong&gt;PIs and &lt;strong&gt;M&lt;/strong&gt;arkup. JAMstack websites are static, generated pages that are hosted on a static website hosting service. &lt;br&gt;
I'm using the static site generator &lt;a href="https://gridsome.org"&gt;&lt;strong&gt;Gridsome&lt;/strong&gt;&lt;/a&gt;. It uses the Javascript framework &lt;a href="https://vuejs.org"&gt;&lt;strong&gt;VueJS&lt;/strong&gt;&lt;/a&gt; under the hood, which makes it easy for me to extend the site with additional content.&lt;br&gt;
For the API part, I'm using &lt;a href="https://sanity.io"&gt;&lt;strong&gt;Sanity&lt;/strong&gt;&lt;/a&gt;, a headless Content Management System. 'Headless' means, that it does not provide a frontend like Wordpress but you have to create a frontend yourself and pull the content from the CMS via its API.&lt;br&gt;
The markup part has two sides. First, there is the obvious HTML Markup. I write most of the Markup in &lt;a href="https://pugjs.org"&gt;&lt;strong&gt;Pug&lt;/strong&gt;&lt;/a&gt; (an HTML preprocessor) though, as it is more enjoyable to me than writing raw HTML. The second part is what I write my blogposts in. This would be &lt;strong&gt;Markdown&lt;/strong&gt;. I use markdown because it is easy to write in and easy to convert into beautiful HTML. In addition to that, my custom Markdown renderer I made with the library &lt;a href="https://unifiedjs.com"&gt;Unified&lt;/a&gt; makes fancy adjustments like&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;rendering&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Code&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;snippets&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or automatically linking headings.&lt;br&gt;
For writing styles, I use &lt;strong&gt;Sass&lt;/strong&gt; or, more specifically, SCSS. It allows for some niceties when writing styles I don't want to miss by relying on standard CSS.&lt;/p&gt;

&lt;h2&gt;
  
  
  Development and Deployment
&lt;/h2&gt;

&lt;p&gt;I used Visual Studio Code for developing my website. In my opinion, it is the best code editor currently available. Gridsome, my static site generator, relies on &lt;a href="https://nodejs.org"&gt;NodeJS&lt;/a&gt; and &lt;a href="https://yarnpkg.org"&gt;Yarn&lt;/a&gt;, so I used both these tools. For hosting, I use &lt;a href="https://firebase.google.com"&gt;&lt;strong&gt;Firebase&lt;/strong&gt;&lt;/a&gt; Hosting. I chose it over other hosting providers because it gave me the most freedom in configuring my website and the most value for a free plan.&lt;/p&gt;

&lt;p&gt;Instead of manually rebuilding and deploying the website every time I change something, a Github action takes care of the redeployment. When I push a commit to my master branch or when I publish a new post in my Sanity dashboard, Github actions rebuilds the website and deploys it to firebase.&lt;br&gt;
I actually had to create a firebase cloud function to relay my Sanity webhook to Github, because Sanity does not allow sending customized HTTP requests.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;NodeJS, Gridsome, VueJS, Pug, Sass, Unified, Sanity, Firebase. You can find the source code of the website over on &lt;a href="https://github.com/vypxl/website"&gt;Github&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Thoughts
&lt;/h2&gt;

&lt;p&gt;I am satisfied with my website. As I said, it was always something I wanted to have at some point in my career as a programmer. Now that I finally released it, many more ideas come to my mind on how to extend it.&lt;br&gt;
I want to do an RSS feed, a &lt;code&gt;/uses&lt;/code&gt; page, host my old projects here, and much more. When I find the time, I might implement all those things, but maybe I won't. It was a fun journey learning new tech and developing good practices while creating this website. 10/10 would recommend.&lt;/p&gt;

&lt;p&gt;If you have questions regarding my website or anything really, just ask me via my email or in the comment section.&lt;/p&gt;

&lt;p&gt;Thank you for reading ☺️&lt;/p&gt;

</description>
      <category>webdev</category>
    </item>
  </channel>
</rss>
