# Slipway > Define your Laravel CI/CD once in PHP. Compile it to GitHub Actions, Bitbucket Pipelines and GitLab CI. - [Introduction](https://laravel-slipway.mintlify.app/index.md): Define your CI/CD once, in PHP. Compile it to GitHub Actions, Bitbucket Pipelines and GitLab CI. - [Quickstart](https://laravel-slipway.mintlify.app/quickstart.md): Install Slipway, generate a config, compile provider YAML, and let the drift guard keep it honest. - [Presets and libraries](https://laravel-slipway.mintlify.app/presets-and-libraries.md): Choose an init preset, and compile Slipway itself through Testbench when the project is a package. - [How it works](https://laravel-slipway.mintlify.app/how-it-works.md): One PHP config becomes a validated pipeline, then deterministic YAML for each enabled driver. - [Security model](https://laravel-slipway.mintlify.app/security-model.md): Secrets by name, least privilege, verified hosts, and no expression injection in generated scripts. - [Configuration](https://laravel-slipway.mintlify.app/configuration.md): Every key is validated. Unknown keys are rejected with a did-you-mean suggestion, and all problems are reported together. - [Stages and steps](https://laravel-slipway.mintlify.app/stages-and-steps.md): Stages run in order. Jobs inside one stage run in parallel. A step is a built-in alias, a PipelineStep class, or an inline POSIX sh command. - [Drivers](https://laravel-slipway.mintlify.app/drivers.md): Enable providers, override the output path, pin GitHub Actions, and merge raw YAML as an escape hatch. - [Provider support](https://laravel-slipway.mintlify.app/provider-support.md): Features a provider cannot express are left out with a warning, or fail compilation in strict mode. - [Policies](https://laravel-slipway.mintlify.app/policies.md): Policies are checked at compile time. An error stops compilation, so a risky pipeline cannot be merged unnoticed. - [Notifications](https://laravel-slipway.mintlify.app/notifications.md): Slack or Microsoft Teams webhooks, referenced by secret name. - [Environments](https://laravel-slipway.mintlify.app/environments.md): Slipway builds once and every environment deploys that exact tarball. Nothing is rebuilt per environment. - [Deployers](https://laravel-slipway.mintlify.app/deployers.md): Choose how an environment ships the tested artifact: SSH releases, Laravel Cloud, Forge, Vapor, Envoyer, a webhook, or your own commands. - [Laravel Cloud](https://laravel-slipway.mintlify.app/laravel-cloud.md): Trigger a Laravel Cloud deploy hook for the commit that passed CI. - [Recipes](https://laravel-slipway.mintlify.app/recipes.md): Ploi, Coolify, Dokploy, Kamal and Deployer without a dedicated deployer. - [SSH server setup](https://laravel-slipway.mintlify.app/ssh-server-setup.md): One-time preparation for the ssh deployer: deploy user, key, known hosts, shared .env, and current/public. - [Extending](https://laravel-slipway.mintlify.app/extending.md): Four registries: steps, deployers, policies and drivers. Other packages can add behaviour without forking. - [Writing a driver](https://laravel-slipway.mintlify.app/writing-a-driver.md): Render Slipway's provider-neutral Pipeline as one provider's YAML, then prove it with the conformance suite. - [Commands](https://laravel-slipway.mintlify.app/commands.md): Init, compile, check, validate, explain, drivers, scan, verify, and pin. - [Limitations and roadmap](https://laravel-slipway.mintlify.app/known-limitations-and-roadmap.md): What Slipway does not do yet, and ideas that are not promises. - [Testing and contributing](https://laravel-slipway.mintlify.app/testing-and-contributing.md): Run the suite, regenerate the package's own workflow, and open a pull request. ## Optional - [GitHub](https://github.com/usamamuneerchaudhary/laravel-slipway) - [Packagist](https://packagist.org/packages/usamamuneerchaudhary/laravel-slipway) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.