Leveraging Git Hooks in Monorepos with Mookme.
📖 New Ebook Available
Build Your First MCP Server: A Developer's Guide to Wrapping Existing APIs for AI Agents to Use
Learn to create powerful AI integrations step by step
Despite its amusing name, Mookme is a "simple, easy-to-use, yet powerful, and language-agnostic git hook designed specifically for monorepos." The brains behind Mookme, escape.tech, are also responsible for the GraphQL and REST API Security Tools. Their innovative contributions are worth a follow, so consider checking them out on LinkedIn.
Husky has been a valuable tool in preventing wasted time through its pre-commit hooks on various Umbrage projects. The last thing anyone wants is to commit something that fails to pass eslint or hasn't been formatted with prettier. Mookme offers similar functionality but excels in managing pre-commit hooks in monorepos without needing alignment to a package.json.
Simply drop a .hooks
folder into any subdirectory, and the hooks will only execute if there are commits making changes within those subdirectories. If there's a need for a hook to run across the entire repo, a global .hooks
can be set at the root.
In an ongoing internal project, we have a Rails API in /backend
and a Next.js app in /frontend
. I've added eslint
and prettier
with lint-staged exclusively to the Next.js app by positioning the hook here:
/frontend/.hooks/pre-commit.json
The json syntax is straightforward:
{
"steps": [
{
"name": "Lint",
"command": "npx lint-staged"
}
]
}
Our /frontend/package.json
houses our lint-staged
configuration:
{
"lint-staged": {
"src/**/*.(ts|tsx|js|jsx)": [
"eslint --fix",
"prettier --write"
],
"src/**/*.(css|scss)": [
"prettier --write"
]
},
}
For the future, I plan to explore integrating a hook into /backend/.hooks/
to run a Ruby gem that would generate new TypeScript interfaces for use in the /frontend
Next.js app, ensuring we always have the latest types if the Rails API schema changes.
What are some of your favorite uses for git hooks? I'd love to hear your thoughts on LinkedIn.
Want to Chat About AI Engineering?
I hold monthly office hours to discuss your AI Product, MCP Servers, Web Dev, systematically improving your app with Evals, or whatever strikes your fancy. These times are odd because it's weekends and before/after my day job, but I offer this as a free community service. I may create anonymized content from our conversations as they often make interesting blog posts for others to learn from.
Book Office Hours