Building this website
Last Modified: Unknown Creation Date
Purpose
My goal with this website is to incrementally make the task of sharing my coding experiences more pleasant.
Personal Background
- I’ve been creating coding projects since December 2022. Most projects stem from building something that aims to solve a niche problem
- One thing that can sometiemes be annoying when building new projects is having to re-create code and configuration steps
Requirements
- Free
- Faster development cycle than building with plain HTML, CSS, JS
Something Unique
- The data from the form linked in the footer sends the response to an email address
- Uses a responsive layout through CSS Grid rather than bulky media queries.
Tech Stack
- 11ty
- Firebase
- Sass
Why 11ty?
- Compatible with multiple templating languages
- No vendor lock in
- The drawbacks of lack of features ( CMS integration, plugins, templates, API integrations, complex data processing, built-in asset optimization ) weren’t glaring because of the lack of my need for them
Why Sass?
- Hierarchical CSS = less of a need for me to keep track of longer css selector
Why Firebase?
- If using GH pages, I’ll need to implement a backend anyways.. Firebase offers hosting and serverless functions
- Wanted to not focus on learning backend implementation so that I could continue to refine my front end skills && technical writing. Reason for this is its far more easy &| enjoyable to abstract the back end compared to the front.
General Concepts Learned
- Using package.json scripts to simplify commands needed to process / watch sass, run 11ty locally. I still manually deploy to firebase
- Using .gitignore && .env
Tech Stack Specific Concepts
- Utilizing the 11ty config file to retrieve the script from the source and transmit it to the client side,
- Using Nunjucks ( .njk ) to create templates of HTML.
- Using Markdown ( .md ) to glue together Nunjucks templates with their respective content
- Using _data directory to provide the entire website with global values such as consistent url routes, tab icon