Knowledge Base Guide

Essential Tools for PrestaShop Development

Curated toolkit for PrestaShop developers — code editors, debugging, database tools, image editing, version control, and our recommended open source stack.

Why Your Tools Matter

PrestaShop development is not just PHP. On any given day you are editing Smarty templates, writing SQL queries, debugging JavaScript, processing product images, managing Docker containers, deploying via SSH, and reading Apache logs. The tools you choose directly affect how fast you work and how many mistakes you make.

This is not a generic list scraped from "top 10 developer tools" articles. Every tool listed here is something we actually use in our daily workflow — running over 100 Docker containers on a TrueNAS server, developing modules across PrestaShop 1.6 through 9.1, and managing production stores. If a tool is listed here, it has earned its place.

Every tool on this page is free or open source. We will note where paid alternatives exist, but you can build a complete, professional PrestaShop development environment without spending a single dollar on software licenses.

Code Editors and IDEs

Your editor is where you spend 80% of your development time. Choose well.

Visual Studio Code — The Standard Choice

Visual Studio Code (VS Code) is free, open source, and has become the de facto standard for web development. It handles PHP, JavaScript, Smarty templates, SCSS, SQL, Docker files, and YAML without breaking a sweat. The extension ecosystem covers everything PrestaShop throws at you.

Essential extensions for PrestaShop development:

  • PHP Intelephense: Intelligent PHP code completion, go-to-definition, find references, and error detection. It understands PrestaShop's class hierarchy — type $this->context-> and get real suggestions. The free version is excellent; the paid license adds rename refactoring and more.
  • Smarty Template Support: Syntax highlighting and snippets for .tpl files. Without this, Smarty files are just uncolored text.
  • GitLens: Shows who changed each line, when, and why — inline in the editor. Invaluable when debugging a module that worked last week and doesn't now.
  • Docker: Manage containers, view logs, exec into shells — all from the sidebar. No more switching to the terminal for docker ps.
  • Remote - SSH: Edit files on a remote server as if they were local. Open your entire PrestaShop project directory over SSH with full IntelliSense. This is how we work: VS Code runs on a local Arch Linux desktop, connected via SSH to a TrueNAS server where all Docker containers live.
  • PHP Debug: Xdebug integration — set breakpoints, inspect variables, step through code. Turns "why is this hook returning null?" from a 30-minute mystery into a 2-minute investigation.

Setting up Xdebug with VS Code:

Add a .vscode/launch.json to your project:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for Xdebug",
            "type": "php",
            "request": "launch",
            "port": 9003,
            "pathMappings": {
                "/var/www/html": "${workspaceFolder}"
            }
        }
    ]
}

In your PHP container, configure Xdebug 3:

xdebug.mode=debug
xdebug.start_with_request=trigger
xdebug.client_host=host.docker.internal
xdebug.client_port=9003

Install the Xdebug Helper browser extension, click "Debug" in the extension icon, hit F5 in VS Code, and reload your PrestaShop page. Execution stops at your breakpoints. This workflow will save you more time than any other tool on this list.

PHPStorm — The Premium Alternative

PHPStorm by JetBrains is the gold standard for PHP IDEs. It has deeper PHP understanding than VS Code out of the box — refactoring, database integration, built-in terminal, and Xdebug support that just works. The downside: it is a paid product (30-day free trial, then a subscription). It also uses more RAM than VS Code — plan on 2-4GB for a large PrestaShop project.

If you are a full-time PrestaShop developer and your workflow is 90% PHP, PHPStorm may be worth the investment. If you also do JavaScript, DevOps, and work across multiple languages, VS Code's flexibility and lighter weight make more sense.

Quick Server Edits: Kate, nano, vim

Sometimes you SSH into a server and need to change one line in a config file. You do not need a full IDE for that.

  • nano: Available on every Linux system. nano /etc/php/8.2/fpm/php.ini — edit, Ctrl+O to save, Ctrl+X to exit. Simple.
  • vim: Faster once you learn it, but the learning curve is real. If you already know vim, you do not need this paragraph.
  • Kate: KDE's text editor. Full syntax highlighting, split views, built-in terminal. When you are on a Linux desktop and need something between nano and VS Code, Kate is excellent.

Version Control

If your module code is not in Git, you are one bad edit away from disaster. Period.

Git — Non-Negotiable

Git is not optional. Every PrestaShop module, every theme customization, every script you write must be in a Git repository. It costs nothing, takes seconds to set up, and has saved countless developers from catastrophic data loss.

# Initialize a new module repository
cd ~/modules/mymodule
git init
git add .
git commit -m "Initial commit: module v1.0.0"

# Create a remote and push
git remote add origin https://github.com/youruser/mymodule.git
git push -u origin main

Git workflows for PrestaShop modules:

  • Feature branches: Never work directly on main. Create feature/add-bulk-import, develop, test, then merge. If something goes wrong, main is untouched.
  • Semantic versioning: Use v1.2.3 tags — major.minor.patch. Bump major for breaking changes, minor for new features, patch for bugfixes. PrestaShop's module system expects a version string in your module config, and it should match your Git tags.
  • Commit messages that mean something: "Fixed bug" is useless six months from now. "Fix: cart rule discount applied twice when customer uses quick checkout" tells you exactly what happened and why.
We maintain over 100 PrestaShop module repositories. Every single one uses Git with semantic versioning. When a client reports a bug in "the version from three months ago," we can check out exactly that version in seconds. Without Git, you are guessing.

Git Hosting: Self-Hosted vs Cloud

  • GitHub: The industry standard. Free private repositories, excellent CI/CD with GitHub Actions, largest community. If you have no specific reason to go elsewhere, start here.
  • GitLab: Self-hosted or cloud. Built-in CI/CD pipelines, container registry, issue tracking. More features than GitHub out of the box, steeper learning curve.
  • Gitea: Lightweight, self-hosted Git server written in Go. Uses minimal resources — runs comfortably alongside your Docker containers. We run Gitea on our development server for internal repositories that do not need to be on GitHub. Perfect if you want full control over your code without paying for private repos (though GitHub now offers those free too).

Containerization and Virtualization

PrestaShop 1.6 needs PHP 5.6-7.1. PrestaShop 8.x needs PHP 8.1+. PrestaShop 9.x needs PHP 8.2+. Running all of these on the same machine without containers is a nightmare. Do not attempt it.

Docker + Docker Compose

Docker is the standard for running multiple PrestaShop versions simultaneously. Each version gets its own container with its own PHP, its own MySQL, and its own filesystem. Nothing conflicts. You can run PS 1.6 next to PS 9.1 on the same server without any issues.

A minimal docker-compose.yml for a PrestaShop dev environment:

services:
  prestashop:
    image: prestashop/prestashop:8.2
    ports:
      - "8080:80"
    environment:
      - DB_SERVER=db
      - DB_NAME=prestashop
      - DB_USER=prestashop
      - DB_PASSWD=your_password
    volumes:
      - ./html:/var/www/html
    depends_on:
      - db

  db:
    image: mysql:8.0
    environment:
      - MYSQL_ROOT_PASSWORD=root_password
      - MYSQL_DATABASE=prestashop
      - MYSQL_USER=prestashop
      - MYSQL_PASSWORD=your_password
    volumes:
      - db-data:/var/lib/mysql

volumes:
  db-data:

We have a full guide on Docker for PrestaShop development — see our PrestaShop Docker Development Guide for detailed setup instructions, multi-version configurations, database management, and production deployment patterns.

Our development server runs over 25 PrestaShop containers simultaneously — from PS 1.6.1.23 through PS 9.1.0 — each with its own database, each accessible on a different port. Docker makes this trivially easy to manage.

Podman — The Docker Alternative

Podman is a drop-in Docker replacement that runs containers without a daemon and without requiring root privileges. The commands are nearly identical — podman run, podman compose, podman build. If your organization has security policies against running Docker's daemon as root, Podman is the answer.

For most PrestaShop developers, Docker is the safer choice simply because all tutorials, Stack Overflow answers, and PrestaShop documentation assume Docker. But Podman is worth knowing about.

QEMU/KVM + virt-manager — Full Virtual Machines

Sometimes containers are not enough. Testing on Windows Server? Reproducing a client's specific cPanel environment? Running a full desktop for manual testing? That is where full virtual machines come in.

  • QEMU/KVM: Kernel-level virtualization on Linux. Near-native performance because it uses hardware acceleration (Intel VT-x/AMD-V). Free, open source, and installed on most Linux servers already.
  • virt-manager: A graphical interface for managing QEMU/KVM virtual machines. Create, start, stop, snapshot — all from a desktop GUI. Lighter than VirtualBox, faster than VMware, and 100% free.

Use VMs for edge cases. Use Docker for daily PrestaShop development. This distinction will save you time.

Design and Graphics

PrestaShop development is not code-only. You will edit product images, create banners, design module configuration icons, export SVGs for themes, and batch-process thousands of product photos. Here are the tools that handle all of it — for free.

GIMP 3.0 — The Free Photoshop

GIMP (GNU Image Manipulation Program) is a full-featured image editor. GIMP 3.0, released in 2025 after years of development, brought a massive UI overhaul, non-destructive editing, and much better PSD compatibility.

Common PrestaShop tasks with GIMP:

  • Editing product images — removing backgrounds, adjusting colors, cropping to exact dimensions
  • Creating category banners and promotional graphics
  • Designing module configuration page icons and thumbnails
  • Opening and editing PSD files from designers who use Adobe products
  • Batch processing via Script-Fu or Python-Fu scripting

Is it identical to Photoshop? No. The keyboard shortcuts are different, the layer management works differently, and some advanced filters have no direct equivalent. But for PrestaShop-related image work — product photos, banners, icons, screenshots — GIMP handles everything you need.

Inkscape — Vector Graphics

Inkscape is the open-source alternative to Adobe Illustrator. Use it for:

  • Creating SVG icons for your module's admin interface
  • Designing logos and vector graphics for themes
  • Editing SVG files from icon libraries before embedding them in templates
  • Creating scalable graphics that look sharp at any resolution

SVG is the right format for UI icons in PrestaShop modules and themes. Inkscape creates clean, optimized SVG output that you can embed directly in your templates or CSS.

Photopea — Photoshop in Your Browser

Photopea is a browser-based image editor that looks and works almost exactly like Photoshop. It opens PSD, XCF, Sketch, XD, and CDR files natively. No installation, no account required, completely free (ad-supported).

When a designer sends you a PSD comp and you need to export a specific layer, or when you need to make a quick edit to a product image and GIMP is not installed on your current machine — Photopea is the answer. We use it regularly for quick edits, PSD layer exports, and generating product cover images from templates.

Photopea runs entirely in your browser — your files never leave your machine. This makes it safe for working with client assets and confidential product images. It also works on any OS without installation.

FontForge — Custom Icon Fonts

FontForge is an open-source font editor. In PrestaShop development, you will use it for:

  • Creating custom icon fonts for your module's admin panel (combine multiple SVG icons into a single font file)
  • Subsetting web fonts — extracting only the characters you need from a large font file to reduce page weight
  • Converting between font formats (TTF, OTF, WOFF, WOFF2)

Most developers never touch FontForge, but when you need it, nothing else does the job. If you just need basic font format conversion, the woff2 command-line tool is simpler.

ImageMagick — Batch Image Processing

ImageMagick is the command-line Swiss army knife for image processing. Resize, convert, crop, watermark, and optimize thousands of images in a single command.

# Resize all product images to 800x800, maintaining aspect ratio
for f in *.jpg; do
    convert "$f" -resize 800x800 -quality 85 "resized/$f"
done

# Convert PNG to WebP (smaller file size, same quality)
convert product.png -quality 80 product.webp

# Add a watermark to all images
for f in products/*.jpg; do
    composite -gravity southeast watermark.png "$f" "watermarked/$(basename $f)"
done

# Create thumbnails for a category page
mogrify -resize 300x300^ -gravity center -extent 300x300 -path thumbs/ *.jpg

When a client hands you 5,000 product images that are all 4000x4000 pixels and you need them at 800x800 with WebP versions — ImageMagick is how you do it without spending three days clicking through a GUI.

Blender — 3D Product Renders

Blender is a full 3D modeling, animation, and rendering suite. In e-commerce, it is increasingly used for creating photorealistic product renders — especially for products that do not exist yet or are expensive to photograph. Furniture stores, electronics, custom products — 3D renders can replace product photography entirely.

This is an advanced tool with a steep learning curve. Include it in your toolkit if your clients sell products where 3D visualization adds value. Otherwise, skip it.

Communication and Project Management

Thunderbird — Email That Works

Thunderbird is Mozilla's free email client. If you manage PrestaShop stores, you are dealing with a constant stream of order notifications, customer inquiries, module license emails, and server alerts. A proper desktop email client with filters, folders, and unified inbox beats checking webmail in a browser tab.

Thunderbird connects to any IMAP/SMTP server, supports PGP encryption via OpenPGP (built-in since Thunderbird 78), handles calendar via CalDAV, and has excellent search. It also integrates with self-hosted mail solutions like Mailcow.

Team Communication

  • Discord: The PrestaShop community is active on Discord. It is also excellent for small team communication — voice channels, screen sharing, code snippet formatting. Free for unlimited users.
  • Slack: The corporate alternative. If your clients or agency uses Slack, you will need it. Free tier is usable but limited (90-day message history).
  • Element (Matrix): Self-hosted, end-to-end encrypted team chat. If you want full control over your communications, Matrix is the open protocol and Element is the best client for it.

Note-Taking and Documentation

  • Trilium Notes: Self-hosted, hierarchical note-taking application. Stores notes in a SQLite database, supports code blocks, Markdown, and rich text. We run it as a Docker container alongside our PrestaShop instances — it holds development notes, client information, and technical documentation.
  • Obsidian: Markdown-based knowledge management. Notes are plain .md files stored locally — no cloud dependency, full ownership of your data. Excellent for building a personal knowledge base of PrestaShop patterns, hook documentation, and debugging solutions.
  • Plain Markdown files: Sometimes a README.md in each module repository is all you need. Keep it simple. Every module should have a Markdown file documenting what it does, how to install it, and how to configure it.
Pick one note-taking system and use it consistently. The tool matters far less than the habit of writing things down. When you solve a tricky PrestaShop bug at 2 AM, document it — future you will be grateful.

Browser and Testing Tools

Chrome/Chromium DevTools

Chrome DevTools is the single most important debugging tool after your code editor. If you are not fluent with DevTools, you are working with one hand tied behind your back.

Key features for PrestaShop development:

  • Network tab: See every HTTP request your store makes. Find slow API calls, oversized images, missing assets, and redirect chains. Filter by XHR to see only AJAX calls — essential for debugging add-to-cart, checkout, and module API interactions.
  • Console: JavaScript errors, warnings, and your own console.log() output. PrestaShop's front-end JavaScript (especially checkout modules) throws errors here that are invisible to the end user.
  • Elements panel: Inspect and live-edit HTML and CSS. Test layout changes before touching your template files.
  • Application tab: View and edit cookies (PrestaShop session cookies, cart cookies), localStorage, and sessionStorage.
  • Performance tab: Record a page load and see exactly where time is spent — parsing, rendering, scripting. Identify which JavaScript is blocking your First Contentful Paint.
  • Responsive Design Mode: Test your store at specific viewport sizes. Ctrl+Shift+M toggles it. Test at 375px (iPhone SE), 390px (iPhone 14), 768px (tablet), and your breakpoints.

Brave Browser

Brave is Chromium-based (same DevTools, same rendering engine) but with built-in ad blocking, tracker blocking, and fingerprint protection. Use it to test how your store behaves when customers use ad blockers — because many do. It also provides a clean browsing environment without tracking scripts interfering with your testing.

Playwright — Automated Browser Testing

Playwright by Microsoft is a browser automation framework. Write scripts that open your store, navigate pages, click buttons, fill forms, and verify that everything works — automatically.

const { chromium } = require('playwright');

(async () => {
    const browser = await chromium.launch();
    const page = await browser.newPage();

    // Test product page loads correctly
    await page.goto('http://localhost:8080/en/2-home-accessories.html');
    await page.waitForSelector('.product-miniature');

    // Test add to cart
    await page.click('.product-miniature:first-child a');
    await page.click('.add-to-cart');
    await page.waitForSelector('.cart-products-count');

    // Verify cart has 1 item
    const cartCount = await page.textContent('.cart-products-count');
    console.log(`Cart items: ${cartCount}`);

    await browser.close();
})();

Playwright supports Chromium, Firefox, and WebKit (Safari's engine) — test across all three browsers from the same script. It is faster and more reliable than Selenium, and its auto-waiting mechanism handles PrestaShop's AJAX-heavy pages well.

Lighthouse — Performance Auditing

Lighthouse is built into Chrome DevTools (Audits tab) and also available as a CLI tool. It grades your store on Performance, Accessibility, Best Practices, and SEO — and tells you exactly what to fix.

# Run Lighthouse from command line
npx lighthouse http://localhost:8080 --output html --output-path report.html

# Test mobile performance specifically
npx lighthouse http://localhost:8080 --preset=perf --emulated-form-factor=mobile

Run Lighthouse on your homepage, a category page, and a product page. Those three cover 90% of what your customers see. See our PrestaShop Performance Optimization Guide for detailed guidance on improving your scores.

Server and Infrastructure

TrueNAS — Storage Server for Development

TrueNAS (formerly FreeNAS) is an open-source storage operating system built on ZFS. For a PrestaShop development setup, it provides:

  • ZFS snapshots: Take instant snapshots of your entire Docker dataset before risky changes. Rollback in seconds if something goes wrong. This is better than any backup solution because it is instantaneous.
  • Docker support: Run all your PrestaShop containers directly on TrueNAS. No need for a separate server.
  • Data integrity: ZFS checksums every block of data. Silent corruption (bit rot) is detected and corrected automatically. When your module repositories and client data live here, that matters.

Our development server is a TrueNAS machine with 64GB RAM running over 100 Docker containers — PrestaShop instances, databases, monitoring, mail, Git hosting, and more. ZFS snapshots mean we can experiment fearlessly.

SSH + SSHFS — Remote File Access

SSH is how you connect to your development server and production hosts. SSHFS lets you mount a remote directory locally over SSH — edit files on your server using local tools as if they were on your own disk.

# Mount your remote modules directory locally
sshfs user@server:/var/www/html/modules ~/remote-modules

# Now edit files with any local editor
code ~/remote-modules/mymodule/

# Unmount when done
fusermount -u ~/remote-modules

VS Code's Remote SSH extension is generally a better experience (it runs the language server on the remote machine), but SSHFS is useful when you need to use tools that don't support SSH natively.

WireGuard — Secure VPN

WireGuard is a fast, modern VPN protocol. If your development server is on a home network or behind a firewall, WireGuard gives you secure access from anywhere — coffee shop, client office, or mobile tethering.

Configuration is minimal — a single file on each end, about 10 lines each. It connects instantly (unlike OpenVPN which negotiates for seconds), uses minimal CPU, and works reliably on unreliable connections. We use WireGuard to connect a laptop to our development server from any location.

Rclone — Cloud Storage Sync

Rclone is the command-line Swiss army knife for cloud storage. It supports over 70 providers — Amazon S3, Backblaze B2, Google Drive, Dropbox, FTP, SFTP, and more.

# Sync module backups to Backblaze B2
rclone sync ~/releases/ b2:my-bucket/releases/ --progress

# Copy database dumps to Google Drive
rclone copy ~/backups/db/ gdrive:PrestaShop-Backups/

# Mount S3 bucket as a local directory
rclone mount s3:my-bucket /mnt/s3 --daemon

Use Rclone for off-site backups of your module releases, database dumps, and client assets. Automate it with a cron job and never worry about losing data to a disk failure.

Nginx Proxy Manager — Reverse Proxy with SSL

Nginx Proxy Manager (NPM) provides a web UI for managing Nginx reverse proxy configurations and SSL certificates. When you run 20+ PrestaShop containers on different ports, NPM lets you access them all via clean URLs with automatic HTTPS.

  • ps82.dev.example.com proxies to port 8085
  • ps91.dev.example.com proxies to port 8103
  • Automatic Let's Encrypt or Cloudflare DNS challenge SSL certificates
  • Web-based interface — no editing Nginx config files manually

Uptime Kuma — Monitoring

Uptime Kuma is a self-hosted monitoring tool. Add all your PrestaShop instances, databases, and infrastructure services — get notifications via Discord, Slack, email, or Telegram when something goes down.

When you manage multiple client stores, knowing that a site went down before the client calls you is the difference between "we noticed and are already fixing it" and "we had no idea."

Database Tools

PrestaShop runs on MySQL or MariaDB. You will spend significant time in the database — debugging queries, migrating data, analyzing performance, and cleaning up after bad module installs.

MySQL/MariaDB CLI

The command-line client is always available, even on minimal server installations. Learn the basics:

# Connect to a containerized database
docker exec -it ps82-db mysql -u root -p prestashop

# Quick queries
SELECT COUNT(*) FROM ps_product WHERE active = 1;
SELECT * FROM ps_configuration WHERE name LIKE '%SMTP%';
SHOW PROCESSLIST;

# Export a table
mysqldump -u root -p prestashop ps_product > products_backup.sql

# Import a dump
mysql -u root -p prestashop < backup.sql

For quick checks, the CLI is faster than any GUI tool. You are already in the terminal — typing a query takes 5 seconds. Opening a GUI application takes 30.

phpMyAdmin — Web-Based GUI

phpMyAdmin runs as a web application. Most shared hosts include it by default. It handles visual browsing of tables, query building, import/export, and user management through a browser interface.

It is not the most elegant tool, but it is everywhere. Every PrestaShop developer knows how to use phpMyAdmin because sooner or later you will be on a cPanel host where it is your only option.

DBeaver — Desktop Database GUI

DBeaver is a free, cross-platform database client that connects to MySQL, MariaDB, PostgreSQL, SQLite, and dozens more. It offers:

  • Visual query builder and syntax-highlighted SQL editor with auto-completion
  • ER diagrams — visualize PrestaShop's table relationships (and there are many)
  • Data export in CSV, JSON, SQL, XML formats
  • Multiple simultaneous connections — have your dev, staging, and production databases all open in tabs
  • SSH tunneling built-in — connect to remote databases without port forwarding

If you work with PrestaShop databases daily — writing complex joins across ps_product, ps_product_lang, ps_product_shop, and ps_stock_available — DBeaver's auto-completion and table relationship views will make your life significantly easier.

mysqldump — Backups and Migrations

The mysqldump command creates SQL text dumps of databases or individual tables. It is the standard way to backup and migrate PrestaShop databases.

# Full database backup
mysqldump -u root -p --single-transaction prestashop > backup_$(date +%Y%m%d).sql

# Backup specific tables only (structure + data)
mysqldump -u root -p prestashop ps_product ps_product_lang ps_product_shop > products.sql

# Backup structure only (no data) — useful for documentation
mysqldump -u root -p --no-data prestashop > schema.sql

# Compressed backup (saves 80-90% disk space)
mysqldump -u root -p --single-transaction prestashop | gzip > backup_$(date +%Y%m%d).sql.gz
Always use --single-transaction for InnoDB tables (which PrestaShop uses). Without it, your dump may contain inconsistent data if the store is processing orders during the backup.

PHP and Composer

Multiple PHP Versions — Why You Need Them

PrestaShop module development requires testing across PHP versions because your customers run different PrestaShop versions on different hosting environments:

  • PHP 7.2-7.4: PrestaShop 1.7.x (still widely deployed)
  • PHP 8.1: PrestaShop 8.0-8.1
  • PHP 8.2: PrestaShop 8.2 and 9.0
  • PHP 8.3-8.4: PrestaShop 9.1+ and forward-compatibility testing

A module that works on PHP 8.2 might throw deprecation warnings on 8.3 or fatal errors on 7.4. If you only test on one PHP version, your customers will find the bugs for you. Docker solves this — each container runs its own PHP version — but you should also know how to manage multiple PHP versions on a bare-metal development machine.

# Ubuntu/Debian: install multiple PHP versions
sudo add-apt-repository ppa:ondrej/php
sudo apt install php7.4 php8.1 php8.2 php8.3

# Switch default PHP version
sudo update-alternatives --config php

# Run a specific version explicitly
php8.1 your-script.php

Composer 2 — Dependency Management

Composer is the package manager for PHP. PrestaShop 8+ uses Composer extensively, and modern module development should too. Composer handles autoloading, dependencies, and version constraints.

# Install dependencies from composer.json
composer install

# Add a dependency to your module
composer require monolog/monolog

# Update all dependencies
composer update

# Generate optimized autoloader (production)
composer dump-autoload --optimize --classmap-authoritative

For PrestaShop modules, Composer is particularly useful for sharing code between modules — common admin components, entity selectors, configuration traits. Create private Composer packages for shared code and include them in each module's composer.json.

Always commit composer.lock to your repository. It ensures everyone (and every deployment) gets exactly the same dependency versions. composer install reads the lock file; composer update regenerates it.

PHPStan / Psalm — Static Analysis

PHPStan and Psalm analyze your PHP code without running it. They catch bugs that are invisible until a specific code path is triggered in production:

  • Calling methods on possibly-null objects
  • Wrong argument types passed to functions
  • Undefined variables in rarely-executed branches
  • Dead code that can never be reached
  • Return type mismatches
# Install PHPStan
composer require --dev phpstan/phpstan

# Run analysis at level 5 (0 = permissive, 9 = strictest)
vendor/bin/phpstan analyse src/ --level=5

# PrestaShop-specific: ignore PrestaShop's legacy patterns
# Create phpstan.neon:
parameters:
    level: 5
    paths:
        - src/
    ignoreErrors:
        - '#Call to an undefined method [a-zA-Z]+::l\(\)#'

Start at level 1 and gradually increase. Level 5 is a good target for PrestaShop modules — it catches real bugs without drowning you in warnings about PrestaShop's own legacy code patterns.

PHP_CodeSniffer — Code Style

PHP_CodeSniffer enforces consistent coding standards. PrestaShop has its own coding standards, and if you submit modules to the Addons marketplace, your code must comply.

# Install
composer require --dev squizlabs/php_codesniffer

# Check code against PSR-12 standard
vendor/bin/phpcs --standard=PSR12 src/

# Auto-fix what can be fixed
vendor/bin/phpcbf --standard=PSR12 src/

Consistent code style is not about aesthetics — it is about readability. When every file in your module follows the same patterns, bugs stand out because they break the visual pattern.

Xdebug 3 — Step-by-Step Debugging

Xdebug is a PHP extension that provides step debugging, stack traces, profiling, and code coverage. Xdebug 3 (the current version) is significantly faster than Xdebug 2 and uses a simpler configuration.

Key Xdebug modes for PrestaShop development:

  • xdebug.mode=debug: Step debugging — set breakpoints, inspect variables, step through hooks and controllers line by line.
  • xdebug.mode=profile: Generate cachegrind files showing exactly where PHP spends time. Open in KCacheGrind (Linux) or QCacheGrind (macOS/Windows) to find performance bottlenecks.
  • xdebug.mode=trace: Log every function call. Useful for understanding PrestaShop's execution flow through its hook system.
# php.ini configuration for Xdebug 3
[xdebug]
zend_extension=xdebug
xdebug.mode=debug
xdebug.start_with_request=trigger
xdebug.client_host=host.docker.internal
xdebug.client_port=9003
xdebug.log=/tmp/xdebug.log
Use start_with_request=trigger instead of =yes. With =yes, Xdebug tries to connect to your IDE on every single request — including AJAX calls, image requests, and cron jobs. With =trigger, it only activates when you explicitly enable it via the browser extension or a cookie. This keeps your dev environment fast.

Build Tools

Node.js + npm/Yarn

Node.js is required for compiling front-end assets in modern PrestaShop themes and modules. The Hummingbird theme (PrestaShop 8+) uses Webpack. Many modules use Sass for CSS preprocessing and need Node.js for compilation.

# Install Node.js 20 LTS (recommended)
# Via nvm (Node Version Manager) — the best way to manage Node versions:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
nvm install 20
nvm use 20

# npm comes with Node.js
npm --version

# Yarn (alternative package manager, often faster)
npm install -g yarn

Use npm or Yarn — pick one and stick with it per project. Do not mix them. The lock files (package-lock.json vs yarn.lock) are not interchangeable.

Grunt — Module ZIP Packaging

Grunt is a JavaScript task runner. In PrestaShop module development, it is commonly used for building distribution ZIP files — combining PHP files, templates, assets, and configuration into a ready-to-install archive.

# Install Grunt CLI globally
npm install -g grunt-cli

# In your module directory:
npm install

# Run the default grunt task (typically: build ZIP)
grunt

A well-configured Gruntfile handles version bumping, file exclusion (no .git, no node_modules, no development files in the ZIP), Sass compilation, and validation — all in a single command. When you need to release a module update, you run grunt and get a clean, ready-to-upload ZIP file.

Sass (Dart Sass) — CSS Preprocessing

Sass lets you write CSS with variables, nesting, mixins, and functions. PrestaShop themes and many modules use SCSS (Sass's CSS-compatible syntax) for styling.

# Install Dart Sass
npm install -g sass

# Compile SCSS to CSS
sass src/scss/admin.scss:views/css/admin.css --style=compressed

# Watch for changes during development
sass --watch src/scss/:views/css/

Use Dart Sass, not Node Sass or Ruby Sass — those are deprecated. Dart Sass is the canonical implementation and is actively maintained.

Dart Sass may output a UTF-8 BOM (Byte Order Mark) at the beginning of compiled CSS files. Most browsers handle it fine, but in edge cases it can cause CSS rules to be silently dropped. If you encounter mysterious missing styles, check for and strip the BOM: sed -i '1s/^\xEF\xBB\xBF//' output.css

Webpack — Asset Bundling

Webpack is a module bundler for JavaScript and assets. PrestaShop's Hummingbird theme (the modern default theme from PS 8+) uses Webpack for its build pipeline. If you create child themes or need to customize Hummingbird, you will work with Webpack.

# In the Hummingbird theme directory:
npm install
npm run build       # Production build
npm run dev         # Development build with source maps
npm run watch       # Watch mode — rebuilds on file changes

Webpack configuration can be intimidating. The good news: PrestaShop's Hummingbird provides a pre-configured webpack.config.js. You rarely need to modify it unless you are adding entirely new entry points or changing the build pipeline.

Office and Documentation

LibreOffice — Spreadsheets and Documents

LibreOffice is the free office suite. In PrestaShop development, you will use it for:

  • Calc (spreadsheets): Product import/export CSV editing. PrestaShop's import feature expects specific CSV formats — LibreOffice Calc handles CSV encoding, delimiters, and column mapping better than most tools. Also useful for price list calculations, stock management, and client data preparation.
  • Writer (documents): Contracts, module documentation, client proposals. Opens and edits Microsoft Word files.
  • Impress (presentations): Module demos, client presentations, training materials.

When editing CSV files for PrestaShop import, always save as UTF-8 with BOM separator comma. This ensures special characters (accented product names, currency symbols) survive the import process.

Markdown — Developer Documentation

Markdown is the universal format for developer documentation. Every module repository should have a README.md with installation instructions, configuration guide, and changelog. GitHub, GitLab, and Gitea all render Markdown beautifully.

# Module Name

## Installation
1. Upload via Back Office > Modules
2. Click Install
3. Configure in Module Settings

## Configuration
- **Option A:** Does X
- **Option B:** Does Y

## Changelog
### v1.2.0
- Added bulk import feature
- Fixed discount calculation for multi-shop

Keep documentation next to the code it documents. A CLAUDE.md or README.md in the project root, updated alongside code changes, is worth more than a separate wiki that nobody maintains.

OBS Studio — Screen Recording

OBS Studio is free, open-source screen recording and streaming software. Use it for:

  • Bug documentation: Record a bug happening step-by-step. A 30-second video is worth a thousand words in a bug report.
  • Module tutorials: Record installation and configuration walkthroughs for customers.
  • Client communication: Show a client exactly what you fixed and how it works now.
  • Knowledge sharing: Record your debugging process for team members to learn from.

OBS handles screen recording, webcam overlay, audio mixing, and direct export to MP4. It is massively more capable than any built-in screen recorder.

Our Recommended Stack — Quick Reference

Here is the complete toolkit we use daily, organized by category. Every tool is free or open source.

Tool Category What For Cost Link
VS Code Editor Primary code editor with PHP, Smarty, Docker support Free code.visualstudio.com
PHP Intelephense Editor Extension PHP intelligence — autocomplete, go-to-definition, errors Free / $25 one-time intelephense.com
Git Version Control Track every change, branch, merge, deploy Free git-scm.com
GitHub Git Hosting Repository hosting, CI/CD, collaboration Free github.com
Gitea Git Hosting Self-hosted Git server for internal repos Free about.gitea.com
Docker Containers Run multiple PrestaShop versions simultaneously Free docker.com
GIMP 3.0 Graphics Image editing — product photos, banners, icons Free gimp.org
Inkscape Graphics SVG icons, vector graphics for themes and modules Free inkscape.org
Photopea Graphics Browser-based Photoshop clone — quick PSD edits Free photopea.com
ImageMagick Graphics Batch image processing — resize, convert, optimize Free imagemagick.org
Thunderbird Communication Email client for store management and support Free thunderbird.net
Discord Communication Team and community communication Free discord.com
Trilium Notes Documentation Self-hosted knowledge base for dev notes Free github.com/zadam/trilium
Chrome DevTools Testing Network debugging, DOM inspection, performance Free Built into Chrome/Chromium
Playwright Testing Automated browser testing across engines Free playwright.dev
Lighthouse Testing Performance, accessibility, SEO auditing Free Built into Chrome DevTools
TrueNAS Infrastructure Storage server with ZFS snapshots for Docker Free truenas.com
WireGuard Infrastructure VPN for secure remote access Free wireguard.com
Nginx Proxy Manager Infrastructure Reverse proxy with SSL for dev sites Free nginxproxymanager.com
Uptime Kuma Infrastructure Monitoring all PrestaShop instances Free github.com/louislam/uptime-kuma
Rclone Infrastructure Cloud storage sync — backups to S3, B2, GDrive Free rclone.org
DBeaver Database Visual database management with ER diagrams Free dbeaver.io
phpMyAdmin Database Web-based database GUI (available everywhere) Free phpmyadmin.net
Composer PHP Dependency management for modules and packages Free getcomposer.org
PHPStan PHP Static analysis — catch bugs without running code Free phpstan.org
Xdebug 3 PHP Step debugging, profiling, tracing Free xdebug.org
Node.js Build JavaScript runtime for asset compilation Free nodejs.org
Grunt Build Module ZIP packaging and task automation Free gruntjs.com
Dart Sass Build SCSS to CSS compilation Free sass-lang.com
Webpack Build Asset bundling for Hummingbird theme Free webpack.js.org
LibreOffice Office CSV editing for imports, documents, presentations Free libreoffice.org
OBS Studio Office Screen recording for tutorials and bug reports Free obsproject.com

Building Your Environment — Where to Start

If you are setting up a PrestaShop development environment from scratch, here is the order that makes the most sense:

  1. Install Docker and Docker Compose. Everything else builds on this. Follow our Docker guide.
  2. Install VS Code with the extensions listed above. Add PHP Intelephense and the Docker extension first.
  3. Initialize Git repositories for all your modules. Push to GitHub or your self-hosted Gitea.
  4. Set up Xdebug in your Docker containers and configure VS Code to listen. This is the single biggest productivity improvement you can make.
  5. Add Composer to your workflow. Start with composer init in your module and add autoloading.
  6. Install GIMP and ImageMagick. You will need image editing capabilities sooner than you think.
  7. Set up monitoring with Uptime Kuma once you have production stores to watch.

Do not try to adopt everything at once. Start with Docker + VS Code + Git + Xdebug. That combination alone will transform your productivity. Add other tools as your workflow demands them.

A Note on Software Licensing

Every tool listed in this guide is free or open source. We believe in using legal software — no pirated copies, no cracked licenses, no "nulled" modules. Open source gives you everything you need for professional PrestaShop development.

The tools listed here are not compromises or "good enough for free" alternatives. GIMP is a genuinely powerful image editor. VS Code is used by millions of professional developers. Docker is the industry standard for containerization. PHPStan catches real bugs in production code. These tools are best-in-class, and they happen to be free.

If you are a PrestaShop developer who still uses cracked software, consider this: the entire development stack above costs exactly zero dollars. The time you spend finding, installing, and dealing with cracked software is time you could spend building modules and serving clients. And you will never receive a licensing compliance letter.

Support the open source ecosystem that makes your work possible. Use free tools legally. Contribute back when you can — bug reports, documentation, even a GitHub star helps. The tools exist because people built them for everyone to use. Respect that.

More guides available

Browse our knowledge base for more practical PrestaShop tutorials, or reach out if you need help.

Loading...
Back to top