Nuxt language logo

While most of my personal projects are native applications, I currently work as a web development freelancer. I'm able to extend my existing design knowledge and programming experience to the internet, combined with a strong understanding of SEO, layout design, and user interactivity.

Above all, I'm a Jamstack developer. Jamstack development allows for the creation of blazing-fast static websites while still retaining most of the power of a full-stack application. My framework of choice is Nuxt.js, a static site framework built on top of Vue.js. I use Nuxt because it's exceptionally efficient to develop for, and Vue is very powerful despite being a newer framework.


Ktor framework logo

Stemming from my passion for software development and making things work behind-the-scenes, I'm also very familiar with web backend development. I've built many RESTful APIs from scratch, have experience with OAuth2 authentication flows, and have made custom Kotlin-based SSR (server-side rendering) implementations with Ktor.

My backend server of choice is Ktor, an asynchronous web framework that makes web application and microservice development a breeze and can use Apache as a backend. I'm also learning Ruby on Rails, a server-side web framework that's very popular among professional developers.



This website, joeypereira.dev, is a great example of my familiarity with web development. It's built from scratch with Nuxt.js in static mode, and employs numerous Jamstack concepts. For example, my blog is completely serverless and instead uses GraphCMS using GraphQL queries and dynamic builds on Vercel.