+
-
diff --git a/source/pages/apps/faq.md b/source/pages/apps/faq.md
index ce2ebf2c..14448a02 100644
--- a/source/pages/apps/faq.md
+++ b/source/pages/apps/faq.md
@@ -73,7 +73,15 @@ Yes, if an app has not been updated for months, it's still actively maintained.
### Why do you only support the latest macOS/iOS version?
-I make apps for fun and supporting older operating system versions is simply no fun. It adds a lot of overhead with having to test each update on the older versions, work around bugs Apple will never fix, etc. As a compromise, I provide older versions of my apps for older operating system versions.
+I make apps for fun and supporting older operating system versions is simply no fun. It adds a lot of overhead with having to test each update on the older versions, work around bugs Apple will never fix, etc. As a compromise, I provide [older versions](/apps/older-versions) of my apps for older operating system versions.
+
+### Why do you create multiple mini menu bar apps instead of one comprehensive “menu bar app”?
+
+- **Focus:** Easier to make a high-quality app when it's focused on one thing.
+- **Marketing:** Challenging to market an app that does too many different things.
+- **Customization:** Users can install only what they need.
+- **Isolation:** Issues in one app don’t affect others.
+- **Satisfaction:** I like the satisfaction of completing an app.
### How can I export, import, sync, or back up the settings in a Mac app?
@@ -83,6 +91,10 @@ I make apps for fun and supporting older operating system versions is simply no
No, I don't plan to localize my apps. Localization adds complexity and maintenance demands that detract from my focus on app quality and performance.
+### Can you make your apps available on Homebrew? {#homebrew}
+
+Unfortunately not. Supporting Homebrew requires distributing apps outside the App Store, and that involves significant overhead: hosting, auto-updating, and dual publishing. The demand simply doesn't justify these efforts.
+
### You are doing a lot of open source, why are only some of your apps open source? {#why-not-oss}
I open source [some of my apps](https://github.com/search?q=user%3Asindresorhus+language%3Aswift+topic%3Aapp+archived%3Afalse), but not all, for a few key reasons. First, I use specialized tools (internal framework) to speed up app development, which are not suitable for sharing. Additionally, past experiences with open sourcing apps have led to clones of my apps appearing on the App Store, which is problematic. Also, community contributions, though well-intentioned, often don't match the high quality standards I set for my apps. As a compromise, I tend to open source the [reusable building blocks](https://github.com/search?q=user%3Asindresorhus+topic%3Aswift-package+archived%3Afalse), allowing community involvement while maintaining the quality and uniqueness of my apps.
@@ -95,6 +107,18 @@ iOS: Tap and hold the app on the Home Screen and select “Remove App”.
*If you're uninstalling due to issues, please [contact me](/feedback) first; I resolve problems quickly.*
+### I'm getting a “The application can’t be opened” error when trying to launch your app
+
+Make sure the app is in the “/Applications” folder, then right-click the app and select "Open" from the context menu.
+
+If it still doesn't work, the app may be quarantined, and the system is not showing the proper dialog. To fix this, open Terminal and run:
+
+```sh
+xattr -d com.apple.quarantine -r /Applications/AppName.app
+```
+
+Replace `AppName` with the name of the app. [Learn more.](https://superuser.com/a/28400/6877)
+
### I'm having a problem with your app {#app-problem}
Here are some things you could try:
diff --git a/source/pages/apps/free.astro b/source/pages/apps/free.astro
new file mode 100644
index 00000000..d6d59c19
--- /dev/null
+++ b/source/pages/apps/free.astro
@@ -0,0 +1,43 @@
+---
+import {SITE} from '~/config.mjs';
+import Layout from '~/layouts/SimplePageLayout.astro';
+import {fetchApps} from '~/utils/apps.js';
+
+const platformOrder = [
+ 'macOS',
+ 'iOS',
+ 'watchOS',
+ 'tvOS',
+ 'visionOS',
+ 'Linux',
+ 'Windows',
+];
+
+const apps = await fetchApps();
+const freeApps = apps.filter(app => !app.isPaid && app.title !== 'Caprine');
+
+const platforms = [...new Set(freeApps.flatMap(app => app.platforms))]
+ .filter(Boolean)
+ .sort((a, b) => platformOrder.indexOf(a) - platformOrder.indexOf(b));
+
+const meta = {
+ title: `Free Apps — ${SITE.name}`,
+};
+---
+
+
+ Free Apps
+ The apps of mine that are completely free (without ads!).
+ {platforms.map(platform => (
+
+
+
+ {freeApps.filter(app => app.platforms?.includes(platform)).map(app => (
+ - {app.title} — {app.subtitle}
+ ))}
+
+
+ ))}
+
+ If you like my work, consider leaving a review on the App Store. And also check out my paid apps.
+
diff --git a/source/pages/apps/paid.astro b/source/pages/apps/paid.astro
new file mode 100644
index 00000000..bd210947
--- /dev/null
+++ b/source/pages/apps/paid.astro
@@ -0,0 +1,41 @@
+---
+import {SITE} from '~/config.mjs';
+import Layout from '~/layouts/SimplePageLayout.astro';
+import {fetchApps} from '~/utils/apps.js';
+
+const platformOrder = [
+ 'macOS',
+ 'iOS',
+ 'watchOS',
+ 'tvOS',
+ 'visionOS',
+];
+
+const apps = await fetchApps();
+const paidApps = apps.filter(app => app.isPaid);
+
+const platforms = [...new Set(paidApps.flatMap(app => app.platforms))]
+ .filter(Boolean)
+ .sort((a, b) => platformOrder.indexOf(a) - platformOrder.indexOf(b));
+
+const meta = {
+ title: `Paid Apps — ${SITE.name}`,
+};
+---
+
+
+ Paid Apps
+ The apps of mine that are paid.
+ {platforms.map(platform => (
+
+
+
+ {paidApps.filter(app => app.platforms?.includes(platform)).map(app => (
+ - {app.title} — {app.subtitle}
+ ))}
+
+
+ ))}
+
+ You can find my free apps here.
+
diff --git a/source/pages/apps/visionos.astro b/source/pages/apps/visionos.astro
index 5fa37b3c..fab79a2d 100644
--- a/source/pages/apps/visionos.astro
+++ b/source/pages/apps/visionos.astro
@@ -7,13 +7,13 @@ const apps = await fetchApps();
const filteredApps = apps.filter(app => app.platforms.includes('visionOS'));
const meta = {
- title: `Apple Vision Pro Apps — ${SITE.name}`,
+ title: `Apple Vision Apps — ${SITE.name}`,
};
---
- Apple Vision Pro Apps
- The apps of mine that run on Apple Vision Pro.
+ Apple Vision Apps
+ The apps of mine that run on Apple Vision.
{filteredApps.map(app => (
- {app.title} — {app.subtitle}
diff --git a/source/pages/donate.md b/source/pages/donate.md
index ba86cb03..cd2e0637 100644
--- a/source/pages/donate.md
+++ b/source/pages/donate.md
@@ -46,12 +46,4 @@ If you or your company are using any of my projects, consider supporting me so I
### Buy my apps
-You can also support me by buying my apps.\
-*A nice review on the App Store is also a good way to support my work.*
-
-- [Dato](/dato)
-- [Lungo](/lungo)
-- [Battery Indicator](/battery-indicator)
-- [Black Out](/black-out)
-- [Ask AI](/ask-ai)
-- [One Task](/one-task)
+You can also support me by [buying my apps](/apps/paid). A nice review on the App Store is also a good way to support my work.
diff --git a/source/pages/tiny-apps.md b/source/pages/tiny-apps.md
index 95ca3d54..1819b683 100644
--- a/source/pages/tiny-apps.md
+++ b/source/pages/tiny-apps.md
@@ -7,14 +7,17 @@ title: Tiny apps
Tiny but useful macOS utilities. These are generally not up to the quality of my [main apps](/apps).
+
+
## Services Debug
-Check what content an app provides to services in the “Services” menu. This can be useful when developing support for [system services](https://www.computerworld.com/article/2476298/os-x-a-quick-guide-to-services-on-your-mac.html) in your macOS app.
+Check what content an app provides to services in the “Services” menu.
-*Requires macOS 13 or later.*
+This can be useful when developing support for [system services](https://www.computerworld.com/article/2476298/os-x-a-quick-guide-to-services-on-your-mac.html) in your macOS app.
- [Screenshot](https://user-images.githubusercontent.com/170270/169027027-fa16e965-5104-4601-9098-08facddc116f.png)
-- [Download](https://www.dropbox.com/scl/fi/i35d03m3v7208x3ogx42s/Services-Debug-1.0.0-1685392394-1701610585.zip?rlkey=kzsjq0h0f2odpg7ktii62dlkr&raw=1)
+- [Download](https://www.dropbox.com/scl/fi/3qdpxtqwkciyajwom5igc/Services-Debug-1.1.0-1718895316.zip?rlkey=2nvjh7gmpo2j4nmkaw8h3ismv&raw=1)\
+ *Requires macOS 14 or later*
## [Copy URL](https://github.com/sindresorhus/copy-url)