Wahid Pessarley, Author at ProdSens.live https://prodsens.live/author/wahid-pessarley/ News for Project Managers - PMI Sat, 16 Dec 2023 13:25:20 +0000 en-US hourly 1 https://wordpress.org/?v=6.5.5 https://prodsens.live/wp-content/uploads/2022/09/prod.png Wahid Pessarley, Author at ProdSens.live https://prodsens.live/author/wahid-pessarley/ 32 32 🌟 #DEVImpact2023 Reflections https://prodsens.live/2023/12/16/%f0%9f%8c%9f-devimpact2023-reflections/?utm_source=rss&utm_medium=rss&utm_campaign=%25f0%259f%258c%259f-devimpact2023-reflections https://prodsens.live/2023/12/16/%f0%9f%8c%9f-devimpact2023-reflections/#respond Sat, 16 Dec 2023 13:25:20 +0000 https://prodsens.live/2023/12/16/%f0%9f%8c%9f-devimpact2023-reflections/ -#devimpact2023-reflections

Proud Moments This year I was invited to two colleges for conducting tech workshops. One of the workshops…

The post 🌟 #DEVImpact2023 Reflections appeared first on ProdSens.live.

]]>
-#devimpact2023-reflections

Proud Moments

This year I was invited to two colleges for conducting tech workshops. One of the workshops was for AI and Big Data and the other one was for Android Development. It felt great to be a part of several students tech journey.

DEV Contributions

I wrote articles and replied to people’s comments on my articles. I also commented on other people’s articles after reading and reacting to their articles.

Brilliant Fails

I had trouble with certain colleagues, I could feel that they hated me. I did not do anything about it though. My plan is to one day become a solopreneur so that I can escape the hierarchy and politics. I also struggled with procrastination in certain tasks this year. Planning to solve that with the pomodoro technique and having a study/work buddy.

Celebrate the Numbers

Image description

Shoutouts

Actually several people’s comments on my posts were inspiring to me but I would like to give a shoutout to @andrewjensentech for his inspiring comment on my post.

Future Goals

I want to learn web development, data science and data structures fully in 2024. I also want to get promoted, become a solopreneur, make and publish at least 1 app and then sell it in 2024. I also want to learn UI designing fully.

What Does DEV Means to You?

This is an amazing community. It makes me believe that everything is possible if only I set my mind to it.

The post 🌟 #DEVImpact2023 Reflections appeared first on ProdSens.live.

]]>
https://prodsens.live/2023/12/16/%f0%9f%8c%9f-devimpact2023-reflections/feed/ 0
How the Internet Works: A Hilarious Guide for Non-Geeks đŸ€Ș https://prodsens.live/2023/07/05/how-the-internet-works-a-hilarious-guide-for-non-geeks-%f0%9f%a4%aa/?utm_source=rss&utm_medium=rss&utm_campaign=how-the-internet-works-a-hilarious-guide-for-non-geeks-%25f0%259f%25a4%25aa https://prodsens.live/2023/07/05/how-the-internet-works-a-hilarious-guide-for-non-geeks-%f0%9f%a4%aa/#respond Wed, 05 Jul 2023 02:24:43 +0000 https://prodsens.live/2023/07/05/how-the-internet-works-a-hilarious-guide-for-non-geeks-%f0%9f%a4%aa/ how-the-internet-works:-a-hilarious-guide-for-non-geeks-

Hello, fellow humans and internet enthusiasts! Today, we’re going to delve into the deep, dark, and absolutely hilarious…

The post How the Internet Works: A Hilarious Guide for Non-Geeks đŸ€Ș appeared first on ProdSens.live.

]]>
how-the-internet-works:-a-hilarious-guide-for-non-geeks-

Hello, fellow humans and internet enthusiasts! Today, we’re going to delve into the deep, dark, and absolutely hilarious world of how the internet works. You might think it’s all just a bunch of 1s and 0s, but I promise you, it’s so much more than that! So, grab your favorite beverage, sit back, and enjoy the ride. 🎱

The Birth of the Internet đŸŒ

Once upon a time, in the dark ages (the 1960s, to be exact), a group of very smart people wanted to connect computers together. They were probably tired of sending messages by carrier pigeons, and decided to level up by creating the internet. đŸŠâžĄđŸ’»

So, they built something called the ARPANET, which later gave birth to the internet we know and love today. And now, thanks to these pioneers, we can enjoy cat videos, memes, and stalking people on social media. đŸ±đŸŒ

The Magical World of Protocols ✹

In order for computers to talk to each other, they need a common language. That’s where protocols come in! The two most important protocols are:

IP: The Internet Protocol, which is like the postal service of the internet. It helps deliver your data packets to the right address.
TCP: The Transmission Control Protocol, which makes sure the data packets arrive in order and without errors, just like a control-freak older sibling. 📩🧐
Put them together, and you get TCP/IP! No, it’s not a cool band name; it’s the backbone of the internet! đŸ€˜

The World Wide Web and Its Spiders 🕾

You might think the internet and the World Wide Web are the same thing, but they’re not! The internet is the network, and the World Wide Web is a service that runs on it. It’s like how Netflix runs on your internet, but with fewer shows and more cat memes. 🍿🐈

The web is made up of websites (duh!), which are basically a bunch of files stored on computers called servers. When you type a URL into your browser, it’s like telling a spider (your browser) to fetch those files from the server and display them on your screen. đŸ•·đŸ–„

The DNS, or the Internet’s Phonebook 📖

When you want to visit a website, you usually type its domain name (e.g., dev.to). But computers don’t understand human-friendly names; they need IP addresses. That’s where the Domain Name System (DNS) comes in!

The DNS is like a huge phonebook that translates domain names into IP addresses. So, when you type in dev.to, the DNS tells your browser, “Hey, dev.to lives at 123.456.789.0!” And off your browser goes to fetch the website files. 🎉

The Internet’s Busy Bees: Routers and Switches 🐝

Now that we know how data travels, let’s talk about the busy bees of the internet: routers and switches. They help guide your data packets through the maze of the internet to reach their destination.

Routers are like the traffic cops of the internet, directing data packets based on their IP addresses. Switches, on the other hand, are like the air traffic controllers of the internet, managing the connections between devices on a local network. Together, they make sure your data packets don’t get lost in the chaos. 🚩✈

Conclusion

The Internet – A Comedy of Errors and Triumphs 🎭
So, there you have it! The internet is a beautiful, chaotic, and hilarious system of networks, protocols, and cat memes that keeps us all connected. And though it may seem complex, just remember that at its core, the internet is really just a bunch of computers talking to each other.

Now that you know how the internet works, go forth and spread the knowledge (and the memes) to the masses! 🌐🎉

The post How the Internet Works: A Hilarious Guide for Non-Geeks đŸ€Ș appeared first on ProdSens.live.

]]>
https://prodsens.live/2023/07/05/how-the-internet-works-a-hilarious-guide-for-non-geeks-%f0%9f%a4%aa/feed/ 0
Setting up continuous integration with CircleCI and GitLab https://prodsens.live/2023/06/07/setting-up-continuous-integration-with-circleci-and-gitlab/?utm_source=rss&utm_medium=rss&utm_campaign=setting-up-continuous-integration-with-circleci-and-gitlab https://prodsens.live/2023/06/07/setting-up-continuous-integration-with-circleci-and-gitlab/#respond Wed, 07 Jun 2023 23:25:18 +0000 https://prodsens.live/2023/06/07/setting-up-continuous-integration-with-circleci-and-gitlab/ setting-up-continuous-integration-with-circleci-and-gitlab

CircleCI supports GitLab as a version control system (VCS). In this tutorial you will learn how to set…

The post Setting up continuous integration with CircleCI and GitLab appeared first on ProdSens.live.

]]>
setting-up-continuous-integration-with-circleci-and-gitlab

CircleCI supports GitLab as a version control system (VCS). In this tutorial you will learn how to set up your first CircleCI CI/CD pipeline for a project hosted on GitLab. As GitLab can be used either as a SaaS tool, as well as self-managed on-premise installation, I will cover the steps to connect it with CircleCI for both.

Prerequisites and application basics

To follow along with this tutorial, you will need:

Starter app

Our starter application is a minimal Python Flask app with a single ‘hello world’ web page, which specifies required dependencies and includes a test. You can access a publicly hosted version of the starter app on GitLab.com.

You can get the application by downloading it straight from the GitLab web interface or cloning it via Git.

For the purposes of this tutorial, you don’t need to write the application from scratch, but if you are interested in complete development instruction, you can read through the beginning of [this blog post](https://circleci.com/blog/setting-up-continuous-integration-with-github/.

GitLab SaaS vs self-managed

As mentioned above, this tutorial will teach you how to configure and run your CircleCI pipeline for a project hosted either on a self-managed or hosted version of GitLab. You can learn more about the differences between the hosted and self-managed versions in the GitLab docs.

Setting up GitLab SaaS requires you only to sign up at gitlab.com. You will also need to make sure you can push to GitLab repositories, either by setting up your SSH key or personal access token for using GitLab with either SSH or HTTPS, respectively.

If you use GitLab self-managed, you will connect to it via your installation URL. This is specific to you, so for the purposes of this tutorial, use the URL yourgitlabinstance.com as a placeholder.

Create a new project with the starter app source code. You can use the new project wizard, either at gitlab.com/projects/new or yourgitlabinstance.com/projects/new, for SaaS or self-managed respectively.

Creating a CircleCI config file

Before you set up CircleCI, you can tell it what to eventually start building.

Create a new directory .circleci in the top level of the project.

Now, create a new file config.yml in that directory (.circleci/config.yml) — this is your main configuration file for CircleCI.

Paste the following in the file:

version: 2.1
jobs:
  test:
    docker:
      - image: cimg/python:3.10.11
    steps:
      - checkout
      - restore_cache:
          key: deps1-{{ .Branch }}-{{ checksum "requirements.txt" }}
      - run:
          name: Install dependencies
          command: |
            python3 -m venv venv
            . venv/bin/activate
            pip install -r requirements.txt
      - save_cache:
          key: deps1-{{ .Branch }}-{{ checksum "requirements.txt" }}
          paths:
            - "venv"
      - run:
          name: Running tests
          command: |
            . venv/bin/activate
            python3 tests.py
      - store_artifacts:
          path: test-reports/
          destination: python_app

workflows:
  run-tests:
    jobs:
      - test

In the CircleCI config file, you define everything you need CircleCI to do. In this case, you have added a single job (test) and a workflow (run-tests) containing that job.

The test job runs in a Docker container with Python installed, checks out the code at that specific commit, downloads the dependencies required for the app (Flask, in this case), sets up a Python venv, and runs the tests in tests.py. It also caches the dependencies to make subsequent pipeline runs faster and stores the test artifacts for easy access from CircleCI. To read more about CircleCI configuration, consult the configuration reference.

Save, make a new commit, and push to your GitLab repository. Now it’s time to configure your CircleCI integration with GitLab.

Configuring CircleCI with GitLab SaaS (GitLab.com)

If you don’t have a CircleCI account yet, create one now. Head to https://circleci.com/signup/ and follow the instructions to sign up using your preferred method. If you choose GitLab, you will also be prompted to select your GitLab instance. Press Connect next to GitLab.com.

Connect to your code

This should now prompt you to authorize CircleCI with your GitLab account, giving CircleCI access to your repositories.

Authorize CircleCI

Authorizing CircleCI will take you to the project creation wizard. You should see your repository on the list, and it should detect the CircleCI config you committed.

Create new project

Click Create Project to start building. This has created the project in CircleCI, and what’s left is to commit and push a change to trigger your first CircleCI pipeline.

Make a change

Make any change, such as an update to your README file, then commit and push. This will create your first pipeline and start building and running your test.

Build status

Seconds later it should be marked as successful. The status of your CircleCI pipeline will be automatically updated in your GitLab UI as well. Navigate to Build/Pipelines (on the left-hand side in GitLab) and the pipeline should show up there as well. You can see an example based on this tutorial in this public project.

Build/Pipelines

Clicking it will show you further details of the pipeline. Clicking the button under external – button CircleCI: Workflow run tests will take you back full circle into your workflow inside CircleCI.

Pipeline details

Connecting CircleCI to a self-managed GitLab instance

Self-managed installations, unlike the hosted SaaS versions, run on infrastructure you control. They will of course also have a different URL to access them. In this tutorial, use yourgitlabinstance.com as a placeholder for your actual instance URL. This section closely follows the GitLab integration instructions in the CircleCI docs.

Assuming you have followed the steps to get the project into GitLab and committed your first CircleCI config file, you can proceed with connecting to GitLab.

If you don’t have a CircleCI account yet, create one now. Head to https://circleci.com/signup/ and follow the instructions to sign up with your preferred method.

If you choose to sign up with GitLab, you will be prompted to select your GitLab instance. Press Connect next to GitLab self-managed.

Connect self-managed

GitLab self-managed project setup

The wizard guides you through the setup process step by step.

First enter the URL of your GitLab instance and click Verify. It will suffix it with /api/v4 to complete your instance’s API endpoint.

Create your personal GitLab access token with an API scope, paste it in the Personal Access Token field and click Verify.

Next, pass in the known_hosts value and click Verify. You can get this by running ssh-keyscan yourgitlabinstance.com in the terminal and pasting the entire output in the known_hosts field. This allows CircleCI to verify the authenticity of your GitLab instance.

Finally, select your project in the dropdown. This will likely be cci-python-app. You can also give it a different name. This will set your GitLab self-managed project up for building on CircleCI.

New self-managed project

Trigger a pipeline by committing a change and pushing it to your GitLab repo. This will start your workflow and show it in the next few seconds.

Project workflows

You can also see your pipeline in the GitLab UI by navigating to CI/CD > Pipelines on the left-hand side. Note that this might look different, depending on what version of GitLab you are using.

GitLab pipelines view

Clicking on its status it will take you to the pipeline details, from where you can navigate back to the CircleCI UI to give you a 360 degree view of your project and your CI/CD pipeline’s workflows and jobs.

Workflow and jobs

Congratulations! You have successfully configured CircleCI to start building your project on a self-managed GitLab instance.

Conclusion

In this tutorial you have learned how to begin building projects hosted on GitLab with CircleCI. We have covered both on-premise self-managed GitLab as well as the hosted SaaS version on GitLab.com.

Wishing you successful building!

The post Setting up continuous integration with CircleCI and GitLab appeared first on ProdSens.live.

]]>
https://prodsens.live/2023/06/07/setting-up-continuous-integration-with-circleci-and-gitlab/feed/ 0
The Beginner’s Guide to Brand Pillars https://prodsens.live/2023/03/22/the-beginners-guide-to-brand-pillars/?utm_source=rss&utm_medium=rss&utm_campaign=the-beginners-guide-to-brand-pillars https://prodsens.live/2023/03/22/the-beginners-guide-to-brand-pillars/#respond Wed, 22 Mar 2023 11:03:10 +0000 https://prodsens.live/2023/03/22/the-beginners-guide-to-brand-pillars/ the-beginner’s-guide-to-brand-pillars

Marketing and branding have been around for centuries. But brand pillars are a newer idea. Since the dawn…

The post The Beginner’s Guide to Brand Pillars appeared first on ProdSens.live.

]]>
the-beginner’s-guide-to-brand-pillars

Marketing and branding have been around for centuries. But brand pillars are a newer idea.

Since the dawn of the digital age, companies have marketed their brands with the goal of giving their company a personality and identity.

Download Now: Free Brand Building Guide

But as the practice of branding has evolved, so have audience expectations. Businesses today need more than a catchy tagline to support customer needs. Companies aren’t just selling products anymore — they create brands that need to talk about their impact on society.

In this post, we’ll discuss how to create brand pillars that can help you define your brand’s purpose, values, and identity for continued growth. Keep reading or jump ahead to learn:

For example, brand pillars can be core values, important strengths, or aspects of a brand that support or add dimension to the core idea of “Who are you?”

Essentially, these brand pillars can be anything that your customers find important — perhaps it’s innovation, reliability, or on-time delivery.

Brand pillars can differentiate your brand and should be valued and endorsed by your customers. When someone asks why your customers like your brand, you’ll want them to be able to list your brand pillars too.

These pillars should be strategic decisions to offer better products or services to your customers.

Why are brand pillars important?

Brands are essential, especially in competitive industries, to grow awareness and value for a company. A strong brand is a point of connection for customers. It helps a business quickly communicate the essence of its vision and value.

But branding is also a subjective process. It trades in the currency of opinion, making it subject to trends, fickle followers, and more. So, the stronger a brand’s foundation is, the more likely it is to weather the storms of change.

Brand pillars are an integral part of this foundation. They are touchpoints that help a brand define and codify its distinct value. Each brand pillar is a step toward clearer communication.

Each pillar breaks down the many nuances of a new brand. This helps the public connect the brand to the products and services a business offers. It also helps customers, stakeholders, and investors understand what it means to support your company.

I know this might sound slightly conceptual. But brand pillars can be easier to understand when we break them down into categories. Below, let’s learn about the five brand pillar categories you can use to determine your own brand pillars.

The main brand pillars are purpose, perception, identity, values, and brand experience.

Brand pillars graphic for the five pillars: Purpose, perception, identity, values, and brand experience

1. Purpose

Purpose can be described as the mission and foundation of your company. It will answer questions like “Why did you start your company?” and “What are you hoping to achieve?”

Think about this strategically. What do you want to communicate to your audience as your purpose? What do you want to communicate to employees or potential employees? Knowing your purpose will help you hire employees who align with your mission and correctly target your audience.

Purpose can even be described as the culture of your company. For example, at HubSpot, our culture is about growth-minded individuals who have HEART (they are humble, empathetic, adaptable, remarkable, and transparent). The acronym HEART is one of our brand pillars as a company.

2. Perception

Perception is about how your customers perceive your company and brand. You’ll want to check how current customers view your brand. Or if you’re a new company, write down some characteristics that you’d like customers to associate with your brand.

This could be something like hospitality or leadership. If these are your perception brand pillars, then you want customers to view you as a leader in your industry that is a trusted, good host (this makes sense for a hotel, for example).

3. Identity

This brand pillar is about who you are as a brand. A brand is something you are, it’s not something you have. It’s all about your personality as a company.

For example, an identity brand pillar could be something like “cheeky” or “bold.” This means that you want customers to see you as having a cheeky personality. The reason to define this brand pillar is so you have a guiding light for how to be human and interact with your customers.

4. Values

Your values are about communicating your overall position to your audience. What’s important to you as a company? How do you want to make a difference? This could be something like valuing integrity and ownership.

5. Brand Experience

Lastly, brand experience is a pillar that will help you promote your products and services. People use products and services when they like a brand. There are so many options to choose from these days, customers tend to buy from companies they like. This means you need to create a positive customer experience and association with your overall brand.

By using these brand pillars as a basis, you can create a brand identity that sets you apart from your competition. Companies that fail most likely haven’t considered what their brand pillars are and how they align.

If you have a robust strategy, but you don’t have a purpose or identity, people won’t feel compelled to purchase from you. But if you promise that you value user experience, but the perception is off, then you also won’t find success.

In the next section, let’s review how you can use these categories to define your brand pillars.

To determine your brand pillars, think about your brand strategy and come up with things that clearly define your personality, voice, customer experience, purpose, and how people will perceive your brand.

1. Refine Your Company’s Purpose

More than 60% of entrepreneurs start a business because they want to be their own boss. But dig a little deeper, and there are many reasons that people start businesses.

Sometimes it’s finding something that’s missing in an industry they’re familiar with. Or the product could relate to a goal they want to achieve, like improving remote technology access.

As your business gets off the ground, you may need to focus on funding, overhead, and hiring. This can impact your ability to remember this initial driving purpose for your business.

But this purpose is often the core of your brand. When creating brand pillars, it’s easy to write something that sounds good but doesn’t really mean anything. For example, a brand pillar of service sounds great. But if there isn’t a purpose that shores up that broad concept, service is just something that every business does.

As you nail down the purpose of your company, think about what your audience would do if your company didn’t exist. What makes your business impossible to replace? Is it your people? Your approach to manufacturing? Your quality assurance?

There is a purpose behind every decision you make as a company. Before you draft your brand pillars, revisit and refine that purpose. And if you’re looking for some inspiration, check out mission statement examples from other brands you admire.

Brand pillars resources: Mission Statement Examples

Then, ask yourself:

  • Why did you/are you starting your company?
  • What do you want to make happen?
  • How do you want to serve your customers?
  • What value do you offer to customers to support your mission and vision?

Your purpose pillar should serve as a magnet for employees and customers who share similar values. It will also offer a hook to tell your company’s story and differentiate yourself from your competition.

2. Research to Understand How Customers See Your Brand

Whether you’re making new brand pillars or creating pillars as part of your rebranding efforts, customer perception is key.

Start with what your audience already knows about your brand to meet their high expectations. Use social listening and reputation management tools to get a sense of how customers feel about your brand.

Then, track your customer journey. At each step, gather customer feedback on experiences with your brand and products. As you collect these insights, ask yourself:

  • What role do you play in your customer’s minds?
  • What do they perceive your value to be?

For example, say people view you as a place they go to learn about your industry. Does this perception align with your brand and business goals? What can you do to impact this perception?

Brand pillars resources: Customer Journey Template

You may also want to use customer profile templates or create an ideal customer profile. These tools can help you narrow down the target audience for your research.

While it can be tempting to make guesses about how your customers feel and how they want to engage with your brand, it’s best to pair your hunches with data.

This deeper understanding of your customers can help you create a perception brand pillar that resonates with them.

3. Develop Your Brand Identity

Brand identity is more than your business name, slogan, and logo. It’s more than your brand voice or other brand elements.

When it comes to brand pillars, your brand identity is a composite personality. It’s a mashup of the community you’ve built in your company and how those voices come together. Your brand identity will show how incredible the different groups that make your company are when they come together.

But to create a strong pillar, that identity needs to be authentic. You can’t just invent what you want your identity to look and sound like. It should come from the consistent voice of your team, products, and brand. And it should naturally come into everything that you do as a business.

To develop your identity pillar, ask these questions:

  • What’s your culture like?
  • What’s your point of view?
  • What kind of tone of voice do you use in communication?
  • What are the convictions and behaviors that define your brand?

Defining your voice and brand is about strategizing how you want to speak to your audience on several platforms. The brand personality signals what employees might be like, how they behave, and who your customers are.

4. Define Your Company Values

Company values help you take your business purpose from a vision to an active set of principles. So, if your purpose is the end goal, your values are the path you want to take to achieve that goal as a team.

Your company values usually describe how your business wants to manage relationships and grow. They may directly connect to your brand pillars, or they may inspire your pillars.

As you define your company values pillar, ask:

  • What’s important to you in your interaction with your audience?
  • What do you value above all else, even before your own financial interests?

This pillar will help define what you care about as a company and why. Use this glossary if you’re not sure how to condense your values into a simple word or phrase.

Brand pillars resources: Company Values Glossary

5. Create a Powerful Brand Experience

It doesn’t matter how great your brand looks and sounds if it doesn’t create a great experience. Customers make thousands of decisions every day. To create a brand with impact, you need to think about how you can influence those decisions.

It may sound small or insignificant, but choices like how long it takes to put on a pair of shoes or the texture of a noodle can make a difference in how your customers feel. If that brief feeling lasts, they’ll remember it the next time they’re talking on the phone with a friend or scrolling social media.

So, think about creating a great brand experience and setting the right brand pillar for engagement:

  • How do you want to make your customers feel?
  • How do customers interact with you at each touchpoint?
  • What kind of experience do you want customers to have?
  • What makes your customer experience better than your competitors?

Brand experience will define much of your perceived personality and reputation. When creating your brand pillars, think about what your customers get from you. Do they get convenience, higher quality, or time savings?

6. Test Your Ideas

A draft can sound great but not work out when it’s applied to a real-life situation. And a big idea can make business sense, but not resonate with customers. So, once you’ve drafted your brand pillars, verify your ideas.

You may want to run surveys with your internal team or a select group of customers. Focus groups and A/B testing are also useful strategies.

You may also want to run some competitive analysis to see whether your brand pillars measure up against others in your industry.

After early testing and launch, do regular testing to see if your brand perception needs an update to evolve with your customer needs.

7. Adjust Your Brand Strategy to Meet Customer Needs

After you collect customer data about your brand pillars, put it to good use. It can be tempting to create a brand pillar strategy and hold on to it for the life of your brand. But sometimes your company must change with your customers.

Besides changing your strategy, find ways to proactively communicate changes to your audience. A product launch can often feel like a big event inside an organization, but fall flat because the message didn’t reach the right audience.

Use your analytics to measure the channels and platforms where your brand pillars come into play. Then, use those insights to balance customer expectations with business goals.

That said, sometimes a mini-pivot or extra segmentation is enough to align your brand pillars with customer needs. Don’t try to change the foundation of your brand with every new trend.

Brand Pillar Examples

1. Hilton

Brand pillar examples: Hilton

Hilton’s brand pillars are clearly stated on its website. They value Hospitality, Integrity, Leadership, Teamwork, Ownership, and Now (a sense of urgency).

These are their stated values, but they’re really brand pillars. They showcase how the company wants to be perceived, what its identity is, what the customer experience is like, and what they value.

2. TikTok

Brand pillar examples: TikTok

TikTok’s core brand page highlights its brand pillars with a voice that’s as clear and quick as the platform experience. Their purpose is to help users discover more and to create the perception of a constant refresh for their users.

TikTok’s identity is the expression of its users. It changes as its user base changes and its value lies in the creativity of its customers. These pillars support a brand experience of relentless energy that explains the meteoric growth of this social platform.

3. Savage X Fenty

Brand pillar example: Savage X Fenty

This “About” page highlights brand pillars for Savage X Fenty that are the foundation of this potent brand. With brand pillars of fearlessness, confidence, inclusion, accessibility, and individuality, it quickly communicates the core of its brand purpose, identity, and experience to a wide audience.

4. Patagonia

Brand pillar examples: Patagonia

Patagonia is a brand that has personality and purpose. Their mission is to use business to protect nature (this is their purpose). Plus Patagonia aims to build the best product, cause no unneeded harm, and create new ways of doing things (this is their personality and values).

With this brand, values and purpose are the center of the brand, so they form its pillars.

5. Samsung

Brand pillar examples: Samsung

The larger a brand gets, the more difficult it can be to stick with defined brand pillars.

Samsung is a global corporation with a diverse technology product portfolio. This means its brand pillars don’t just need to speak to B2C customers purchasing mobile phones and digital displays. It also needs to communicate its purpose, values, and identity to B2B customers in networks, health, and medical equipment.

Pillars like progressive innovation and defiant optimism show a commitment to the brand’s continued growth in technology. At the same time, pillars like integrity, transparency, and social betterment put an emphasis on its values.

6. Silver and Riley

Brand pillar examples: Silver and Riley

This luxury fashion brand uses brand pillars to ground its brand voice. Silver and Riley‘s purpose, to provide luxury bags at an attainable price, is front and center. The brand puts emphasis on principles like diversity, inclusivity, and customer focus to show the different brand pillars that support the overall goal.

7. Nike

Brand pillar examples: Nike

Since its founding, Nike has been consistent in its brand pillars. They are all about competition and surpassing one’s limits. All the company’s advertising, messaging, and investment decisions support that personality and value.

Use Brand Pillars to Grow Your Influence

Brand pillars are a useful way to shore up your brand strategy. They can help define and differentiate your company from the competition. And you can use brand pillars to build awareness and shape sentiment about your brand.

Because it’s not just about making products anymore — it’s about having a voice and point of view that offers value to its customers.

Editor’s note: This post was originally published in June 2021 and has been updated for comprehensiveness.

brand consistency

The post The Beginner’s Guide to Brand Pillars appeared first on ProdSens.live.

]]>
https://prodsens.live/2023/03/22/the-beginners-guide-to-brand-pillars/feed/ 0
7 Reasons Why You Need to Master the Fundamentals (A Visual Guide) https://prodsens.live/2023/02/22/7-reasons-why-you-need-to-master-the-fundamentals-a-visual-guide/?utm_source=rss&utm_medium=rss&utm_campaign=7-reasons-why-you-need-to-master-the-fundamentals-a-visual-guide https://prodsens.live/2023/02/22/7-reasons-why-you-need-to-master-the-fundamentals-a-visual-guide/#respond Wed, 22 Feb 2023 03:01:46 +0000 https://prodsens.live/2023/02/22/7-reasons-why-you-need-to-master-the-fundamentals-a-visual-guide/ 7-reasons-why-you-need-to-master-the-fundamentals-(a-visual-guide)

Fundamentals are boring. Admit it; we’ve all been there before: wanting to skip the dry and boring fundamentals…

The post 7 Reasons Why You Need to Master the Fundamentals (A Visual Guide) appeared first on ProdSens.live.

]]>
7-reasons-why-you-need-to-master-the-fundamentals-(a-visual-guide)

Fundamentals are boring.

Admit it; we’ve all been there before: wanting to skip the dry and boring fundamentals and jump right into the exciting stuff. I know I have. But trust me when I say this: taking time to learn the basics can make all the difference in the long run. I had to learn this the hard way. But you’ll not have to make the same mistake I did.

Here are my 7 takeaways on why you should be patient enough to master the fundamentals first.

1. Builds a strong foundation

foundation

Fundamentals are the building blocks of the more advanced concepts you’ll learn in the future. They help to establish a strong foundation upon which you can build more advanced knowledge or expertise. Your understanding of the subject will be solid and complete with a strong foundation.

2. Enables innovation

innovative ideas

Creating anything truly impressive or innovative can only be easy with a solid understanding of the basics. Because innovation requires a mental understanding of certain underlying frameworks, this understanding will allow you to devise innovative solutions that can change the game. Innovation often comes from building on existing knowledge and improving it. It is only possible if you have a strong grasp of the basics.

3. Effortless learning

learn advanced topic easily

Once you master the fundamentals, it becomes easier to learn more advanced concepts. It may take time to build the foundation. But when you build the foundation, you can easily jump from one advanced topic to another.

4. Makes you efficient

effiency

You can increase your efficiency and productivity in the long run by mastering the basics. If you skip the basics and rush to advanced concepts, you may struggle to understand the material. It will slow down your learning process. Also, with a strong foundation, you will be able to finish tasks fast and are less likely to make mistakes.

5. Makes you a better problem-solver

solving problem

Fundamentals help you develop critical thinking and problem-solving skills. You can better analyze and break big problems into small pieces and develop more effective solutions.

6. Builds confidence

confident

Mastering the underlying principles lets you see how new and complex information fits together. It builds confidence and helps you feel more comfortable with the material. You can approach more advanced concepts easily and confidently with a solid foundation. Also, you will know what is happening and why. It also helps to reduce your imposter syndrome.

7. Provides versatility

connecting among multiple disciplines

Understanding the fundamentals of a subject can make you more versatile and adaptable. You can apply that knowledge in various situations by deeply understanding the basics. Also, you can connect knowledge among multiple disciplines if you master the fundamentals.

So, Even though it may be tempting to skip over the basics, stick with it and give the fundamentals the attention they deserve.

Recap

recap

  • Fundamentals are important because it-
  • builds a strong foundation
  • enables innovation
  • makes learning effortless
  • increases efficiency and productivity
  • develops problem-solving skills
  • builds confidence and reduces imposter syndrome
  • provides versatility and adaptability

That’s it! If you enjoyed reading this, you can connect with me on Twitter or check out my other articles. Additionally, you can subscribe to my non-tech newsletter, where I share my thoughts on life, productivity, and more, as well as the best content I’ve come across each month.

The post 7 Reasons Why You Need to Master the Fundamentals (A Visual Guide) appeared first on ProdSens.live.

]]>
https://prodsens.live/2023/02/22/7-reasons-why-you-need-to-master-the-fundamentals-a-visual-guide/feed/ 0
8 Best Project Management Podcasts to Listen to in 2022 https://prodsens.live/2022/11/29/8-best-project-management-podcasts-to-listen-to-in-2022/?utm_source=rss&utm_medium=rss&utm_campaign=8-best-project-management-podcasts-to-listen-to-in-2022 https://prodsens.live/2022/11/29/8-best-project-management-podcasts-to-listen-to-in-2022/#respond Tue, 29 Nov 2022 13:08:18 +0000 https://prodsens.live/2022/11/29/8-best-project-management-podcasts-to-listen-to-in-2022/ 8-best-project-management-podcasts-to-listen-to-in-2022

The project management field is growing. By 2027, employers will have 88 million PM roles, according to the…

The post 8 Best Project Management Podcasts to Listen to in 2022 appeared first on ProdSens.live.

]]>
8-best-project-management-podcasts-to-listen-to-in-2022

The project management field is growing. By 2027, employers will have 88 million PM roles, according to the Project Management Institute. To capitalize on new opportunities, PMs must keep up-to-date with industry trends and insights.

Click Here to Get HubSpot's Project Management Tool

Whether you’re an industry professional or just starting your career, we’ve gathered 8 of the best project management podcasts to help you on your journey. These podcasts cover a wide variety of topics, from company culture to organizational leadership.

Take a deep dive below.

1. Manage This — The Project Management Podcast

best project management podcast, manage this

This podcast offers an inside look into every aspect of project management. In each episode, Crowe and Yates share insider intelligence and actionable tips. Recent discussion topics include the challenges of management remotely, reshaping project innovation, and building culture.

What we like: Crowe and Yates invite a variety of subject matter experts onto the show. Conversations range from advice for someone just starting in project management to leadership tips – including how to manage uncertainty.

2. PM Point Of View

best project management podcast, pm point of view

  • Host: Kendall Lott, President at OSP International LLC
  • Length: 1 hour
  • Where to listen: Apple Podcasts and Stitcher

This podcast comes from the Project Management Institute of Washington, D.C. Plus, you’ll gather a wide range of perspectives on project management. Host Kendall Lott brings experience from roles in project management and within the C-suite. Guests also come from a variety of backgrounds and industires.

What we like: This podcast offers a wealth of knowledge. Each episode includes actionable tips and advice for PMs of all skill levels.

3. Project Management Happy Hour

project management podcast, PM happy hour

In each episode, Essendrup and Anderson cover a common problem in project management today. They then dive into practical advice and real-life examples. In addition to industry insights and tips, the hosts offer thoughtful case studies.

What we like: Each episode feels like a casual discussion with your friends. If you’re looking for a podcast that offers honest conversations about real-world issues in project management, then this is the podcast for you.

4. The Digital Project Manager Podcast

best project management podcast, The Digital Project Manager Podcast

The Digital Project Manager Podcast provides inspiration, how-to guides, tips, tricks, tools, actionable advice, and thoughtful stories. Episodes cover everything under the project management umbrella — including managing budgets and expectations, setting benchmarks, and the factors driving digital transformation.

What we like: Host Galen Low goes beyond just discussing industry trends. He connects with guests and offers actionable advice that will help you through every aspect of project management.

5. The Biker PM

project management podcast, The Biker PM

The Biker PM is the perfect project management podcast for small businesses. Host Anthoney Pavelich brings on entrepreneurs and small business owners to discuss the project management challenges they face. Here, they dissect what worked, what didn’t work, and how to navigate new startups.

What we like: Discussions on The Biker PM can benefit any small business owner or entrepreneur who needs guidance on how to avoid project management pitfalls.

6. Projectified

best bproject management podcast, Projectified

Created by the Project Management Institute, this podcast is for people who lead strategic initiatives that deliver value to their organizations. Guests include both senior and rising project managers, business leaders in Fortune 500 companies and startups, best-selling authors, top researchers, and a wide range of leading-edge thinkers.

What we like: Projectified is produced by the Project Management Institute, a for-purpose professional membership organization for project management. You can trust the podcast’s content to be accurate and in line with industry standards.

7. People and Projects Podcast

project management podcast, People and Projects Podcast

This podcast focuses on the intersection of people and projects — where work gets done in the real world. Here you’ll learn management tips that can help your team stay on track and collaborate on big-ticket items.

What we like: If you want a fresh take on project management, this is the podcast for you. Host Andy Kaufman and his guests cover various topics, from skill development to surprising ways you already use project management in your daily life.

8. Project Management Paradise

project management podcast, Project Management Paradise

This podcast delivers real project management tips and tricks from experts around the world. Host Aaron Murphy talks with business leaders, entrepreneurs, and project managers to offer thoughtful insights.

What we like: After each episode, you’ll walk away with solid guidance and understanding to help you conquer real-world challenges. That includes change management, shifting organizational behavior, and creating a project management style that aligns with your company’s culture.

Choosing the Right Podcast

If you’re looking to gain more actionable insights or expand your skills as a project manager, consider adding these podcasts to your rotation.

Both industry newcomers to long-standing project managers can learn something new from these shows. Plus, you’ll gather tips that can take your project management skills to the next level.

New Call-to-action

The post 8 Best Project Management Podcasts to Listen to in 2022 appeared first on ProdSens.live.

]]>
https://prodsens.live/2022/11/29/8-best-project-management-podcasts-to-listen-to-in-2022/feed/ 0
A Nonprofits Guide To Using LinkedIn https://prodsens.live/2022/11/23/a-nonprofits-guide-to-using-linkedin/?utm_source=rss&utm_medium=rss&utm_campaign=a-nonprofits-guide-to-using-linkedin https://prodsens.live/2022/11/23/a-nonprofits-guide-to-using-linkedin/#respond Wed, 23 Nov 2022 12:02:29 +0000 https://prodsens.live/2022/11/23/a-nonprofits-guide-to-using-linkedin/ a-nonprofits-guide-to-using-linkedin

Your nonprofit likely takes up a lot of your time, and you might not have a huge staff…

The post A Nonprofits Guide To Using LinkedIn appeared first on ProdSens.live.

]]>
a-nonprofits-guide-to-using-linkedin

Your nonprofit likely takes up a lot of your time, and you might not have a huge staff to delegate responsibilities to. So, taking the time to use online platforms might not seem like the best use of your time.

However, platforms like LinkedIn can be great for nonprofits, especially for connecting with people interested in your cause, inspiring them to take action, and even hiring new employees.

You’ll have to dedicate a bit of time to use it, but it’ll pay off in the end. Read on to use this piece as a guide for creating a LinkedIn page for your nonprofit.

Free Guide: How to Use LinkedIn for Business, Marketing, and Networking  [Download Now]

Table of Contents:

How to Create a LinkedIn Page for a Nonprofit Organization

Creating a LinkedIn Page for your nonprofit helps people interested in your cause discover you, learn about your mission, and interact with you on the platform. It can also help you attract new employees if you post job openings.

Let’s go over how you can create one.

1. Navigate to LinkedIn Pages or LinkedIn.com

LinkedIn Pages is the platform’s native tool for creating a page. If you start from this site, click “Create your Page” on the Pages page.

You can also start from LinkedIn.com, which is a great option if you already have a LinkedIn Profile. To do this within your profile, tap the “Work” button in the navigation header and click “Create a Company Page+” at the bottom.

how to create a linkedin page for nonprofit: click create a company page +

2. Select your page type.

As a nonprofit, a best practice is to select “Company.”

3. Describe your page.

The next step is to input identifying information. This includes your nonprofit’s name and an optional link to your website (sharing one can help people find you on other platforms).

You also have to create a unique URL; if it’s available, aim to make it your org name. For example, if you’re Save The Environment, your URL could be savetheenvironment.

image for 3

4. Add identifying company details.

In the company details section, input your industry, company size, and company type, which is where you’ll note that the page is for a nonprofit.

You can also add unique identifying elements to your pages, like your logo and a brief tagline to describe your mission.

image for 4

5. Preview and launch your page.

Once you’ve added all your info, preview your page to ensure you’re happy with how it looks, and make any changes if you aren’t.

When you’re satisfied, click “Create Page,” and note that you’ll be asked to verify that you’re an authorized representative of the nonprofit before the page goes live.

6. Share your nonprofit story.

After you’ve created your page, you can add more information about your story to inspire engagement and help people learn more about you.

You can add an “About Us” section, go more in-depth into your story and how you came to be, and even include a CTA to activate readers and inspire them to take action with your cause.

It’s also important to add your location, so people know where you are if they’re interested in volunteering. A unique cover photo can capture attention.

Now that you’ve created your page let’s go over how you can use it.

How to Use LinkedIn for Nonprofits

1. Share interesting content.

A great way for nonprofits to generate engagement and interaction is to share content. It will help people learn more about your operations, upcoming events, and volunteer opportunities.

LinkedIn says that pages that post daily get  2x the engagement. If you’re a smaller nonprofit, 2x daily might not be in your bandwidth, so aim to be as active as possible.

Some content ideas to share on LinkedIn are:

  • Images and videos of events, like fundraisers, to show how events have gone and inspire others to participate in the future.
  • Links to fundraisers or other donation opportunities.
  • Information about upcoming events and programming, like volunteer opportunities.
  • Educational content about your nonprofit niche to help people learn more about your cause, why it’s important, and why they need to get involved.
  • Content that shows your impact, like the results of a beach cleanup.
  • Employee spotlights so people can learn more about who runs your operations.
  • Job opportunities so those interested in investing more time in your cause can do so.

A bonus to sharing content is that it is available for anyone to see on your page when they land there.

2. Create a LinkedIn Group

A LinkedIn Group is a valuable way to engage with people interested in your mission.

You can share content and members can make their own posts, share their niche expertise, or even talk about their positive experiences with your nonprofit. When people interact in your group, you can build relationships and deepen connections with those interested in supporting and elevating your mission.

3. Share job opportunities.

LinkedIn is, first and foremost, a professional networking and employment platform. As a result, it’s a great way for you to share job opportunities at your nonprofits with professionals looking for new roles that are already interested in you and your mission.

4. Invite your staff to talk about you.

You can invite your staff to talk about your nonprofit on their page to generate interest with their connections that don’t know about you yet. This can apply to volunteers to paid staff alike.

For example, if an employee shares a post on their profile about an upcoming event, their connections might come across it and become inspired to attend the event to learn more about your organization.

Encouraging others to post about you in a genuine way also helps you build credibility.

5. Bonus: Use LinkedIn Ads

Some nonprofits might not have the budget to pay for LinkedIn ads, but those that do can benefit from them and use them to build awareness and attract new interested people.

All LinkedIn ads have a specific objective, awareness, consideration, or conversions, so you can pick one that best meets your needs. You can also select specific targeting criteria, a specific ad format, and a budget that best suits your needs.

This piece is a helpful guide to creating advertisements on LinkedIn.

Best Nonprofit LinkedIn Profiles

A great way to optimize your LinkedIn presence is to learn from other nonprofits on the platform. Below we’ll go over some great examples to use as inspiration.

1. The Surfrider Foundation

The Surfrider Foundation is dedicated to preserving the world’s oceans.

best nonprofit linkedin profiles: the surfrider foundation

What we like:

  • A clear tagline quickly summarizes The Surfrider Foundations’ mission so anyone browsing can immediately learn what it does.

best nonprofit linkedin profiles: the surfrider company tagline tagline

  • Its About Us page features critical information, including a longer description of its mission and a link to an external company website for people to learn more.
  • Sharing engaging images shows the impact of its events and programming.

best nonprofit linkedin profiles: the surfrider foundation engaging impace posts

2. Race Forward

Race Forward is dedicated to racial justice and solving complex racial issues. 

best nonprofit linkedin profiles: race forward linkedin profile home page

What we like:

  • It shares videos advertising events to generate excitement for upcoming programming.

best nonprofit linkedin profiles: race forward sharing information about upcoming events

  • Posting job opportunities helps Race Forward attract talent on the platform to let people know that they can support the cause and further their impact with employment.

best nonprofit linkedin profiles: raceforward sharing job opportunities on its profile

3. Best Friends Animal Society

Best Friends Animal Society is dedicated to reducing the number of homeless pets.

best nonprofit linkedin profiles: best friends animal society home page

What we like:

  • Sharing content to demonstrate the impact of its work helps Best Friends Animal Society inspire others to participate and make a difference as well.

best nonprofit linkedin profiles: best friends animal society sharing educational content

  • It shares educational content related to its niche that helps others learn more about its mission and ways to elevate the cause.

best nonprofile linkedin profiles: best friends animal society sharing the impact of its work

The Farmlink Project connects farmers to food banks to deliver farm fresh produce to those in need while eliminating food waste.

best nonprofit linkedin pages: the farmlink project linkedin profile

What we like:

  • Educational content helps The Farmlink Project inform its audience about the background of its mission and why it’s important.

farmlink educational content

  • Sneak peeks into day-to-day operations give its supporters a preview into operations and lets them know it’s still up and running.

farmlink day to day

  • The Farmlink Project engages with the community in comment sections to develop and deepen relationships with people supporting its cause.

farmlink engaging with community

Over to You

LinkedIn is a valuable platform for nonprofits to use, especially when it comes to finding active individuals who are interested in making a difference for the causes they believe in.

New Call-to-action

The post A Nonprofits Guide To Using LinkedIn appeared first on ProdSens.live.

]]>
https://prodsens.live/2022/11/23/a-nonprofits-guide-to-using-linkedin/feed/ 0
WordPress Header Image Invisible due to Zero Height after Update to 6.1 https://prodsens.live/2022/11/14/wordpress-header-image-invisible-due-to-zero-height-after-update-to-6-1/?utm_source=rss&utm_medium=rss&utm_campaign=wordpress-header-image-invisible-due-to-zero-height-after-update-to-6-1 https://prodsens.live/2022/11/14/wordpress-header-image-invisible-due-to-zero-height-after-update-to-6-1/#respond Mon, 14 Nov 2022 09:03:02 +0000 https://prodsens.live/2022/11/14/wordpress-header-image-invisible-due-to-zero-height-after-update-to-6-1/ wordpress-header-image-invisible-due-to-zero-height-after-update-to-6.1

After my customer’s web hoster updated WordPress from 6.0.2 to 6.1, the responsive hero header images were not…

The post WordPress Header Image Invisible due to Zero Height after Update to 6.1 appeared first on ProdSens.live.

]]>
wordpress-header-image-invisible-due-to-zero-height-after-update-to-6.1

After my customer’s web hoster updated WordPress from 6.0.2 to 6.1, the responsive hero header images were not visible anymore. Comparing the HTML source code and CSS styles, we found the problem and the solution.

After I posted the problem on StackOverflow, unsurprisingly, apart from the obvious and correct suggestion to ask it on wordpress.stackexchange.com instead, instead of answers it attracted downvotes without any further comments, so I realized DEV, as a more helpful and inclusive community, might be a better place to share our insights.

“The Problem: Missing Header Images”

Our hero header images were no longer visible in a full-site-editing enabled block theme (originally based on Block Base) as their computed height changed zero pixels.

Changing the style from height: 100% to height: auto made the images appear again, but only partially.

When comparing the markup, class names, and applied styles, I first failed to see the difference, apart from the fact that height: 100% now computes to zero height and the image position seems to have changed too.

A new Container Class: is-layout-constrained

There is a new container class, .is-layout-constrained which should not affect the image height as I understood.

A new relative Image Wrapper

As the image has position: absolute, this might be due to a change to a parent container. And it is!

Our next positioned parent is the wrapping

element figure.wp-block-post-featured-image around the actual image. This figure element defaults to position: relative in WordPress 6.1, so it serves as a new nearest positioned ancestor (as described in MDN’s Absolute positioning article).

The following CSS is present only after updating to WordPress 6.1:

.wp-block-post-featured-image {
    /* position: relative; */
}

This breaks images set to cover as a hero image like this:

__computed_styles {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

A possible solution is to revert the image wrapper to the previous state by explicitly setting the position back to static. I added both the parent header and the actual figure element just to make sure to override the default style by giving the new rule a greater specificity than the original one:

header figure.wp-block-post-featured-image {
  position: static;
}

The post WordPress Header Image Invisible due to Zero Height after Update to 6.1 appeared first on ProdSens.live.

]]> https://prodsens.live/2022/11/14/wordpress-header-image-invisible-due-to-zero-height-after-update-to-6-1/feed/ 0 post 1, 10/22/22 https://prodsens.live/2022/10/23/post-1-10-22-22/?utm_source=rss&utm_medium=rss&utm_campaign=post-1-10-22-22 https://prodsens.live/2022/10/23/post-1-10-22-22/#respond Sun, 23 Oct 2022 00:21:19 +0000 https://prodsens.live/2022/10/23/post-1-10-22-22/ post-1,-10/22/22

Today I learned that there are a ton of resources online for coding. There are those who share…

The post post 1, 10/22/22 appeared first on ProdSens.live.

]]>
post-1,-10/22/22

Today I learned that there are a ton of resources online for coding. There are those who share this information via Twitter and others who share via blogs on their own websites. Very nervous to start this path but hopefully it will be worth it. I will be using this to document my progress during a Boot Camp I will be taking so if you happen to actually come by this it might be an interesting read at some point. I quite literally know nothing as of this moment.

The post post 1, 10/22/22 appeared first on ProdSens.live.

]]>
https://prodsens.live/2022/10/23/post-1-10-22-22/feed/ 0
A Git-Hook for Commit Messages Validation – No Husky, Just JS https://prodsens.live/2022/10/14/a-git-hook-for-commit-messages-validation-no-husky-just-js/?utm_source=rss&utm_medium=rss&utm_campaign=a-git-hook-for-commit-messages-validation-no-husky-just-js https://prodsens.live/2022/10/14/a-git-hook-for-commit-messages-validation-no-husky-just-js/#respond Fri, 14 Oct 2022 21:13:42 +0000 https://prodsens.live/2022/10/14/a-git-hook-for-commit-messages-validation-no-husky-just-js/ a-git-hook-for-commit-messages-validation-–-no-husky,-just-js

Join me on this week’s post as I seek out an alternative for Husky git-hooks solution and find…

The post A Git-Hook for Commit Messages Validation – No Husky, Just JS appeared first on ProdSens.live.

]]>
a-git-hook-for-commit-messages-validation-–-no-husky,-just-js

Join me on this week’s post as I seek out an alternative for Husky git-hooks solution and find it sitting right in front of me – Native Git infrastructure and NodeJS based custom hooks.

The need for a commit message standardization

At a certain point in any RnD org evolution the need for enforcing a git commit messages standard arises. The reasons may vary, but typically it’s for gaining better context for each change, perhaps insisting on a ticket reference or maybe other related metadata for each commit.

My reason for enforcing a standardization comes from the Conventional Commits standards and how they are translated to package version bumping, mainly on Monorepos. It is critical that commits will have a message which instructs the publishing mechanism how to bump the package version accordingly, otherwise
 it’s a mess.

So how do we enforce conventional commits nowadays?
Well, Husky is the standard go-to tool for enforcing such a thing (along with linting etc.), but something just doesn’t feel right with it. I mean, do we really need another NPM package here?

I see that Git already has its own hooks infrastructure to deal with that, both on the server and the client side, so why can’t we use Git’s native solution instead?

I believe that the main reason is that many fear that they won’t be able to distribute the hook configurations with the rest of the organization, since Git’s hooks reside in the ‘.git/hooks’ directory which is not committed into the source control.
Being unable to share these configurations puts us back in the wild-wild-west of commit messages.

But I believe there is still hope –

First let’s define our goals:

  • Have a git message hook which will check if the commit message is a valid conventional commit message
  • Have this git message hook run on the client
  • Do it all using only Git API, no external libs
  • Have it as simple as possible so adding new hooks will be intuitive
  • Make sure that the configuration can and will be aligned with all devs in the org

As the Chemical Brothers used to say – “Here we go!”

I’m taking my Pedalboard monorepo as the project I’m going to apply this on, for the simple reason that conventional commits have a crucial part in bumping its packages version.
The plan is to create a commit-able configuration for a “commit-msg” hook, point Git to “look” at this configuration instead of its default one and then implement the required logic for enforcing the commit messages.

Creating my custom hook

As you might know, under the .git directory of your git-managed project there are several git hook examples ready to be taken and tweaked. Let’s see what we got there. Here is the content under pedalboard/.git/hooks:

applypatch-msg.sample
commit-msg.sample
fsmonitor-watchman.sample
post-update.sample
pre-applypatch.sample
pre-commit.sample
pre-merge-commit.sample
prepare-commit-msg.sample
pre-push.sample
pre-rebase.sample
pre-receive.sample
update.sample

We are interested in the commit-msg.sample. I will copy it to a .git-hooks directory under the project’s root and change its name to “commit-msg” so that Git will stop ignoring it.
I will just add a line of code to make sure it runs when Git is about to perform a commit msg modification, something like this:

echo "My commit-msg hook"
exit 1

Here is its original content with my change:

#!/bin/sh
#
# An example hook script to check the commit log message.
# Called by "git commit" with one argument, the name of the file
# that has the commit message.  The hook should exit with non-zero
# status after issuing an appropriate message if it wants to stop the
# commit.  The hook is allowed to edit the commit message file.
#
# To enable this hook, rename this file to "commit-msg".

# Uncomment the below to add a Signed-off-by line to the message.
# Doing this in a hook is a bad idea in general, but the prepare-commit-msg
# hook is more suited to it.
#
# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^(.*>).*$/Signed-off-by: 1/p')
# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"

# This example catches duplicate Signed-off-by lines.

echo "My commit-msg hook"
exit 1

test "" = "$(grep '^Signed-off-by: ' "$1" |
    sort | uniq -c | sed -e '/^[   ]*1[    ]/d')" || {
   echo >&2 Duplicate Signed-off-by lines.
   exit 1
}

At this point there is no use in committing something to check it, since Git is not pointing to my “.git-hooks” directory. Let’s make it happen with the following command –

Note that this only applies to the Git config of this project and not the global Git config. Don’t change your global Git config if you don’t have a good reason to do so.

git config core.hooksPath .git-hooks 

You can validate that this was done like this:

git config --get core.hooksPath   

.git-hooks

Now when I try to commit something, the commit does not succeed (remember the “exit 1”?) and logs out

My commit-msg hook

Validating the Commit message

The logic should be straightforward – we get the commit message and match it with some regex which should represent the different conventional commit messages.

What I’m about to show you is pretty cool – you can write your custom hook in no other than JavaScript!

You just need to add to the file the annotation that this hook should run on NodeJS, and there you go – you can start doing your JS magic without messing around with bash scripts and what-have-you.
Here is an example which will yield “Matti” and will terminate the script, making the commit fail:

#!/usr/bin/env node

console.log('Matti');
process.exit(1)

Ok, ok – let’s get back to what we are set to do. First I will get the message and print it out –

#!/usr/bin/env node

const fs = require('fs');

const commitMsgFile = process.argv[2];
const message = fs.readFileSync(commitMsgFile, 'utf8')
console.log('message:', message);
process.exit(1)

In the code above we’re getting the 3rd argument, which is the commit message file, we read it using Node’s FS module, and print out the message.

All that is left to do now is to run some RegExp checks and validate it. Let’s see if I can find something on the web which can assist me with that
 Here is a nice one.
My custom hook looks like this now:

#!/usr/bin/env node

const fs = require('fs');

const conventionalCommitMessageRegExp = /^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test){1}(([w-.]+))?(!)?: ([w ])+([sS]*)/g;
let exitCode = 0;
const commitMsgFile = process.argv[2];
const message = fs.readFileSync(commitMsgFile, 'utf8');
const isValid = conventionalCommitMessageRegExp.test(message);

if(!isValid) {
   console.log('Cannot commit: the commit message does not comply with conventional commits standards.');
   exitCode = 1;
}

process.exit(exitCode);

Yay! This is really nice, with no need to install Husky or any other solution, just by relying on Git and Node we have a solid solution for enforcing conventional commit messages on the client, but how do we share this configuration with the rest of the team?

Sharing the hook

We need to be able to share this configuration with the rest of the team/org so that nobody falls behind. What it means that we need to make this modification to the git’s core.hooksPath, in other words run this command for all devs:

git config core.hooksPath .git-hooks

But we cannot run it for all manually, so we need other means to run it for them. You can use the “prepare” or the “postInstall” npm life-cycle scripts in your project to run this script above, and you will get a 99% guarantee that every developer has this configuration in place (after all, I hope they’re installing the project’s packages at least once).

For some odd reason, when working with Yarn Workspace these life-cycle scripts fail to work as expected. I need to dive into this and figure out what’s going on there, but in the meantime – we have a nice commit message hook, don’t we? 🙂

As always, if you have any questions, or comments on this topic, be sure to leave them in the comments section below so that we can all learn from it.

Hey! If you liked what you’ve just read check out @mattibarzeev on Twitter đŸ»

Photo by Motoki Tonn on Unsplash

The post A Git-Hook for Commit Messages Validation – No Husky, Just JS appeared first on ProdSens.live.

]]>
https://prodsens.live/2022/10/14/a-git-hook-for-commit-messages-validation-no-husky-just-js/feed/ 0