Blog

  • I Started a YouTube Channel — xwpankit

    This year, I decided to try something new.

    After years of writing plugins, blog posts, and building quietly, I’ve started a YouTube channel called xwpankit — focused entirely on WordPress.

    It’s not about tutorials or polished course content (not yet, at least).
    It’s about quick ideas. Things I’ve learned. Tips that might help you ship faster, write cleaner code, or just feel more at home in the WordPress ecosystem.

    I’m starting with Shorts — fast, useful, no-fluff videos you can watch in under 60 seconds.

    Things like:

    • Plugin dev tips I wish I knew earlier
    • Core features people overlook
    • UI/UX ideas I’ve picked up
    • Behind-the-scenes of building tools used on 30,000+ sites

    Eventually, I’ll add longer videos too — maybe tutorials, maybe just thoughts from the road.
    But for now, I’m keeping it light, consistent, and real.

    If you’re into WordPress, building products, or just curious how I work — subscribe here.

    xWPAnkit Logo

    It’s a new way for me to share what I’ve always loved about WordPress:
    That it’s not just a CMS — it’s a canvas.

    Let’s see where this goes.

  • Why Building Slowly Beats Building Fast

    The internet moves fast.
    Especially in the WordPress world, it can feel like there’s always a rush to ship, to launch, to release the next version before someone else does.

    For a long time, I believed in that pace too. Build fast. Launch fast. Move fast.
    And yes, there’s some truth to it. Speed matters.
    But what I’ve learned over time, especially through building plugins that thousands of people use, is that building slowly often wins in ways that speed never can.

    When you slow down, you notice details that you would otherwise miss.
    A confusing setting label.
    A button that feels a little off.
    A smarter way to structure your database.
    Small things that, when added up, change the entire user experience.

    When you slow down, you build with users in mind, not just features.
    You think about what happens after they install your plugin, not just how to get them to install it.

    When you slow down, you write cleaner code.
    You leave fewer landmines for yourself six months later.
    You debug less, because you thought about edge cases before they exploded.

    When you slow down, you stay connected to why you’re building something.
    You’re not just chasing downloads, likes, or product launches.
    You’re solving real problems, in ways that actually make sense long-term.

    I’m not saying “move slow and break things.”
    I’m saying move with attention.
    Move with care.

    There’s a huge difference between rushing something out the door, and shipping something solid because you were willing to sit with it a little longer.

    Fast is flashy.
    Slow is sustainable.

    In a world that celebrates quick wins, slow builders quietly build things that last.

    And that’s the kind of work I want to keep doing.

  • What Makes a Good WordPress Plugin in 2025?

    The WordPress ecosystem has evolved a lot since I first started working with it in 2013.

    Back then, plugins were judged mainly by one question: “Does it work?”
    That was enough. But today, in 2025, the expectations are completely different. Users are smarter. Standards are higher. And competition is everywhere.

    Building a “good” plugin now isn’t just about solving a technical problem. It’s about creating an experience — from the first install to the last update.

    Here’s what I believe truly matters today.

    A good plugin solves one problem, and it solves it well. It doesn’t try to be everything for everyone. It’s focused, it’s clear, and it respects the user’s time.

    It’s lightweight. People care about performance now more than ever. If your plugin slows down their site, it won’t last long, no matter how good the features are.

    It plays nicely with Gutenberg. The Block Editor isn’t new anymore. It’s the default experience, and plugins that integrate naturally with it feel more modern, more trustworthy.

    Privacy matters too. In 2025, no one wants hidden trackers, unnecessary data collection, or surprise privacy issues. A good plugin is built with privacy in mind from day one.

    It looks and feels like WordPress. Clean UI. Predictable navigation. Thoughtful onboarding. No clutter, no overwhelming settings pages. Just something that feels natural and easy to use.

    Support, even if minimal, is handled with care. Clear documentation, helpful FAQs, and simple responses can make all the difference. Most users don’t expect instant support — they just want to know you’re there.

    Good plugins are marketed honestly. They don’t overpromise, exaggerate, or hide important details. They earn trust because they set the right expectations and then deliver on them.

    And maybe most importantly, good plugins are built to last. They’re not a one-time launch. They’re maintained, improved, and cared for over time. In a world where so many tools get abandoned after the initial excitement fades, steady maintenance is a rare and valuable thing.

    When I think about what makes a plugin good today, it really comes down to one thing: respect.
    Respect for the user’s site, their time, their data, and their trust.

    It’s not about adding more features.
    It’s about building something that quietly works — and keeps working — without asking too much in return.

    The WordPress ecosystem doesn’t need more plugins.
    It needs better ones.

  • Productivity as a WordPress Dev: My Daily System

    Working in WordPress, especially when you’re switching between plugin development, support, client work, and your own ideas, means your day can spiral fast if you’re not intentional.

    I’ve gone through phases. I’ve tried the flashy systems — Pomodoro timers, daily journals, full Notion dashboards — but over time, I started cutting things back. What stuck is a daily flow that’s minimal, grounded, and helps me get real work done without constantly tweaking a “system.”

    Here’s what my day usually looks like.

    I start early, but I don’t rush into code. The first 30 minutes are quiet. I sit with a notebook, list the three things that matter most today, and think about what I actually want to do — not what’s just sitting in the inbox. Some days that’s building a new feature. Other days it’s writing, testing, or going for a ride to clear my head.

    Then I get into deep work. Usually one solid block of 2–3 hours with no distractions. I shut down notifications, close tabs, and just focus on one thing. I’ve learned that context switching kills momentum more than anything else.

    I take real breaks. Not YouTube breaks. Not Slack breaks. Actual off-screen time. A walk. A chai. Just breathing.

    Afternoons are for lighter stuff — emails, support requests, updates, code reviews. This is when I check in on what others might need from me, not the other way around.

    Evenings? They’re flexible. Sometimes I build. Sometimes I tinker with ideas or write. Sometimes I shut the laptop and go ride my Yezdi.

    The key thing is: I don’t try to “optimize” every second. I try to make space for progress without losing the thread of why I’m doing any of it in the first place.

    Some tools help. I use a basic notes app to track tasks. A few shortcuts. A terminal always open. Nothing fancy. The fewer moving parts, the better.

    Productivity, for me, isn’t about doing more. It’s about protecting the things that matter — and building a rhythm I actually enjoy showing up to.

    That’s it. No hacks. Just a system that grew from doing the work and paying attention to what slows me down.

    Let me know if you want a peek at the tools or templates I use — might share that sometime too.

  • How I Built a Plugin Used by 1M+ Sites

    It all started with a simple freelance task in 2017.

    A client needed a way to load a script on their WordPress site. No fancy features, no admin UI, just a small script injected into the header. I built a quick plugin that hooked into wp_head, zipped it, and sent it over.

    That tiny job became my entry point into plugin development.

    Up until that point, I had mostly worked on WordPress websites — custom themes, site builds, client requests. But building a plugin, however simple, felt different. It was focused, reusable, and had potential to scale far beyond one site.

    The Shift From Projects to Products

    After that freelance gig, I started exploring plugin ideas of my own. My first public release was a simple analytics tool, Advanced Page Visit Counter. I created it to track page views without relying on external scripts or Google Analytics. Lightweight, privacy-conscious, and easy to use.

    I put it on the WordPress plugin repository without much expectation.

    But slowly, installs grew. Support requests came in. Feature ideas started stacking up. I kept iterating.

    Over the next few years, that plugin went on to cross 1 million downloads and serve thousands of websites. It was my first lesson in building something useful at scale and the effort that goes into maintaining it.

    What Made It Work

    Looking back, a few things helped that plugin take off:

    • It solved a real problem in a simple way
    • It didn’t try to do too much
    • It was designed for WordPress users, not developers
    • I responded to feedback early and often
    • I kept improving it even when growth was slow

    The plugin didn’t go viral. It just kept showing up, quietly and consistently.

    Beyond One Plugin

    Since then, I’ve released a few more plugins:

    • Hide Admin Bar Based on User Roles — now active on over 30,000 sites
    • Disable Block Editor FullScreen Mode — just 4 lines of code, but solves a real annoyance
    • UltimaKit for WP — a modular toolkit to reduce plugin bloat
    • NoteFlow — a Mac-style notes experience for WordPress
    • Like Dislike for WP — simple, clean like/dislike buttons for posts

    Each one started as a small idea, a personal itch or a recurring user request.

    Some grew faster than others. Some are still growing. But all of them taught me something.

    What I Learned

    • You don’t need to build big to be useful
    • Solve one problem well instead of solving many halfway
    • Plugin success isn’t just about code, it’s about clarity, UX, and support
    • WordPress is still full of unsolved problems
    • Shipping something is better than planning everything

    Still Just Getting Started

    Today, I’m more excited than ever to build plugins. But I’m also focused on building in public, writing more, and sharing what I’ve learned, not just what I’ve shipped.

    If you’re thinking about building your first plugin, start small. Solve one problem you personally face. Release it. Support it. Improve it.

    You never know where it might take you.

  • Why I’m Starting This Blog (Again)

    I’ve been building things on the web for over a decade — plugins, websites, products, systems.

    But somewhere along the way, I stopped writing about the other stuff — the in-between moments, the experiments, the stories behind the screen.

    So here I am.
    Starting fresh. Writing again. Sharing what feels right.

    This blog isn’t about “how-to” guides or SEO content. It’s about thoughts, travels, code, creativity, and the random detours I take in life and work.

    Sometimes personal. Sometimes technical. Always honest.

    Thanks for reading — and if you’re on a similar journey, I’d love to hear from you.

  • Day 6: Advanced WP-CLI Topics and Putting It All Together

    Cron Jobs and Scheduled Tasks

    WP-CLI allows you to manage WordPress cron jobs and scheduled tasks efficiently. Here’s how you can work with them:

    • To list all scheduled cron events:
    wp cron event list
    • To run all pending cron events:
    wp cron event run --due-now
    • To schedule a new cron event:
    wp cron schedule single --hook=my_custom_hook --time="2025-03-01 12:00:00"

    This command schedules a one-time event for the my_custom_hook hook to run on March 1, 2025, at 12:00 PM.

    Debugging and Troubleshooting

    WP-CLI provides tools for debugging and troubleshooting your WordPress site:

    • To enable WP_DEBUG and display errors:
    wp config set WP_DEBUG true --raw
    wp config set WP_DEBUG_LOG true --raw
    wp config set WP_DEBUG_DISPLAY true --raw
    • To check for common WordPress issues:
    wp core verify-checksums
    wp plugin list --status=active
    wp theme list --status=active

    These commands help you verify the integrity of your WordPress files and list active plugins and themes, which can be useful for troubleshooting.

    Real-World Examples and Use Cases

    Let’s explore some real-world examples of how WP-CLI can be used:

    1. Automating Backups: You can create a script that uses WP-CLI to export your database and files regularly, then upload them to a remote storage service.
    2. Bulk Content Updates: If you need to update multiple posts or pages with new information, you can use WP-CLI to perform these updates efficiently.
    3. Staging to Production Deployment: WP-CLI can help you automate the process of deploying changes from a staging site to your live production site.
    4. Performance Optimization: You can use WP-CLI to optimize your database, clear caches, and run performance tests to improve your site’s speed.

    Best Practices and Tips

    Here are some best practices and tips for efficient WP-CLI usage:

    • Script Your Tasks: Create shell scripts or use WP-CLI’s built-in scripting capabilities to automate repetitive tasks.
    • Use Aliases: Set up aliases for frequently used commands to save time and reduce typing.
    • Test on Staging: Always test your WP-CLI commands on a staging site before running them on your live site.
    • Keep WP-CLI Updated: Regularly update WP-CLI to ensure you have the latest features and security patches.
    • Document Your Commands: Keep a record of the WP-CLI commands you use for future reference and to share with your team.

    Conclusion

    Congratulations on completing this 7-day course on WP-CLI! You’ve learned how to manage WordPress core, content, users, databases, and more using WP-CLI commands. Remember to practice what you’ve learned and explore additional WP-CLI commands and plugins to further enhance your WordPress management skills.

    If you have any questions or need further assistance, feel free to reach out. Happy WP-CLI-ing!

    First Name
    Last Name
    Email
    Message
    The form has been submitted successfully!
    There has been some error while submitting the form. Please verify all form fields again.
  • Day 5: Managing Your WordPress Database with WP-CLI

    Exporting and Importing Databases

    WP-CLI provides powerful commands for managing your WordPress database. Let’s explore how to export and import databases using WP-CLI.

    • To export your entire WordPress database:
    wp db export wp_database_backup.sql

    This command creates a SQL file named wp_database_backup.sql containing your entire WordPress database.

    • To import a database backup:
    wp db import wp_database_backup.sql

    This command imports the contents of the wp_database_backup.sql file into your WordPress database, overwriting the existing data.

    Running Database Queries

    WP-CLI allows you to run custom SQL queries directly on your WordPress database. Here are some examples:

    • To run a simple SELECT query:
    wp db query "SELECT * FROM wp_posts WHERE post_type = 'post'"

    This command retrieves all posts from the wp_posts table.

    • To run an UPDATE query:
    wp db query "UPDATE wp_options SET option_value = 'new_value' WHERE option_name = 'option_name'"

    This command updates the value of a specific option in the wp_options table.

    • To run an INSERT query:
    wp db query "INSERT INTO wp_posts (post_title, post_content, post_status) VALUES ('New Post', 'This is a new post.', 'publish')"

    This command inserts a new post into the wp_posts table.

    Optimizing and Repairing the Database

    WP-CLI provides commands to optimize and repair your WordPress database tables:

    • To optimize all tables:
    wp db optimize
    • To repair all tables:
    wp db repair

    These commands can help improve database performance and fix any issues with corrupted tables.

    Best Practices

    When managing your WordPress database with WP-CLI, consider the following best practices:

    • Regularly backup your database before making any changes
    • Use the --dry-run flag when testing queries to see the results without modifying the database
    • Be cautious when running UPDATE or DELETE queries, as they can permanently modify or remove data
    • Use the --skip-plugins and --skip-themes flags when running database commands to prevent conflicts with plugins or themes

    In the next and final lesson, we’ll explore some advanced WP-CLI topics and put it all together. Stay tuned!

  • Day 4: Managing Users with WP-CLI

    Creating, Updating, and Deleting Users

    WP-CLI provides powerful commands for managing users on your WordPress site. Let’s explore how to create, update, and delete users using WP-CLI.

    • To create a new user:
    wp user create username email@example.com --role=author --user_pass=password123

    This command creates a new user with the specified username, email, role, and password. You can customize the role and other user metadata as needed.

    • To update an existing user:
    wp user update 123 --display_name="New Display Name" --role=editor

    This command updates the user with ID 123, changing their display name and role to editor. You can update various user fields using this command.

    • To delete a user:
    wp user delete 123 --reassign=456

    This command deletes the user with ID 123 and reassigns their content to the user with ID 456. If you don’t want to reassign content, you can omit the --reassign parameter.

    Managing User Roles and Capabilities

    WP-CLI allows you to manage user roles and their associated capabilities. Here are some examples:

    • To list all available roles:
    wp role list
    • To create a new role:
    wp role create custom_role "Custom Role"
    • To add a capability to a role:
    wp role add custom_role edit_posts
    • To remove a capability from a role:
    wp role remove custom_role edit_posts
    • To assign a role to a user:
    wp user set-role 123 custom_role

    Best Practices

    When managing users with WP-CLI, consider the following best practices:

    • Use strong, unique passwords for each user account
    • Regularly review and update user roles and capabilities to ensure proper access control
    • Use the --porcelain flag when scripting user management tasks to ensure consistent output
    • Backup your user database before making bulk changes or deletions

    In the next lesson, we’ll explore how to manage your WordPress database using WP-CLI. Stay tuned!

  • Day 3: Managing Content with WP-CLI

    Creating and Managing Posts, Pages, and Custom Post Types

    WP-CLI provides powerful commands for managing your WordPress content. Let’s explore how to create and manage posts, pages, and custom post types.

    • To create a new post:
    wp post create --post_type=post --post_title="My New Post" --post_content="This is the content of my new post." --post_status=publish
    • To create a new page:
    wp post create --post_type=page --post_title="About Us" --post_content="This is the content of our About Us page." --post_status=publish
    • To create a custom post type (assuming you have already registered the custom post type):
    wp post create --post_type=book --post_title="The Great Gatsby" --post_content="A novel by F. Scott Fitzgerald." --post_status=publish

    You can also update existing content using the wp post update command. For example, to update the title of a post with ID 123:

    wp post update 123 --post_title="Updated Post Title"

    Importing and Exporting Content

    WP-CLI makes it easy to import and export content using the WordPress eXtended RSS (WXR) format.

    • To export all content to a WXR file:
    wp export --dir=/path/to/export --skip_comments
    • To import content from a WXR file:
    wp import /path/to/import/file.wxr

    Managing Post Metadata

    You can use WP-CLI to manage post metadata, such as featured images and custom fields.

    • To set a featured image for a post:
    wp post meta set 123 _thumbnail_id 456
    • To add a custom field to a post:
    wp post meta add 123 custom_field_key "Custom field value"

    Best Practices

    When managing content with WP-CLI, consider the following best practices:

    • Use descriptive post titles and slugs for better SEO
    • Organize your content using categories and tags
    • Regularly backup your content before making bulk changes
    • Test your commands on a staging site before applying them to your live site

    In the next lesson, we’ll explore how to manage users and their roles using WP-CLI. Stay tuned!