plan

famly/plan - the hackable development environment automation tool

famly/plan

[famly/plan][famly/plan] is an example of how you can use [Docker][docker], [Make][make], and [Bash][bash] to automate your entire development environment and provide a nice CLI for common work-flows. It's an open-source version of our internal development tool at [Famly][famly] called famlydev. This repository is meant to be forked, cloned, and modified in any way you please; it's simply providing a starting point for you to hack around with. If you've found a way to improve upon it then feel free to send us a pull request ❤️

Screenshot of famly/plan help command

If you want to know more about the background of [famly/plan][famly/plan] and what problems we're trying to solve then read this [blog post][blog-post] by [@mads-hartmann][mads].

Overall goal

The goal we're trying to achieve is to have a 100% automatic way to to setup and run your entire development stack locally. Once it's running it should be reacting to code and configuration changes automatically. For example, the Python backend will run the newest code on each request and the frontend will reload the browser whenever you change any of the files (Haven't enabled HMR in this example, but feel free to add it). The migrations container will automatically run migrations when you add new files and re-run them when they change. If you change services/backend/requirements.txt or services/frontend/package.json the containers will re-install dependencies and restart their internal processes; the developer doesn't have to do anything.

The overall philosophy is that the developer should be able to focus on the task at hand rather than the mechanics of the developer environment -- if you can put something in a README it's likely you can automate it as well

Related Repositories

plan-9

plan-9

Mirror of Plan 9 from Bell Labs ...

fractal-plan

fractal-plan

An animation using geometric plan! How we do beautiful and psychedelic things? ...

node-plan

node-plan

(unmaintained, deprecated, abandoned) Execute a complicated dependency graph of ...

Plan-Config

Plan-Config

Plan Config is a Laravel 5 package that allows you to easily define attributes a ...

plan-maven-plugin

plan-maven-plugin

Maven plugin to output the execution plan of a build ...