Geet lets you maintain a reusable template as a real Git repo over the same working tree as your app, without copying files, moving paths, or running generators.
In practice: two or more Git repos, one folder.
Normal templates:
- copy files once
- drift immediately as the template owner makes updates and changes
- require regeneration or manual syncing
Geet:
- shares real files at real paths
- updates via
git pull - never copies or regenerates code
Submodules:
- live in a subdirectory
- can’t interleave files with the app
- break path-sensitive systems (Expo, routing, config)
Geet:
- works at the project root
- files stay exactly where the app expects them
- no nested repos in your source tree
NOTE: If you have the ability to fully and cleanly separate your template into a separate folder, consider using submodules instead. Geet is made for cases where that is not feasible.
Subtrees:
- still copy files into the repo
- still requires a separate folder for the template, does not support interleaving
- updates are noisy and opaque
- merges become painful over time
Geet:
- no copying
- no sync step
- updates are normal Git merges
Monorepos:
- assume clear ownership boundaries
- don’t work well when most files overlap
- still require indirection or abstraction
Geet is for cases where:
- 50–90% of files are shared
- file locations are non-negotiable
- you want minimal abstraction
Yes, if used as intended.
- The app repo remains totally standard.
- The template repo is sandboxed via a whitelist.
- Destructive Git commands are blocked by default.
- You can detach at any time by deleting the layer folder.
Yes — deliberately.
Git already supports:
- separate
GIT_DIR - shared working trees
- repo-local ignore rules
Geet just assembles those primitives into a usable tool.
- Teams maintaining multiple similar apps
- Path-sensitive frameworks (Expo, RN, Next, native builds)
- Developers who want Git-native updates, not generators
- Anyone burned by templates that drift
Don’t use geet if:
- your template can live in a subdirectory
- copying files is acceptable
- your shared code is small or purely library-based
Geet is for the “everything overlaps” case.
If you want, next we can:
- tighten this FAQ even more
- add a “When geet is the wrong tool” section
- or turn this into a README-ready block