Free app making website for Mac: what each route costs
One site stays open in a pinned tab all day. It slides behind twenty others, Cmd+Tab never reaches it because it is not an app, and a stray Cmd+W closes it along with the draft inside. Searching for a free app making website for mac returns two very different kinds of answer: features already built into macOS that cost nothing and do part of the job, and developer toolchains that cost nothing in money and a great deal in time. Sorting those two apart is most of the decision.
What "free" has to cover before it counts
Turning a website into something that behaves like a Mac app is four separate jobs, and the free routes cover them unevenly.
The first is a real bundle. Something in the Applications folder that Spotlight finds, Cmd+Tab cycles through, and the Dock can keep. A bookmark on the desktop is not this.
The second is a window without browser furniture. No tab strip, no address bar, no other site one keystroke away.
The third is a session of its own. Cookies, logins, and history that do not collide with the browser or with a second account on the same service. This is the job most free routes handle worst, and the one that quietly wastes the most time later.
The fourth is an icon macOS renders correctly, with the rounded square mask that every native app in the Dock already has. A raw favicon scaled up sits badly next to Mail and Calendar.
Judge any free option by which of the four it actually delivers, not by how fast it produces something clickable.
Safari: Add to Dock
The shortest route ships with the operating system.
Starting with macOS Sonoma 14, you can use Safari to save any webpage as a web app, so that you can use it independently of Safari. Source: support.apple.com
Open the page in Safari, choose File then Add to Dock, name it, and click Add. The result lands in the Applications folder of the home folder, not the system wide one, and opens from the Dock or Spotlight like anything else.
Apple's page is also explicit about the session: a Safari web app shares no browsing history, cookies, website data, or settings with Safari. That covers job three for a single account cleanly.
Settings live under the app's own menu: application name, application URL, a custom icon from a file, whether navigation controls show, and whether the title bar picks up the site's color. A Privacy tab clears the site's cookies and caches. An Extensions tab turns individual Safari extensions on or off per app.
Two limits matter. Extensions here means Safari extensions, so a Chrome Web Store blocker or password manager does not carry over. And the whole route requires macOS Sonoma 14 or later, which rules it out on an older machine that is otherwise fine.
Chrome: Install page as app
Chromium browsers have their own version, documented in Chrome Help as More, then Cast, save, and share, then Install page as app. Some sites offer an Install control at the right of the address bar instead. Installed apps are listed at chrome://apps, and uninstalling from the app's own menu offers to delete its data from Chrome at the same time.
The catch is which profile the app belongs to. An installed web app runs inside the Chrome profile that created it, so two Google accounts on the same service means two Chrome profiles, created and switched by hand. The apps also inherit the icon the site declares in its manifest, which is why some of them look nothing like the ones next to them in the Dock. Chrome does watch for a site changing its own name or icon and asks before applying the change.
For a site with one account and a decent manifest, this route is genuinely good and takes about fifteen seconds.
Building it yourself, and the link that no longer works
The results for a free app making website for mac still surface wrapper toolchains from articles written years ago. Check the state of the project before spending an evening on it.
Nativefier, the best known of them, is archived on GitHub and read only, with its last commit in September 2023. It still has more than 35,000 stars, which is exactly why old tutorials keep pointing at it.
The live options are frameworks rather than wrappers. Electron bundles its own copy of Chromium into every app produced, which is why an Electron build of a single site starts around a couple of hundred megabytes. Tauri uses the system web view instead and produces far smaller binaries, at the cost of rendering differences between platforms.
Either way the real cost is not the build. It is the maintenance: a signing certificate if the app is to leave the machine, notarization so Gatekeeper opens it without a warning, and a rebuild every time the bundled engine needs a security update.
What each free route actually gives you
| Route | Real .app bundle | Chrome extensions | Session separate from browser | Multiple accounts | Requires |
|---|---|---|---|---|---|
| Safari Add to Dock | Yes | No, Safari extensions only | Yes | One session per web app | macOS Sonoma 14 or later |
| Chrome Install page as app | Yes | Yes, from the profile used | Shares the Chrome profile | A Chrome profile per account | Chrome or another Chromium browser |
| Electron or Tauri build | Yes | No | Yes | Whatever is coded | A toolchain and build time |
| Desktop bookmark | No | Not applicable | No | No | Nothing |
The bookmark row is there because it is what many results actually describe. It opens in the default browser, in the same window as everything else, and solves none of the four jobs.
Notifications and badges, which a bookmark cannot do
The part of the job that surprises people is notification handling, and it is the clearest line between a bundle and a shortcut.
Apple's documentation is specific about how to get the red count on the Dock icon. The site's notification request has to be answered inside the web app, not in Safari. Do it in Safari first and the web app never appears in the notifications list. Once answered correctly, the app shows up in System Settings under Notifications by its own name rather than by the site's URL, and the unread count appears as a badge on the Dock icon.
Chrome Help describes the same class of capability for installed web apps, listing extra storage for offline content, notifications, file system access, and icon badges as features some web apps gain once installed. Not every site implements them, so the honest test is to install the one site that matters and check whether the badge appears.
There is a second reason this matters beyond the badge. Notifications from an app are routed by app in Focus modes and Do Not Disturb, so a site turned into its own bundle can be silenced or allowed independently of the browser. A pinned tab cannot be, because as far as macOS is concerned it is the browser talking.
Which sites are worth the trouble
Not every site earns a bundle, and making twenty of them is how a Dock becomes as cluttered as the tab strip it replaced.
Four signals are worth using. The site is opened every working day rather than looked up occasionally. The session is long lived, so being logged out is disruptive. It has a keyboard driven interface that a stray Cmd+W or Cmd+R interrupts. Or it sends notifications that need to be seen without the browser being open.
Sites that fail all four belong in bookmarks. A reference page checked twice a month gains nothing from an icon in the Dock and costs an icon's worth of visual noise.
One more filter is worth applying before starting: whether the site needs a second account. If it does, that decides the route on its own, because it is the one requirement none of the free options handle without manual profile work.
Where the free routes stop being free
Chromium browsers ship a new stable release every few weeks. Any tool that copies a browser binary into an app bundle is out of date the moment that happens, and the symptoms are familiar: the icon reverts, the app refuses to launch, or it quietly opens on an old engine. Tools that reference the installed browser instead of copying it avoid this entirely, and the difference only becomes visible after a few update cycles.
The second cost is the second account. Free routes make one app easily. Two apps for the same service on different accounts is where Safari web apps and Chrome installed apps both need manual work.
The third is volume. Six or seven sites turned into apps by hand, each with its own icon hunt and settings pass, is an afternoon. The supported services list exists for that reason: a preset carries the URL, the official icon, and the app name together, and 318 services are covered, so the per app work drops to picking one from a list.
The fourth cost is the one nobody plans for: undoing it. Safari web apps live in the Applications folder inside the home folder, and removing one means opening that folder and dragging the app to the Trash, which leaves the question of whether the site data went with it. Chrome installed apps are cleaner here, since uninstalling from the app's own menu offers to delete the app's data from Chrome in the same step. A self built Electron app leaves whatever its code wrote, in whatever location the code chose. None of this is difficult, but it is the reason a machine that has been experimented on for a year has four half working versions of the same site.
What the paid tier costs, stated plainly
Comparing free against paid is easier with the actual numbers.
BZG sells Coherence X5 and Unite Pro for macOS, both listed as buy once and use forever with optional paid upgrades, starting at $39.99. The same developer's apps are also available through the Setapp bundle after a seven day trial. The BZG page cites $9.99 per month, while Setapp's own pricing page lists the Mac plan at $14.99, so confirm the current figure on Setapp's site. A monthly bundle at that rate passes a single $39.99 purchase during the fifth month, so the choice between them is really a question of how long the tool stays useful.
Tools built on the browser already installed take a different position again, since there is no second copy of Chromium to store or update, and Chrome Web Store extensions and existing logins carry into each app. Seven Chromium engines are supported, including Chrome, Brave, Edge, and Vivaldi, and the pricing page lists a free tier of three apps against a one time 3,980 yen for unlimited ones. Whether that beats a free route depends entirely on whether the fourth app is coming.
Change the one site that costs you the most
Pick the single site that gets lost in tabs most often and give it a bundle today, using Safari's Add to Dock or Chrome's Install page as app. If it comes back within a week because of a second account, a missing extension, or an icon that will not stick, that is the point at which a dedicated tool starts paying for itself, and the Kagemusha guide covers the setup for each browser engine.
Frequently asked questions
Is a website turned into a Mac app still just a browser?
Yes, and that is the point. Every route on this page renders the site with a browser engine, either WebKit through Safari or Chromium through Chrome and its relatives. What changes is the container: a separate bundle, its own window, its own Dock icon, and in most cases its own cookie store.
Will a free web app keep working after a browser update?
Safari web apps and Chrome installed apps update along with the browser, so they keep working. The failures happen with older wrapper tools that copy a browser binary into the app bundle, because the copy stays on the version it was built with until someone rebuilds it.
Can two accounts on the same service run side by side?
Not without extra setup on the free routes. A Safari web app holds one session, and a Chrome installed app belongs to the Chrome profile that created it, so a second account needs a second Chrome profile. Tools that assign each app its own profile automatically are the usual answer when this comes up daily.
Do ad blockers and password managers work inside these apps?
It depends on the engine. Safari web apps run Safari extensions, which are enabled or disabled per app from the Extensions tab in the app's settings. Chromium based apps can run Chrome Web Store extensions, but only the ones installed in the profile that app uses.