I think it's safe to say that a lot of web developers spend a lot of time working on projects that are never meant to be released. Some projects are done to further understanding of a new framework / library / concept, some to brush up on something learned already and some are just for fun. Some projects are built during educational coursework / workshops, some built on top of those types of projects - taking them further along and some are just messing around with a new framework / library to see what it's all about. Here is a showcase of those types of projects that I've worked on myself.
How meta right? Well when I was thinking of a project to revamp and add here to show a few of the optimization techniques I know of I thought why not keep it simple, I mean your already here right? As you can see from the picture, this page itself has a score of 100 in each of the categories lighthouse audits: Performance, PWAs, Accessibility, Best Practices and SEO. Don't take my word for it though, run the tests yourself by opening the chrome dev tools, going to the audit tab and click "run audits"! (psst: its 5x 100 on mobile too!)
I started this project to experiment with WordPresses built in API. Having built quite a few WordPress sites myself and having worked on many more I feal extremely familiar with the back end dashboard of WP so using it for a headless CMS really appealed to me. This from scratch project is a barebones, two file, headless wordpress setup using react via cdn that should take only a minute or two to set up. Want to check out the two step set up of this project? Click here to read more about this project or take a look yourself with the "View Project" link below
This project was done as part of the Cloudflare Developers Summer Challenge 2021. Participants were tasked with creating a project that used at least two technologies from Cloudflare's developer platform - for this project I chose Cloudflare Pages and Cloudflare workers. Cloudflare pages was used for static site hosting and Cloudflare workers was used for 'serverlessly' processing the form. I used AMP to code the page as Cloudflare pages is known for its speed and so is AMP. I had to customize the response headers a bit as AMP can be VERY rigid with its form processing rules and I used the SendGrid API to trigger an email on form submission that sends out a link to the repo on Github.
This project was undertaken in my spare time to get familiar with the capabilities of Shopify's
Polaris design system / React component library. I expanded the functionality of some components
in some places (the top bar), customized a few things (light / dark mode theme toggle) but
mostly used native functionality in order to get a general feel for the layout and styling that
is native to Polaris. I may go back someday and expand the functionality so that you can preview
"emails" but for now I accomplished what I set out to do. What did I attempt? The project was
"inspired" by the layout for GMail.
* Shopify has since developed a new component
library "Hydrogen".
In this project that was completed as part of my Azure Developer Nanodegree coursework at Udacity I was given a Python / Flask CMS and tasked with deploying it to a webapp / managed Paas service. First I had to add an azure SQL Server instance / Database for storing articles and users, then add a blob storage container for the article images and lastly I had to add 'Sign in with Microsoft' functionality through the MSAL, logging successful and unsuccessful login attempts. Although the project is not live (leaving some resources live in Azure = $) I have linked to a repo with some of the code (notably the MSAL implementation) as well as some screenshots from the project & a write up required that outlines some of the choices I made concerning the applications hosting.
Google has spent alot of time and money into reaserching users and have decided that, guess what, users like fast websites. Googles Accelerated Mobile Pages (A.M.P.) specification was developed with speed and a smooth, non-jittery page load in mind. According go Google: "Faster landing pages typically lead to more conversions" and "Landing page experience is an important factor for your Quality Score and Ad Rank". What does that mean? Not only are your users more likely to convert but with a higher Quality Score your PPC Ads will rank higher - leading to better posible page position and cheeper overall campaign costs! This project was undertaken to create a boilerplate of BowlerHats "ideal local landing page" just beceause I wanted to test out some of AMP's components. Read more in the projects repo by clicking below.
This was a project I did so long ago I don't remember if it was part of a tutorial, blog post or if I was just going through the documentation but here it is. This project uses the express-generator boilerplate and implements basic / local user login through passportjs, checking a flat file repository / 'database' for user accounts. I know the account info is in the Repo here (which I wouldn't normally do) but as they are fake accounts it doesn't matter in this extremely specific case. I also used a frosted glass CSS effect because I really wanted to use it in a project - I've since used it in production applications and I STILL think it looks cool.
This project is an updated version of an older project listed below. I referb'd this project to turn it into a Progressive Web App, Adding a service worker to cache all reqested resources. Why? TLDR: so it can still work offline. Want to know more - I wrote up a whole thing on it! Check it out by clicking "View Project" below:
Although WordPress can be a wonderful platform for making complex & feature rich websites all those features can have a high cost. If you are a developer that wants to set clients up with a familiar & easy to use backend they can log into but a fast, static more secure (i.e. decoupled from the database) frontend Gatsby is a great choice. A Gatsby frontend on your WordPress site alleviates the need for the complex caching strategies that WordPress needs to be preformant and enables developers to use the tooling they are familiar with. Here is a proof oc concept I undertook that uses a WordPress backend with Woocommerce installed and generates a static frontend in Gatsby.
This web app was designed to be mobily responsive, have a high degree of accessibility and runs on a nodejs development server provided for me in my completion of a Udacity Mobile web Specialist Nanodegree, competed for and granted to me as a scholarship from Google. With a backend hosted on Heroku and a front end on Netlify it has many of the trademark features of Progressive Web Apps, such as (After the initial page-load / API calls:):
*This DB for this project is set up on Heroku's free tier and is spun up after loading. You will need to reload the page a few seconds after opening it to load data. It's also ephemeral so it won't save your choices for longer than a few hours.
This project was completed as part of my Azure Nanodegree from Udacity. We were given a Python Flask-powered web application and asked to deploy to an Azure apps instance, create a backend in Azure functions, set up a MongoDB database, Dockerize the backend functions app then set up and deploy it to a Kubernetes cluster running in Azure. The project was designed to get us more familiar with setting up applications using a Microservices application structure. The app itself is not online (too costly to keep running all the time) but you can check out the repo here with plenty of screenshots to see it in action.
When my brother needed a blog for his video game podcast, I saw it as the perfect excuse to learn to use Jekyll. Jekyll is a html template engine that uses markdown syntax for to easily create blogpost and is easy to learn, even for non technically inclined people. The best part? You can host and update Jekyll blogs on Github for free! *Sidenote, please don't hold me responsible for any of his content ':/
This fullstack project was done as part of obtaining an 'Back End Development and APIs' certification from FreeCodeCamp.org. This project involved writing an API in Express that would serve as the backend for an exercise tracker application. Users can create an account then log exercise info such as descriptions, dates etc. then request either a complete or a partial copy of their info back. All of the info is kept in a MongoDB instance running in Mongodb Atlas - MongoDB's Cloud offering - and Connects using Mongoose.
TailwindCSS is self described as a "utility-first CSS framework" - what's that mean? There are utility classes that can facilitate just about every layout you could think of. Tailwinds enables you to build a page "without ever leaving your HTML" to create opinionated, aesthetically pleasing designs - I think of it as the next evolution of Bootstrap, or at least a branch that viers more towards developer workflow than previous popular CSS design systems. Tailwind also fits in nicely with frontend librarys like React - it's inline css utility classes can be used in components to maintain a D.R.Y. CSS approach. This is the results of a tutorial I undertook offered directly from TailwindCSS to learn the basics of TailwindCSS and how to use its native utility classes, extend to new classes, sprinkle in React and create an optimized build for production.
This is another project done as part of obtaining an 'Back End Development and APIs' certification from FreeCodeCamp.org. I wanted to get this cert to further practice and reinforce my ability to use Express / Mongodb together and thought this certification seemed like a fun way to do it (which it was!). I was given the project specifications listed on the homepage of the project and asked to build the project up to meet them. This project is a URL shortener - the user enters a url and gets a shortened url back. This is done by parsing the url from a POST request, matching it to a url pattern and checking it is a valid address against a DNS store, adding it to a MongoDB instance hosted on Mongo Atlas using the Mongoose driver, then returning a shortened url. When the user looks up that url it looks up the address using the shortened url and redirects to the original.
Bootstrap 3 Is Twitter's widely adopted mobile first framework for laying out and styling content on the web quickly and responsively. The upcoming release of Bootstrap 4 adds some new features as well as some changes to older legacy functionality. This project was done to familiarize myself with the upcoming specifications for the Bootstrap 4 Framework.
Can we finally admit that some CSS layout techniques are a bit of a hack in that they were developed using styling in a way it wasn't really intended for? Good. Now that that's over and flexbox specifications have been stabilized a bit more we can move on to using flexbox for layouts like I have learned to do while working on this project here.
Google's new Accelerated Mobile Pages specifications are, in a way, a throwback to 90's web design adapted to bolster user experience in matters concerning modern mobile web surfing. In this project I familiarized myself with some of AMPs specifications and capabilities.
#development=1
" To The End Of An AMP Page's URL!Angular is Google's flavor of JavaScript MVC frameworks used for quickly developing single page web applications. In this project I familiarized myself with the declarative nature of developing within the Angular framework and learned more about client side application frameworks in general.
Google Material Design Specifications are out alerting designers to Googles preferred and recommended design specs. After reading through the Material Design specifications I wanted to use what I had learned in a project and luckily I found a framework that would allow me to easily do so! I chose to do this project in Google MDL (Material Design Lite) because it was designed in close co-operation with Googles own Chrome UX and Material Design teams. This framework is even used in some of Google's own properties!
Transforms and transitions are designed to "delight" the user, give feedback based on interactions and provide information on element states. CSS3 makes it easy to add interactive elements to webpages without bloating markup with unnecessary JavaScript
jQuery is a powerful library for adding cross browser compatible interactive features to your sites, but what happens when it fails to have a feature your looking for? You could write it yourself, but an even easier, quicker option is to use high quality well supported jQuery plugins. In this project I learned to do just that.
As the Internet of things expands accessibility concerns become more and more important. As people become more dependent on the web for important tasks, information dispersion and entertainment hearing, vision and mobility concerns need to be addressed. In this project I continued my education concerning some of these issues.
The Syntactically Awesome Style Sheet Language Describes itself as "CSS With Superpowers" and although I love the cleaver things you can do with CSS, I agree the options SASS adds can supercharge the organization of your CSS. This project was fist done as a refresher on CSS layout and styling techniques, and then re-factored to get used to using the Sass CSS preprocessor.
Practice Makes Perfect! jQuery provides an easy way of adding a togglable (and trendy) off-screen navigation that slides in from the side.