services
frontend development
I like the idea of using code to solve problems and build something
- Languages I speak:
- JS
- PHP
- I can style with:
- CSS
- CSS Modules
- Tailwind
- Styled Components
- Bootstrap
- Libraries / frameworks that I use:
- React
- Gatsby
backend development
Most of my backend skills are currently MERN stack related, but I've played around with some extras not listed
- I can program my backend with:
- NodeJS
- ExpressJS
- WordPress
- For CMS, I typically use:
- WordPress
- Contentful
- Databases I use:
- MongoDB
Deployment
Have experimented with a few deployment environments
- Can deploy on:
- Netlify
- Heroku
- Firebase
- Any environment with WordPress or NodeJS support
- Other general technologies I use include:
- Webpack
- GitHub
featured projects
fit 'n' focused project
This is a site that I had previously built for a Geelong-based gym. In my development environment, I created a WordPress backend with custom post types so that the client can add, remove and update classes, challenges and trainers as was requested. They also had a gym membership app that needed to be integrated to the site. Their app's plan didn't include API access, but just a couple iframes.
The WordPress instance was on some cheap hosting, while the Gatsby frontend is still on Netlify. I had it using webhooks to rebuild the site every time the content was updated in WordPress.
Do note that the site URL sends you to a Netlify domain name because the business is no longer in operation.
chocolate men project
This site is static pages built using Next.js. When the site is being built, it fetches upcoming events from the Facebook Graph API.
When someone accesses the site after an hour since the previous build, the site rebuilds, so it can fetch the updated events. To get the events from a Facebook page was a bit messy. It required starting with a user access token for a user that has admin permissions to a Facebook page. The user access token is sufficient for the task. However, The user access token can be used to get the page access token, which from memory is a better token. From memory, I think it never expires, but don't take my word for it. Therefore, I used the user access token to get a page access token, then I use the page access token to get the events. I don't refresh the tokens anywhere nearly as frequently as I fetch the events. I now understand that the tokens should be stored in a secret store, and not a database. However, I didn't know at the time.
Contentful is the CMS solution for handling the data of the performers. Instead of rebuilding every time there is an update, I put a button on the business owner's phone for him to press when he's finished making his updates. It sends a webhook to trigger a rebuild.