Photo by Brett Jordan on Unsplash

These days, one of our favorite tech stacks here at Mindvalley is Phoenix, Elixir, TailwindCSS, AlpineJS, and LiveView — otherwise known as the PETAL stack. It has received many positive reviews from the members of the Elixir community and for a good reason.

The PETAL stack allows engineers to create beautiful, highly interactive, and performance-optimized applications in a short amount of time and with very minimal effort.

Everything you need to know to start testing your Phoenix applications

Photo by James Pond on Unsplash

I still remember the very early days of my engineering career. I was a third-year university student, and I had just started my internship in a major software company.

It was an exciting time in my life. I got the chance to contribute to a production codebase for the first time. I learned how to develop and release software features. Overall, I picked up many best case practices that helped kickstart my software development journey.

Unfortunately, one practice that failed to capture my attention at that time was testing…

Photo by Fran Jacquier on Unsplash

Thanks to modern web development frameworks, creating new applications has become an easy and straightforward process.

Developers run a couple of commands to generate the new project, finetune the necessary configurations, start the server, and that’s it. They have a barebone skeleton application that is up and running on the local server.

The Phoenix framework is no exception to that rule. The task — mix is responsible for creating a new Phoenix project.

If you check out the official docs, you will notice that the task supports many optional parameters. …

Photo by Daniel Cheung on Unsplash

These days, the most commonly spoken “buzzwords” in the Elixir community are — Phoenix LiveView, TailwindCSS, and AlpineJS.

And true enough, if you do a little bit of google searching, you will find plenty of blog posts, podcasts, and video tutorials that do a comprehensive overview of those technologies.

At Mindvalley, I have been working with Phoenix LiveView and TailwindCSS for about a year now. Both technologies have drastically improved my productivity as a web developer, allowing me to focus on coding the business logic rather than figuring out the overly technical nitty-gritty implementation details.

Last week, I finally got…

Introducing Phx.Gen.Auth — your new favorite phoenix generator

Photo by Chunlea Ju on Unsplash

When it comes to working with Elixir and Phoenix, the default choice of authentication framework we use at Mindvalley is Ueberauth. My colleagues and I prefer to work with it as it is easy to integrate and includes a wide range of strategies covering most authentication use cases.

As an engineer, I am always curious to explore new ways to solve problems and bring value to my customer and business stakeholders.

That’s why when I got the chance to work on a side assignment that required me to build a Phoenix app…

6 simple steps to help kickstart your glorious journey with Phoenix and TailwindCSS

I have to start this blog post with a confession — I am deeply and utterly in love with TailwindCSS.

The two of us met for the first time a couple of months back. One of my colleagues at Mindvalley thought we would be a good match for each other, so he made the introduction.

At first, I was a bit skeptical. I mean, I have been on dates with similar frameworks before — Bootstrap, Bulma, Foundation, etc. …

Photo by Seb Mooze on Unsplash

I want to start this blog post by getting something off my chest — I am not a morning person. I like to sleep in on the weekends. And the only reason I will ever get out of bed before 10 am is to attend a work-related meeting.

I guess you are already wondering — what qualifies me to advise you about crafting the best suitable morning routine for you.

It’s pretty simple. I am a full-time night owl that has a day job. …

And the story of how they made me a better engineer

Today I want to take the time to share with you one of my all-time favorite Github features — Draft Pull Requests. I have been actively using them in my development flow for about 12 months now.

Lately, I realized that working with draft pull requests has dramatically improved the way I structure and organize my daily engineering work as well as the efficiency with which I solve problems and deliver value for my stakeholders.


I approach this topic with the assumption that you are familiar with the basic…

Okay, let’s get real for a second. No-one can actually build a production-ready blog application from scratch in less than 15 minutes. That’s not how the world works. However, creating a working prototype — that’s totally possible.

So here is the plan — we are gonna spend the next 15min or so building a prototype of a blog application that meets the following criteria:

  • User can create, update, display and delete posts
  • User can add comments to a post
  • User can see all the comments for a particular post
  • User can see how many comments does each post have


Velina Petrova

Full-Stack Web Developer & Full-Time Problem Solver; Passionate about Martial Arts, Writing, and Engineering Ways to Live a Holistic-Realistic Life.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store