Pegah Safaie's Portfolio


Me at VueJS Confrence My name is "Pegah". It means "Dawn" in Farsi. Currently, I live in a small beautiful city called Passau in Germany with my family(πŸ’‘πŸ‘ΆπŸ±). I started my career as .NET developer back in 2010. I then moved to Java and finally for the last 4 years to JavaScript as a front-end developer. I enjoy learning, playing around with new technologies, mentoring and sharing my knowledge in visual ways but my sketching skills aren't yet good! I also love cooking and spend a good amount of my time searching for new recipes or trying them out in the kitchen.


  • Published: A practical guide for PWA in Vue applications: I used PWA plugins (both Nuxt and Vue CLI) in some test projects and even though they were great and saved lots of my time, I was annoyed to see that they are working like a black box. I wanted to understand what was going on behind them. That's why I wrote this article. It was also my first tech article.
  • WIP: Power of JSDoc as an alternative for Typescript: We have a big JS project in my company that we do not want to rewrite in TypeScript. We can write new files in ts but it will be a mess. The combination of JSDoc + vsCode and eslint is an excellent alternative to Typescript that allows us to get the benefits of type detection without moving into Typescript.
  • Published: Write articles for non-native speakers: As a non native English speaker, I am learning how to improve my writing skills. I still have a long way to go but wanted to share what I know with others.


to be written


  • Portfolio: I actually started this project to get my own domain and host membership so I could play around with Dockers and kubernatives. But I learned much more than that! My last experience with Nuxt left me unsatisfied with the performance of my website. I couldn't do much to change it as everything was Nuxt magic, so I searched for a lighter alternative and found "Eleventy". In contrary to Nuxt, Eleventy is a lightweight utility for generating static sites and does not add much boilerplate to your original code. I also used Sanity as a content manager for this portfolio. Look at the readme file of this project if you want to find out what the anatomy of an Eleventy project or Sanity studio looks like!
  • ShareCafe: This app allows people to share their food with each other using Vuejs and Firebase's "Authentication", "Realtime Database", and "Hosting" services. It was supposed to be a SPA originally, but later I decided to move to SSR, so adopted Nuxt. I also replaced Firebase services with Auth0 and GraphQL (Hasura service) and switched to Heroku pipelines for deployment.