Jeremy Ettlinger

February 24, 2022

A decentralized personal website

From the archive: this post describes the 2022 predecessor of this site. The colophon has the full lineage.

This website/portfolio will serve as a central location for my thoughts and work. I am most comfortable in the medium of the written word. It is important to put my thoughts out on the internet to contribute to the ongoing battle of ideas/memes.

Priors

Before working on this website, I worked for 18 months building out a design system using Vue 2. Along with my front end experience, I have experience in the MERN stack during my course studies at university.

Goals

Given this previous experience, I wanted to get up to speed on the best tools in the Vue ecosystem as well as learn Vue 3, mainly the composition API. For the website itself, I wanted to make it reasonably decentralized on the backend. This is for practical purposes as well as understanding the tools available today to build decentralized web applications.

Tools

Front end

Vue is the frontend framework I have the most experience with. That is my main motivation for working with it on this project. Vue 3's composition API is a big step in the readability of the framework. Previously I have worked with the vue-property-decorator package to accomplish some of the composition API's goals. So to me the step was not as big as someone using the standard Vue 2 syntax. Nevertheless it makes building components a genuine pleasure.

Vite is a breath of fresh air compared to what I am used to with my previous company. They were stuck on old tools and dependencies that led to build times in the minutes and dev times in the 10s of seconds. With Vite, the build time is <5s and the dev time is virtually instant. In addition to these speed improvements, the ecosystem around Vite is impressive. From markdown to file-based routing, the plugins available are intuitive and useful both in documentation and in implementation.

TailwindCSS is an interesting framework that integrates HTML and CSS even more tightly than they are natively. WindiCSS takes this and runs, adding more utility, speed, and simplicity to the framework. It was easy to create my themes and build my custom styling onto the blog starter.

Back end

Fleek is a service that takes a Github repository for a web application and hosts it on the Internet Computer and/or the InterPlanetary File System among others. It also has integrations for hosting to decentralized domains like HNS (Handshake) and ENS (Ethereum). To this end, I decided to purchase a Handshake domain for purely cost reasons. Handshake is its own proof of work blockchain. This decision was made prior to Ethereum gas prices coming down as of writing this, so I may purchase an ENS domain as well. Fleek is currently having an issue linking up to HNS domains, but their Discord support is actively working with me to solve it. Fleek also supports storing on IPFS using Filecoin.

Sections

Writings. This section will contain any of my writings I choose to publish. This may be well-researched articles, written thoughts, and even fiction. It will stay professional. The work will be written in markdown for the foreseeable future.

Projects. My projects will be explained and discussed in this section. My interests all revolve around computer science. Web3, Data Science, Machine Learning, and Web Development will surely make their way in here among other topics.

Dashboard. This page will be a project in itself. It will most likely be what I think is the best personal dashboard for myself at any given time. It may contain data like the investments I'm tracking, the information I am keen to ingest, or my health. The goal is to help me track what's important to me.

Resumé. Pretty self-explanatory. Just a section to include my resumé (CV) for potential employers, collaborators, etc.

Contact. Also self-explanatory. A place to draft me an email or find my other methods of contact.

Conclusions

At the time of writing this I am satisfied with the results. I look forward to fully deploying onto my domains and perhaps purchasing additional domains. I am excited to start developing other projects and writings. Thank you for reading and please reach out with any comments, questions, and suggestions!