Giter VIP home page Giter VIP logo

satispress's Introduction

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.

satispress's People

Contributors

bradyvercher avatar garyjones avatar tyrann0us avatar brianhenryie avatar danielbachhuber avatar nielsdeblaauw avatar davidsingh3 avatar widoz avatar aaronware avatar ianedington avatar lucasdemea avatar mihkeleidast avatar rickard-berg avatar timothybjacobs avatar emzo avatar joejordanbrown avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.