Grove · Course
The Perfect Setup
Local development with Grove, from a machine with nothing on it to a team that shares one environment. Fourteen chapters that build the setup you would have designed yourself if you had ever had a free week — and explain why each piece is there before showing which command puts it in place.
14 chapters · from an empty machine · free
The 14 chapters
- 01 What a Local Environment Actually Is Before installing anything, it is worth naming the parts. A local development environment is not one thing — it is five jobs that happen to run on the same laptop, and almost every problem you have had with yours came from the seams between them.
- 02 Install, and What Needs Root Installing takes two commands and about a minute. This chapter spends longer than that explaining what they do, because a tool that asks for your administrator password has an obligation to be legible — and because Grove's answer here is unusual.
- 03 A Folder Becomes a Site One command and every project in a folder has a URL. This chapter is about what just happened — because “it works with no configuration” is a claim worth taking apart before you rely on it.
- 04 A Padlock That Means Something Half of what you build refuses to work over plain HTTP, and the usual fix — a self-signed certificate and a browser warning you click through — teaches you to ignore the warning that exists to protect you. There is a better answer, and it is one command.
- 05 PHP, Exactly the One You Need The client project needs 8.1, the new one needs 8.5, and one of them needs an extension no prebuilt binary ships. This chapter is about having all of that at the same time, and about a screen that tells you what is missing before your code does.
- 06 The Rest of the Stack A database, a cache and somewhere for outgoing mail to land. This chapter is about not installing any of them yourself, and about the small command that ends the most tedious ten minutes of starting a project.
- 07 The Terminal Follows the Project Your sites are served by the right PHP. Your terminal is not: it still runs whatever is first on your PATH, which is how php artisan ends up on a different version from the site it belongs to. This chapter fixes that, and it is the point where the old tools can go.
- 08 The Processes a Project Needs A modern app is not one process. It is a site, a queue worker, an asset watcher and a scheduler, and the usual way to run them is four terminal tabs you forget to reopen. This chapter is about giving that job to the thing that is already supervising everything else.
- 09 Before the Scary Migration Every developer has run a migration they were not sure about and felt the small cold moment afterwards. This chapter removes it, in two commands, and explains why this particular feature could only come from the thing that installed your database.
- 10 Seeing the Request Grove is the web server, so it sees every request before your application does and after it finishes. This chapter is about what that makes possible, and it is the feature you will miss most if you ever go back.
- 11 Letting the Outside In Some things cannot be tested on localhost: a payment provider's webhook, an OAuth callback, a client who wants to see it. This chapter is about opening a door, and about not having to knock twice.
- 12 A Breakpoint Instead of a Dump Most PHP developers debug by printing things. Step-debugging is better in every way and almost nobody sets it up, because setting it up used to mean choosing between a debugger and a fast machine. That trade is gone; this chapter is the five minutes.
- 13 Reproducible, in the Repository Everything so far has been done to your machine. This chapter moves it into the repository, where it belongs — and it is the difference between a good personal setup and a good team.
- 14 The Team, and Keeping It Two things left that a team needs and a single developer does not, one thing that changes how an assistant can help you, and the short list of habits that keep the whole setup healthy.