• Stars
    star
    503
  • Rank 87,371 (Top 2 %)
  • Language
    PHP
  • Created almost 11 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Expose installed WordPress plugins and themes as Composer packages.

SatisPress

Facilitate modern best practices for managing WordPress websites by automating Composer support for private plugins and themes.

What is Composer?

When managing a WordPress site, multiple environments are usually needed for developing or testing code before deploying it to the live server. This requires being able to easily replicate the site and its dependencies between environments, which is where Composer comes in.

Composer allows for defining a project's dependencies, where they come from, how to access them, and then installing them from their source.

For WordPress sites, dependencies are usually plugins and themes, and even WordPress itself. Essentially, a single file (composer.json) can be shared with another developer and they can rebuild the entire site structure from it.

Composer connects to repositories β€” directories that tell it where to find dependencies (packages) and how they should be handled.

Packagist is the main Composer repository for PHP packages and WordPress Packagist provides access to plugins and themes hosted in the directories on WordPress.org.

What's the problem?

Most commercial plugins and themes (also known as packages) aren't publicly available, so they can't be installed with Composer.

Some common workarounds include:

  • Checking the plugin or theme in alongside custom project code in your version control system
  • Creating a separate private repository for each plugin or theme and manually updating it as new versions are released

Neither option is ideal and can be a hassle to maintain over time.

Furthermore, access is usually restricted with proprietary licensing schemes that make it difficult to download releases programmatically.

How does SatisPress help?

SatisPress creates a dynamically updated Composer repository that provides access to private plugins and themes and makes new releases available automatically.

After installing SatisPress (it's a standard WordPress plugin):

  1. Choose the plugins and themes that you want to manage
  2. SatisPress zips the currently installed versions and stores them in a cache directory
  3. When an update for a managed plugin or theme becomes available, SatisPress downloads and saves it alongside previously cached releases
  4. A Composer repository is generated that can be included in your composer.json file to download any cached plugin or theme

There are several possible workflows, but SatisPress allows you to manage private plugins and themes in a standard WordPress installation, leveraging the built-in update process to handle the myriad licensing schemes that would be impossible to account for outside of WordPress.

It's the missing piece for managing WordPress websites with Composer.

What if I don't use Composer?

SatisPress can still benefit you since it makes releases downloadable directly from your admin panel, so you don't need to log in to vendors' sites to download updates.

Oftentimes vendors only provide access to the latest release, so you're stuck if something breaks and you didn't save the previous version. With SatisPress, you can download previously cached releases to rollback if needed and compare the code to see what changed.

Documentation

For installation notes, information about usage, security, and more, see the documentation.

Credits

Created by Brady Vercher and supported by Gary Jones.

More Repositories

1

grunt-wp-i18n

Internationalize WordPress themes and plugins with Grunt.
JavaScript
160
star
2

gravity-forms-iframe

A Gravity Forms add-on to embed a form in an auto-resizing iframe on external sites.
PHP
150
star
3

woocommerce-coupon-links

A WordPress plugin to automatically apply WooCommerce coupon codes to the cart via a URL.
PHP
133
star
4

wprestcop

Manage access to the WP REST API with rate limits and IP-based rules.
PHP
70
star
5

shiny-code

A Gutenberg block for editing and displaying code with syntax highlighting.
JavaScript
51
star
6

node-wp-i18n

Internationalize WordPress themes and plugins.
PHP
45
star
7

cpt-archives

A WordPress plugin to manage post type archive titles, descriptions, and permalink slugs from the dashboard.
PHP
44
star
8

infinite-wp-list-tables

A WordPress plugin to add infinite scroll support for WP List Tables in the admin panel.
PHP
40
star
9

wp-plugin

A library to help structure and bootstrap WordPress plugins.
PHP
40
star
10

grunt-wp-css

Format style sheets according to the WordPress CSS coding standards.
JavaScript
35
star
11

simple-image-widget

A simple WordPress image widget.
PHP
32
star
12

plugin-toggle

A WordPress plugin to quickly toggle plugin activation status from the toolbar.
PHP
30
star
13

dequeue-jquery-migrate

A WordPress plugin to remove the jquery-migrate.js script dependency.
PHP
27
star
14

structure

Examples demonstrating methods for structuring WordPress plugins.
25
star
15

wp-address-block

A Gutenberg block for displaying an address with Schema.org markup.
JavaScript
21
star
16

better-internal-link-search

A WordPress plugin to improve the internal link popup functionality with time saving enhancements and features.
PHP
14
star
17

skip-link-focus

Make "skip to content" links more accessible.
JavaScript
12
star
18

ansible-deploy

An Ansible playbook for deploying a WordPress site from a git repository.
PHP
12
star
19

wp-nav-menus

Accessible, mobile-friendly navigation menus in WordPress themes.
JavaScript
12
star
20

simple-page-sidebars

A WordPress plugin for assigning custom sidebars to individual pages.
PHP
9
star
21

esformatter-wordpress

Format JavaScript according to the WordPress Coding Standards.
JavaScript
9
star
22

wp-theme-config

Shared configuration for our WordPress themes at Cedaro.
JavaScript
8
star
23

metamedia

A WordPress plugin to register media selection meta boxes.
PHP
8
star
24

youtube-embed-parameters

A WordPress plugin to customize parameters for embedded Youtube players.
PHP
7
star
25

microsite-themes

A WordPress plugin to load custom themes based on the URL.
PHP
7
star
26

themicons

Them icons.
HTML
7
star
27

footer-credits

A WordPress plugin for making theme footer credits editable.
PHP
6
star
28

customizer-customizer

A WordPress plugin to allow selected panels and sections to be hidden in the Customizer.
PHP
6
star
29

wavethumb

An experimental plugin demonstrating how to generate and save waveforms for audio attachments using the WordPress REST API.
JavaScript
6
star
30

load-project-config

JavaScript
3
star
31

embed-jetpack-custom-css

A WordPress plugin to embed Jetpack Custom CSS in the document head to improve performance.
PHP
2
star
32

extract-selectors

Extract and group selectors from a style sheet by property or value.
JavaScript
1
star
33

example-website

An example WordPress site managed with Composer.
PHP
1
star