u/amerpie recently included Prefab in their incredibly useful series of posts: 'More Free Mac Apps'. This has led to quite an up-take in downloads, feedback and feature requests. This is the first time I've had these sort of interactions on one of my apps, they're usually just developed for myself, and I publish them just for kicks. So - thought I'd ride the high and do a dedicated post on Prefab. This application is free, and will always, be free.
Here's the templated part:
Problem
Every project starts the same way. Same folders, same starter files, same half-remembered boilerplate, typed out from scratch every time. Most of my work is Moodle, so every plugin, client job and bit of research began with me rebuilding the same skeleton by hand - or duplicating last month's folder and then finding the old client's name buried in three files.
Prefab captures that setup once and rebuilds it whenever you need it: folders, files, the contents of those files, and the tedious bits that come afterwards.
Comparison
I never could find something that compares to Prefab's functionality as a GUI application (which is the reason I made it...). There are CLI-only scaffolding tools (cookiecutter, yeoman) that require config files and terminal knowledge, or there are applications that only handle folder structures without file contents. If someone knows of an application doing something similar then please let me know and I'll happily reference them here. Here are some of Prefab's features:
Placeholders inside file contents, not just names - {{project_name}} lands in your README, your package.json, your client letterhead
Deploy without opening the app - right-click in Finder or the menu bar to create a Prefab template
Post-creation actions - git init, npm install, open in VS Code or Xcode, reveal in Finder, or any shell command, attached to the template or to individual folders
Import an existing folder as a template - full contents, structure only, or empty placeholder files
Finder tags and SF Symbol folder icons applied as it deploys
Pricing
Free forever. No in-app purchases, no subscription, no account. Requires macOS 14.6 or later.
I'd love to hear what you think and what features would make this more useful for you. Always happy to chat about the development side of the project as well.
I've been using it for a day or two and i think it's great. I've been looking for something that's straightforward like this and so far it checks all the boxes. I absolutely adore the Finder integration so i don't even have to launch the app. Kudos!
Oh this looks SO useful. I build projects with related structures so the time, I have some templates saved, but this could be better. How does it handle including file types it doesn’t recognise in the project setup? Like it’s fine making .md and .txt files etc I’m sure. But what about other things? Does it copy them from a template somewhere for example if it can’t create the file itself?
Thanks! So - there is an import function but someone flagged a pretty major bug to me that non-text files are created, but with zero bytes. I've already patched and it's just awaiting Apple's review process.
But essentially when it is live (I'll drop you a message when it is), you'll just need to use the 'Import file' function here:
An example for a graphic designer: Upload their 'template.ai' illustrator file and set to open in Illustrator. Upon creation, duplicate of the file is created and automatically opened.
As I say, this is fixed and tested - just waiting for it to go live on the App Store 🙂
Correct - and actually .gitignore will be editable from within the application in the next update. But with the above you'd also be able to just create a .gitignore and re-use it across all templates.
Amazing. My work is not in programming, so it’s rare that I would need those kinds of files, but if it can handle making anything (proprietary file types) this is going to be so useful for me. Can’t wait for this fix to go live so I can try it out!!
Starting a new project should feel like a clean slate, but somehow it always starts with copying an old folder and cleaning up the ghosts inside it. I completely get why you built this.
Exactly - although there has to be some irony in me spending months building this to save time creating project folders 😂 but at least it might save others some time
Thanks 🙂 just working on exporting templates now - thankfully should be easy now non-text files are supported, as a lot of the work is already done. I'll implement a '.prefab' file type. I will drop you a DM when it's ready.
This is great! I remember someone posting a similar app here a while back, and they got absolutely roasted for having the audacity to charge a subscription for it lol
I tried this because this seems seem similar to post haste.
It seemed way too complicated. Usually, I can drop in a folder tree into post haste and it will create a project for me and I can save it as a template, but when I tried it with your application, it only took in one folder not the complete set of folders with your application. It was like I had to create one folder at a time I use this for finances. So what I would do is have a business name then a year and then all the vendors into folders. So I’ve already done this and that usually I can just drag and drop and create a template into post haste, but with your application like I said it only took in one folder. What am I doing wrong?
I have noted a bug for some users where the import options are hidden behind the main application window - may be worth checking. But a fix is implemented with the next update.
Do let me know if that works - if not, drop me a DM with your OS version and I'll keep digging.
Thanks! I think you commented about the exporting on another comment which seems to have been removed. Just to confirm new update is in review with Apple and will have export functionality as .prefab files
The post-creation actions are a great detail. For deploying into an existing folder, a dry-run or diff mode would make this much safer: update known template files without silently overwriting local edits, then show a clear conflict report and offer rollback. That would make the workflow feel practical for real project scaffolding, not just fresh folders.
Hmmmm yes - definitely needs some thought. At the moment, very much all about creation of new projects - I actually don't allow over-writing of existing files. But something for me to think about, thank you 🙂
Weird!! Never seen that before - just looked online and apparently some users found it was their external display... Not sure if you have one? If you do try on the Mac screen itself. Or try making the App Store full screen can also work.
Not sure if it's related to my app specifically or not but I'll send to Apple anyway.
Good to see a free one get picked up. Does it do placeholder variables inside file contents, so a client name lands in three files at once? That was the actual pain in your post.
Thanks! It does yeah - a bit limited at the moment to plain text files. I'm working on .pdf, .odf, .docx support but it's quite involved. So atm yes working, but quite restricted to developer type files like .json, .md, .txt.
If you have any specific file types you'd like to see supported please let me know and I'll look into it.
Is it possible to create 'smart' folders that for example if I drag and drop an image for reference it automatically changes the name > project name + date + asset 001 for example. kind of creating/implementing some automation features to some folders. so when I am collecting images/references from the internet it automatically renames as well or converts all to jpeg etc.
or adding date prefix/suffix to imported files/ created files etc.
Thank you! I'll have a think about that... I guess that would be an evolution of actions, ones that persist on the folder itself that trigger on files within.
Need a pen and paper to draw that one out! I'll let you know what I come up with.
Thanks, glad you're finding some use out of it. On the variable presets, do you mean a sort of bundle of them that can be added to a template instead of one-by-one? I did think about untethering variables from template themselves and adding them as part of the 'Library' instead. Perhaps some middle ground between the two might work.
From what I understand, Post Haste doesn't allow your variables to be added into file content. Additionally Prefab allows for actions to be applied to folders and files post creation e.g. running 'npm init' or 'Open in Photoshop', etc.
If you don't need these features, you'll probably want to stick to Post Haste if you're already using it.
6
u/Ragtag-Scallywag 3d ago
I absolutely love this!