Jetpack Launches Customer Research Project to Improve the Plugin and Reduce User Frustration

Jetpack’s Design and Research Team is launching a new customer research panel as part of an ongoing effort to collect feedback in advance of launching new features. They are allocating one day every month to talk with users:

It’s a small step toward an important goal of better understanding what our users need, seeing and hearing first hand where they are frustrated, and learning how Jetpack can work better for them.

The relationship benefits both sides. Our customers enjoy a sneak preview of features coming down the roadmap, and are empowered to help shape the product’s future. And our design slash research team sees first hand, how our products perform with real folks using them.

Jetpack is recruiting customers for 45-minute long interviews on Zoom where they will preview some new designs and talk about proposed product improvements that are already in the works. In exchange, participants receive a $25 Amazon gift card.

This outreach effort may help in easing the periodic friction between Automattic and the larger WordPress community, which tends to emerge like pop-up storms on social media and quickly dissipate, but not without taxing onlookers’ good will. Although Jetpack is active on more than 5 million sites, and is marketed as “the most popular WordPress plugin for just about everything,” its team occasionally seems out of touch with users.

One recent example of this happened when Matt Medeiros drew attention to the wording for the Jetpack Scan upsells that appear on the plugins page in the admin. Specifically, people took issue with the claim that “adding plugins can expose your site to security risks.” While this is true, participants in the resulting heated discussion said it implies that Jetpack, the plugin that claims to do “just about everything,” is the only safe plugin.

Some perceived it to be in violation of #11 of the Plugin Directory guidelines, which states that plugins should not hijack the admin dashboard. The guideline also recommends avoiding advertising in the admin “as it is generally ineffective,” as well as frustrating for users who are not looking for additional complications while solving problems.

This particular case was resolved after Automattic product designer Jeff Golenski took the community feedback to his team. They updated the advertisement to be less fear-inspiring regarding the WordPress plugin ecosystem.

In another potent example of disconnect from the larger community, Jetpack 7.1 quietly introduced suggestions to the plugin search screen. The update artificially inserted a search result into the first plugin card slot, identifying the corresponding Jetpack feature if one was available. Jetpack’s module placement in the results subtly implied that other plugins were inferior options to its existing modules. Some of the modules advertised required an upgrade. The UI did not make it clear that the artificial search result was not coming from the plugin directory’s algorithm. The Jetpack team claimed that it was designed to be a notice but its implementation was virtually indistinguishable from an advertisement.

In a later release, Jetpack removed all feature suggestions that previously advertised upgrades, characterizing the mistake as “an error in judgment.” This kind of misstep could have easily been avoided if the feature had been presented to actual users in advance. User researchers could have asked, “How would you like it if we put some of our paid upgrades in the top search spot when you are searching for a new plugin?”

Historically, the company has had a few rocky launches where it seemed some product teams did not consider the community’s perception in their marketing approaches. Most recently, this was evident in the launch of WordPress.com’s new website building service, which failed to include important information, i.e. that the intention was to refer business out.

The new customer research panel is a strategic move for Automattic and should allow the company to avoid a lot more frustration and miscommunication around Jetpack. It could also be valuable as a means of testing potential marketing angles, beyond just specific features the team is developing.

“When you have a team continually connecting with their customers, you find that they start to become internal ambassadors for the users, helping to weave the user’s voice into product and design conversations throughout the entire product design process.” Automattic UX/Product Designer Yvonne Doll said in the announcment.

If you want to help the Jetpack team realize these goals and become ambassadors for their users, visit the plugin’s user research blog and sign up to participate in upcoming interviews.

Kubernetes Multi-Cluster Management and Governance

Due to the performance nature of modern cloud-native applications, Kubernetes environments need to be highly distributed. Proper multi-cluster management and governance ensure consistent, secure operations across all environments. In this Refcard, we further explore Kubernetes multi-cluster management and governance, why it's important, and core practices for success.

WP Buffs Finalizes First Acquisition, Purchases WP EZI

Decorative image that displays the WP Buffs and WP EZI logos.

Earlier today, WP Buffs announced that it had acquired WP EZI, a WordPress maintenance and support service. It was a five-figure acquisition for 64 active subscriptions and 343 total customers. Paul Tselekidis, the former owner of WP EZI, is stepping away from the project.

WP Buffs offers 24/7 WordPress website management. Its team works directly with website owners and startups. They also work with white-label partners in the WordPress space. Agencies, freelancers, and hosting companies resell the WP Buffs subscription services instead of hiring a global team of their own.

This is the first acquisition for the company and was done through their new Business Acquisition Unit.

For WP EZI users, nothing should change about how they use the service. “The day-to-day of the folks at WP EZI (aside from Paul) will continue unchanged as they’ve all decided to stay on board and are excited for this new chapter of the business,” said Joe Howard, the Founder and CEO of WP Buffs. “For the time being, they will continue to function as team members of WP EZI, although they’ll, of course, be given a warm welcome as new members of the WP Buffs family.”

At the moment, none of the pre-acquisition WP Buffs staff will move over to any WP EZI projects or vice versa. The two brands will remain separate.

“Mostly, this is for current WP EZI subscription clients, as keeping them happy and unbothered is our top priority,” said Howard.

One change coming to WP EZI is that it will no longer offer new care plan subscriptions. The goal is to send those leads to WP Buffs. WP EZI will continue serving current care plan customers and handle one-off projects.

“The strength of WP Buffs is in our strong systems and scalable business model of selling and executing on subscription services,” said Howard. “That’s why we’ll continue to accept new care plans there and send all one-time requests to WP EZI. They have experience with this business model, so we’re going to keep that team doing the work they’ve proved to be strong at.”

Howard did not give much away in terms of long-term changes. He said that while they are mulling over some ideas, their priorities were a peaceful transition for WP EZI clients and learning from and helping the current team.

“Most of the benefits for WP Buffs come from acquiring an already profitable business and client base,” he said. “Furthermore, the acquisition allows us to funnel care plan leads into WP Buffs and more one-time work into WP EZI. These silos will allow each team to be more efficient since they’ll be able to focus on their areas of strength.”

On Acquisitions and Growth

On the low end, the deal was likely at least mid to upper-five figures. We know that it was a five-figure acquisition. There were 64 active customers with an $87 per month subscription or more. This also assumes a consistent active subscription count for the last year or so. This is speculation but should provide some low ballpark numbers for others looking to sell a WordPress-related business.

While Howard did not provide an exact figure, his company provided far more information than is typical of business acquisitions in the WordPress ecosystem. Often, these deals are made only with an agreement that neither party share the sale price. The transparency from WP Buffs should come as a breath of fresh air to other small business owners. It can be overwhelming venturing into a first acquisition from either end.

One of his goals is to be transparent with how WP Buffs is run. His 2020 year in review post is lengthy, but he does not hold back on mistakes and successes. It provides a lot of insight that other business owners can learn from.

Howard has some experience scaling businesses beyond that $10,000 – $15,000 monthly recurring revenue (MRR) spot, which is where some small businesses begin to plateau. I asked him to share his experience with other business owners.

“WP Buffs now does $100,000+ MRR,” he said. “That means we don’t have the same issues as a care plan company at the scale of WP EZI — and if we do, we can pay to make those challenges go away.”

With WP Buffs now in control of the WP EZI brand, they can dedicate funding where needed and use their leadership and management where needed. Because their team has been here before, it should provide the experience to push past any hurdles.

“The reality here is just an economics of scale,” said Howard. “‘Bigger’ companies can simply flex a little more muscle to get rid of roadblocks. Plus, they have more financial flexibility to experiment and get things wrong to find that one thing that makes the difference when it comes to growth.”

He wrapped up his advice by saying that businesses should focus on their subscription metrics:

  • Develop 1-2 predictable, lead acquisition channels and grow those (increase MRR growth from new sales).
  • Get a ton of client feedback and make fast adjustments to keep them happy (lower churn).
  • From the client feedback, implement new features, offerings, value to current clients so they’ll stay with you longer and tell others about you (increase expansion revenue and lifetime value).

“One basic piece of advice is it’s never too early to start thinking about selling, even if it’s not on your roadmap,” said Howard. “Whether you ever want to sell your business or not, the things that make the kind of business people want to purchase are the same things that simply make it a good business, so why not do them?”

Howard and Tselekidis had an open and honest conversation about the acquisition on the WPMRR podcast. Some of it is personal, but it provides a glimpse behind the curtain of a WordPress business sale.

Tselekidis talked about spreading himself too thin among his various projects in the podcast. After a self-analysis and reevaluating his interests, he decided to find a new home for WP EZI. This will allow him to focus on and pursue other goals. “It’s time to move on; like it’s my time,” he said of continuing work that he was not as passionate about. “I don’t want to do a disservice by my clients.”

Tracking multiple sources of traffic

Hi,

This might be a simple question, but I have an affiliate site that I want to drive traffic to, and the traffic will be coming from various sources.

All I want to know is that I got the traffic count that is being contracted for from each source...

My first thought is to create a sub-domain for each traffic source and utilize a DB update query to increment the visitors on the index page for that sub-domain, and then Automatically redirect the visitor to the actual affiliate page.

This would accomplish 2 things -

  1. give me a count on each sub-domain to compare to the contract
  2. make the link easier without the affiliate code at the end of it.

I guess the basic question is whether there is an easier quicker way to do this other then creating a mysql table to keep track of the visitor count per sub-domain?

Suggestions are welcome.
Thanks
Douglas

128 vs. 256-bit SSL Encryption: What Are the Differences?

When you are searching for an SSL certificate, you will find 128-bit encryption and 256 bit encryption certificates. What are they? The below questions may come to your mind.

  • Is 128 bit SSL encryption secure?
  • Is 256 bit SSL encryption secure?
  • What does 128 or 256 bit encryption mean?

Don’t panic; we have answers.

4 Basic Steps to Becoming a More Self-Aware Project Manager

“Knowing yourself” is probably the most underrated yet highly significant aspect of management at any level. A truly self-aware project manager would be highly attuned to their own behavior, emotions, and reactions. Self-awareness also keeps us humble so we can acknowledge what we have yet to know and understand the crucial attributes of our own personality.

That’s why the process of efficiently managing others would naturally start with managing oneself, and being self-aware is a vital prerequisite to do so. The most assured project managers perform well in testing times because they know their limitations, strengths, and weaknesses. In a time of crisis, they would be able to reflect and quickly work out a solution instead of going into a shell. In a way, it all comes down to leading yourself before attempting to guide anyone else.

Ignite 3 Alpha: A Sneak Peek Into the Future of Apache Ignite

What Is Ignite 3?

Apache Ignite has existed for more than six years. During these years, Ignite evolved a lot. The SQL engine became more comprehensive, page-memory architecture and the persistence layer were introduced, and many features were added. These advancements make Ignite an extremely powerful tool, suitable for a wide variety of use cases from basic caching to complicated, multi-component data integration hubs. However, such power came with a price. The new capabilities were implemented as additions to the existing codebase; that is, Ignite experienced no significant architectural or API changes. As a result, configurations, APIs, and Ignite behaviors are not always consistent and intuitive, and, therefore, Ignite can be quite hard to use, especially for beginners.

Ignite 3 is a significant step in the ongoing effort to modernize the product. Because Ignite is one of the most feature-rich of the open-source, distributed databases, the focus is on improving usability and adapting Ignite to modern, cloud-based deployments, not on adding new features. Also, Ignite 3.0 will provide a way to advance the database engine by adding features and capabilities that were difficult to add to the Ignite 2.x baseline. But let’s postpone those conversations and dive into the first milestone: Ignite 3.0.

Top Browsers for Cross-Browser Testing in 2020

We all know that user experience matters; it’s the key to delighting our customers. So, whether you are managing a live website or building a new one, you need to ensure a uniform user experience across all browsers and browser versions. Since web browsers don’t render the websites the same way, it becomes essential to perform cross-browser testing and check website compatibility on different browsers.

By performing cross-browser testing, you can ensure that the website behaves as intended across all the browsers. A website comprises the latest web technologies and languages such as HTML, CSS, Python, SQL, PHP, and JavaScript. All these web techs combine to give a complete look and function of the website. When these websites run on different web browsers, browsers execute the website code and display it to the users. But each browser interacts with websites uniquely and interprets the web components based on their arrangement to represent the website accordingly.

Are You Following These Jenkins Best Practices?

The need for seamless collaboration has driven us closer to the best possible orchestration tools around, specifically Continuous Integration (CI) & Continuous Delivery (CD) tools. Amongst all the competition, Jenkins has emerged with a unanimous popular vote! In fact, it is so popular that it is the go-to DevOps automation tool for many software development teams.

If you want to get good results from this popular DevOps tool, you need to follow the best practices. With that in mind, we want to share some of Jenkins best practices.

Monorepo

I’m not exactly a large-scale DevOps guy, but I can tell ya we’ve been moving back toward a monorepo at CodePen and it’s rife with advantages over a system with lots of smaller repos. For us, I mean. It’s very likely that you have entirely different challenges and have come to entirely different conclusions at your place. 🤙

I was thinking about this after reading Ben Nadel’s “Why I’ve Been Merging Microservices Back Into The Monolith At InVision.” Even though our conclusions are similar, I can tell he faces an entirely different set of problems.

Microservices Solve Both Technical and People Problems

technical problem is one in which an aspect of the application is putting an undue burden on the infrastructure; which, in turn, is likely causing a poor user experience (UX). For example, image processing requires a lot of CPU. If this CPU load becomes too great, it could start starving the rest of the application of processing resources. This could affect system latency. And, if it gets bad enough, it could start affecting system availability.


people problem, on the other hand, has little to do with the application at all and everything to do with how your team is organized. The more people you have working in any given part of the application, the slower and more error-prone development and deployment becomes. For example, if you have 30 engineers all competing to “Continuously Deploy” (CD) the same service, you’re going to get a lot of queuing; which means, a lot of engineers that could otherwise be shipping product are actually sitting around waiting for their turn to deploy.

Advantages of the Monorepo (for us)

  • One ring to rule them all. You git pull one repo and you are 100% up to date with everyone else and have everything you need for a complete dev environment.
  • No stray puppies. There is no confusion on where the action happens on GitHub. You do pull requests against the monorepo. You open issues on the monorepo. This avoids scattered activity that gets lost.
  • Kumbaya. You can share code. It can be particularly helpful to share utilities or components anywhere in the codebase. We poked at ideas like publishing shared bits to npm for other repos to use, but that workflow was janky compared to having the code together in on place.
  • Growing old together. There are no old and neglected repos, because it’s just one. For our small team, having dozens of repos meant some of them had old outdated dependencies, ancient versions of Node, linting and formatting rules that were out of sync with other repos, etc.

Disadvantages of the Monorepo (for us)

  • Deployment trickiness. I think the main reason we split off repos originally is that the code in those repos needed to go to unique places. They might have represented an individual Lambda or individual service on some other server. An individual repo means it’s easier to hook up stuff that is unique to that server/service, like CI/CD.

Yes, I get that this is controversial.

I actually don’t care that much. I’m not gonna get all intense about this like air fryer people and CrossFit zealots. Here’s a full-throated argument against monorepos from Matt Klein.

I’m just saying: it’s been clearly useful for us. I can see how things play out differently for other companies. I can see how a company that works with contractors might want to limit their access to something less than an entire monorepo. I can see how a git repo might become unwieldy and large. Those aren’t problems for us at CodePen right now, so the advantages of a monorepo win.


The post Monorepo appeared first on CSS-Tricks.

You can support CSS-Tricks by being an MVP Supporter.

60+ Top PostgreSQL Tools

PostgreSQL, or Postgres for short, comes with many out-of-the-box features that make it very popular among developers and data engineers. Among the numerous benefits of implementing Postgres are that there are many approaches to take to scale your database horizontally or vertically — but that is a discussion for a whole different article. Postgres comes with plenty of add-ons and a strong community of developers behind it too for open-source support. 

Aside from plugins that you can use to quickly add a variety of tools and resources to your Postgres suite, you can expand the many functionalities of your Postgres database system to help you take your use of Postgres to the next level. This article shares the top 62 tools, plugins, and add-ons in that suite for you to improve your Postgres operations and productivity quickly and efficiently.

How to Perform Localization Testing Using Selenium WebDriver

Automation testing is vital to the entire process of delivering a successful web product. The challenge associated with testing a web site or web app grows exponentially if it’s built for a global audience (particularly non-English audience). Automation tests have to be performed to ensure that the product features (including the content) cater to specific locales. That’s why localization testing using Selenium WebDriver has become increasingly relevant when a plethora of software products are being built for the world!

We’re sure you’ve come across scenarios where some content or portion of the website did not render correctly in a specific location. This is a common dilemma that most Selenium test automation engineers often come across, and it is extremely likely that incorrectly formatted strings are a part of the resource files. As a part of localization testing using Selenium WebDriver, we need to verify if the website (or app) looks and functions the same after localization automation testing is applied.

6 Requirements of Cloud-Native Software

For many years, monolithic applications were the standard enterprise architecture for achieving business requirements. But that changed significantly once cloud infrastructure began treating business acceleration at scale and speed. Application architectures have also transformed to fit into the cloud-native applications and the microservices, serverless, and event-driven services that are running on immutable infrastructures across hybrid and multi-cloud platforms.

The Cloud-Native Connection to Kubernetes

According to the Cloud Native Computing Foundation (CNCF):

How to Overcome Challenges in API Testing

In this interconnected age, integration is essential for software applications. Your users expect instant access to the information they want, even if that data resides within another application. That’s why APIs have become so integral in presenting a seamless user experience across software apps.

That is, if the APIs deliver results correctly. Any issue with an API can halt users from continuing to use your product.

Entrepreneurial Mindset: Why and How?

The success of any leader largely depends upon having an entrepreneurial mindset. So what does it take to develop such a mindset?

Here are a few fundamental traits that constitute being entrepreneurial. 

Else statement is printed before I fill in the form

Hey there! I don't know why "Your Password is Incorrect!" is printed before I fillin the form. I've started learning php two weeks ago

<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>

<form action = "" method="POST">

        <label id="first"> Name: </label><br/>
        <input type="text" name="username" placeholder= "Name" required><br/>

        <label id="first">Password: </label><br/>
        <input type="password" name="password" required><br/>

        <input type="submit" name= "submit" value="Sign in">
        </form>

    </body>
</html>
<?php
     require('p.php');   
    if(isset($_POST['submit'])){
      if(isset($_POST['username']) && isset($_POST['password'])){

        $username = $_POST['username'];
        $password = $_POST['password'];

    $sql = "SELECT * FROM mydatab.form WHERE name='$username' AND passw='$password' limit 1";
    $result = mysqli_query($conn, $sql) or trigger_error(mysqli_error($conn), E_USER_ERROR) ;

    if(mysqli_num_rows($result) === 1){
        echo " You Have Successfully Logged in";
    }
    else{
        echo " Your Password is Incorrect!";
    } }
    mysqli_close($conn);
}
?>