![Page 1: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/1.jpg)
Dev, Staging & Production Workflow with Gitify
Mark Hamstra, @mark_hamstra
![Page 2: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/2.jpg)
What is a Dev/Stage/Production Workflow?
![Page 3: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/3.jpg)
What is a Dev/Stage/Production Workflow?
• One site or project
![Page 4: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/4.jpg)
What is a Dev/Stage/Production Workflow?
• One site or project
• Replicated across separated environments, each potentially in a completely different state
![Page 5: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/5.jpg)
What is a Dev/Stage/Production Workflow?
• One site or project
• Replicated across separated environments, each potentially in a completely different state
• Tailored to the team, environment or business processes
![Page 6: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/6.jpg)
modx.com
/blog/2015/11/16/your-website-just-got-a-prom
otion/
![Page 7: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/7.jpg)
Requirements for a workflow that actually works
![Page 8: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/8.jpg)
Requirements for a workflow that actually works
• Automation
![Page 9: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/9.jpg)
Requirements for a workflow that actually works
• Automation
• Automation
![Page 10: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/10.jpg)
Requirements for a workflow that actually works
• Automation
• Automation
• str_repeat(‘Automation’, PHP_INT_MAX);
![Page 11: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/11.jpg)
Requirements for a workflow that actually works
• Automation
• Automation
• str_repeat(‘Automation’, PHP_INT_MAX);
• Accessible to the different stakeholders
![Page 12: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/12.jpg)
Requirements for a workflow that actually works
• Automation
• Automation
• str_repeat(‘Automation’, PHP_INT_MAX);
• Accessible to the different stakeholders
• Easy to rollback
![Page 13: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/13.jpg)
Requirements for a workflow that actually works
• Automation
• Automation
• str_repeat(‘Automation’, PHP_INT_MAX);
• Accessible to the different stakeholders
• Easy to rollback
• Able of dealing with conflicting changes
![Page 14: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/14.jpg)
To be able of replicating environments and automating a
workflow, you need a single source of truth.
![Page 15: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/15.jpg)
How to deal with all of this?
![Page 16: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/16.jpg)
How to deal with all of this?
Git!
![Page 17: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/17.jpg)
How to deal with all of this?
Git!
• Manages state of files
![Page 18: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/18.jpg)
How to deal with all of this?
Git!
• Manages state of files
• Can handle conflicts automatically + manually
![Page 19: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/19.jpg)
How to deal with all of this?
Git!
• Manages state of files
• Can handle conflicts automatically + manually
• Easy to automate through simple CLI api
![Page 20: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/20.jpg)
How to deal with all of this?
Git!
• Manages state of files
• Can handle conflicts automatically + manually
• Easy to automate through simple CLI api
• Can be made more accessible through GUI clients and services (like GitHub)
![Page 21: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/21.jpg)
To be able of replicating environments and automating a
workflow, the git repository needs to be the single source of truth.
![Page 22: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/22.jpg)
How to deal with all of this…on a MODX project?
![Page 23: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/23.jpg)
How to deal with all of this…on a MODX project?
• Store assets, custom components and relevant files in git
![Page 24: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/24.jpg)
How to deal with all of this…on a MODX project?
• Store assets, custom components and relevant files in git
• … missing the important bits!
• Content
• Elements (templates, TVs, chunks, snippets, plugins)
• Other information stored in the database
![Page 25: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/25.jpg)
How do we get information in our database into a
format that unlocks the potential of git?
![Page 26: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/26.jpg)
Gitify!
![Page 27: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/27.jpg)
![Page 28: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/28.jpg)
What is Gitify?
• Command line toolkit
• Written with Symfony 2 Console
![Page 29: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/29.jpg)
What can Gitify do?
![Page 30: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/30.jpg)
What can Gitify do?
• Write information from the database to files
Gitify extract
![Page 31: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/31.jpg)
What can Gitify do?
• Write information from the database to files
Gitify extract
• Write information from those files into the database
Gitify build
![Page 32: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/32.jpg)
![Page 33: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/33.jpg)
Built-in magic
![Page 34: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/34.jpg)
Built-in magic
• Automatic ID conflict resolution
![Page 35: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/35.jpg)
Built-in magic
• Automatic ID conflict resolution
• Automatic orphan cleanup
![Page 36: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/36.jpg)
Gitify bridges the gap between the database and
your git repository
![Page 37: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/37.jpg)
Project Configuration
• .gitify file in root of project
• Specifies data
• Specifies packages to install
![Page 38: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/38.jpg)
![Page 39: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/39.jpg)
![Page 40: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/40.jpg)
So how does the workflow work?
![Page 41: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/41.jpg)
Different environments have different workflow needs.
![Page 42: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/42.jpg)
Putting it together
Git - develop - staging - production
localhost
stage.site.com
site.com
![Page 43: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/43.jpg)
Dev Workflow
Make changes in MODX
Run `Gitify extract`Commit to repository
and push
![Page 44: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/44.jpg)
File-based Dev WorkflowMake changes in Data Files
Run `Gitify build`
Test changes in MODX
Commit to repository and push
![Page 45: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/45.jpg)
Putting it together
Git - develop - staging - production
localhost
stage.site.com
site.com
manual
![Page 46: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/46.jpg)
Staging WorkflowEditor team makes
content changes in MODX
Automatically extracted
Automatically committed to staging branch
Automatically pushed
![Page 47: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/47.jpg)
Putting it together
Git - develop - staging - production
localhost
stage.site.com
site.com
manual
automated
![Page 48: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/48.jpg)
Production Workflow
Don’t make changes on production
![Page 49: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/49.jpg)
Production Workflow
Don’t make changes on production(or use the same workflow as staging if you must)
![Page 50: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/50.jpg)
Production Workflow
Don’t make changes on production(or use the same workflow as staging if you must)
(but really, you shouldn’t)
![Page 51: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/51.jpg)
Setting automatic deployments
![Page 52: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/52.jpg)
![Page 53: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/53.jpg)
Deploying with Gitify
• git fetch origin• git reset --hard %COMMIT%• git pull origin %BRANCH%• Gitify backup deploy_%TIMESTAMP_UTC%• # Gitify package:install --all• Gitify build
![Page 54: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/54.jpg)
Creating new environments
![Page 55: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/55.jpg)
Creating new environments
1. Clone the repository
![Page 56: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/56.jpg)
Creating new environments
1. Clone the repository
2. Install MODX (Gitify modx:install)
![Page 57: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/57.jpg)
Creating new environments
1. Clone the repository
2. Install MODX (Gitify modx:install)
3. Install dependent packages (Gitify package:install —all)
![Page 58: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/58.jpg)
Creating new environments
1. Clone the repository
2. Install MODX (Gitify modx:install)
3. Install dependent packages (Gitify package:install —all)
4. Build the data (Gitify build [--force])
![Page 59: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/59.jpg)
Putting it together
Git - develop - staging - production
localhost
stage.site.com
site.com
manual
automated
automated
![Page 60: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/60.jpg)
But how do we automatically extract,
commit and push?
![Page 61: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/61.jpg)
Introducing Gitify Watch
![Page 62: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/62.jpg)
![Page 63: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/63.jpg)
X
![Page 64: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/64.jpg)
Gitify Watch
![Page 65: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/65.jpg)
Gitify Watch
• Works with Scheduler
![Page 66: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/66.jpg)
Gitify Watch
• Works with Scheduler
• Triggers on saving resources and elements
![Page 67: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/67.jpg)
Gitify Watch
• Works with Scheduler
• Triggers on saving resources and elements
• Automatically extracts, commits & pushes data
![Page 68: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/68.jpg)
![Page 69: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/69.jpg)
![Page 70: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/70.jpg)
Gitify Watch
![Page 72: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/72.jpg)
Gitify Watch
• Free
• github.com/modmore/GitifyWatch
![Page 73: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/73.jpg)
Gitify Watch
• Free
• github.com/modmore/GitifyWatch
• Package via modmore.com before holidays
![Page 74: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/74.jpg)
Gitify can do more!
![Page 75: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/75.jpg)
Install & Upgrade MODXGitify modx:install [version]
Gitify modx:upgrade [version]
![Page 76: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/76.jpg)
Install MODX packagesGitify package:install [name] [--version]
![Page 77: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/77.jpg)
Backup & RestoreGitify backup [name] Gitify restore [name]
![Page 78: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/78.jpg)
Links & More Info
• Source: github.com/modmore/Gitify
• Docs: github.com/modmore/Gitify/wiki and modmore.github.io/Gitify/
• GitifyWatch: github.com/modmore/GitifyWatch
• Example Gitify projects:
• github.com/modmore/MODX.today
• github.com/modmore/demo.modmore.com
![Page 79: Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)](https://reader035.vdocuments.net/reader035/viewer/2022070522/58ee4e2d1a28ab93548b46c5/html5/thumbnails/79.jpg)
Thank you@mark_hamstra - @modmore
markhamstra.com - modmore.com