Skip to content

Commit ce3db7e

Browse files
docs(compare): address comparison content and SEO audit
1 parent 2fbf71d commit ce3db7e

20 files changed

Lines changed: 455 additions & 235 deletions

‎docs/website/.vitepress/config.mts‎

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,50 @@ export default defineConfig({
6868
['meta', { name: 'google-site-verification', content: gsv }],
6969
],
7070

71-
transformHead({ pageData, title, description }) {
72-
return buildSeoHead({
71+
transformPageData(pageData) {
72+
const pageTitle = pageData.title || siteTitle
73+
const titleTemplate = pageData.titleTemplate ?? siteTitle
74+
const socialTitle = titleTemplate === false || pageTitle === titleTemplate
75+
? pageTitle
76+
: `${pageTitle} | ${titleTemplate === true ? siteTitle : titleTemplate}`
77+
const head = buildSeoHead({
7378
relativePath: pageData.relativePath,
74-
pageTitle: title,
75-
pageDescription: description,
79+
pageTitle: socialTitle,
80+
pageDescription: pageData.description || description,
7681
isNotFound: pageData.isNotFound,
7782
})
83+
84+
if (pageData.relativePath.startsWith('compare/') && !pageData.isNotFound) {
85+
const breadcrumbs = [
86+
{ name: 'Home', item: `${siteUrl}/` },
87+
{ name: 'Compare', item: `${siteUrl}/compare/` },
88+
]
89+
90+
if (pageData.relativePath !== 'compare/index.md') {
91+
breadcrumbs.push({
92+
name: pageData.title,
93+
item: resolvePageUrl(pageData.relativePath),
94+
})
95+
}
96+
97+
head.push(['script', { type: 'application/ld+json' }, JSON.stringify({
98+
'@context': 'https://schema.org',
99+
'@type': 'BreadcrumbList',
100+
'itemListElement': breadcrumbs.map((breadcrumb, index) => ({
101+
'@type': 'ListItem',
102+
'position': index + 1,
103+
...breadcrumb,
104+
})),
105+
})])
106+
}
107+
108+
// Page head is included in both rendered HTML and client-side navigation.
109+
pageData.frontmatter.head = [...(pageData.frontmatter.head || []), ...head]
110+
},
111+
112+
transformHead({ pageData }) {
113+
if (pageData.isNotFound)
114+
return [['meta', { name: 'robots', content: 'noindex, nofollow' }]]
78115
},
79116

80117
themeConfig: {

‎docs/website/compare/apple-reminders.md‎

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
11
---
22
title: massCode vs Apple Reminders
3-
description: "An honest comparison between massCode tasks and Apple Reminders. Cross-platform open-source developer workspace vs free Apple-built-in task manager with iCloud sync."
3+
titleTemplate: false
4+
description: "Compare massCode tasks with Apple Reminders: Markdown notes, desktop platforms, iCloud web access, recurring tasks, alerts, and shared lists."
45
---
56

7+
[Home](/) / [Compare](/compare/) / massCode vs Apple Reminders
8+
69
# massCode vs Apple Reminders
710

811
[Apple Reminders](https://www.apple.com/ios/reminders/) ships free with every Mac, iPhone, iPad, Apple Watch, and Vision Pro. It is the default task manager for most Apple users. massCode is a free, open-source, cross-platform developer workspace where [tasks are notes](/documentation/notes/tasks) — plain Markdown files in a vault on your own disk.
912

1013
If you are entirely on Apple devices and want a zero-friction default task app, Reminders is the more natural fit. If you work across operating systems, or you want tasks to live as markdown next to your snippets and notes, massCode is the more natural fit.
1114

15+
[Try massCode](/download/) with one engineering note that needs a status and due date.
16+
1217
## At a glance
1318

1419
| | massCode | Apple Reminders |
@@ -18,7 +23,7 @@ If you are entirely on Apple devices and want a zero-friction default task app,
1823
| Data location | Local Markdown Vault on your disk | Local on each device, synced via iCloud |
1924
| Sync | iCloud, Dropbox, Google Drive, Syncthing, Git — your choice | iCloud only |
2025
| Native platforms | macOS, Windows, Linux | macOS, iPadOS, iOS, watchOS, visionOS |
21-
| Web access | No web app | View-only web access at [icloud.com/reminders](https://www.icloud.com/reminders) |
26+
| Web access | No web app | Create, complete, and delete reminders at [icloud.com/reminders](https://www.icloud.com/reminders) |
2227
| Windows / Linux native app | Yes | No |
2328
| Task model | Notes with `status`, `priority`, and `due` properties | Reminders with subtasks, sections, tags, smart lists |
2429
| Statuses | Todo, In Progress, Done, Blocked | Open / completed |
@@ -31,7 +36,7 @@ If you are entirely on Apple devices and want a zero-friction default task app,
3136
| Voice input | No | Siri |
3237
| Account required | No | Apple ID for iCloud sync |
3338

34-
Sources: Apple's [Reminders user guide](https://support.apple.com/guide/reminders/welcome/mac) and the [iCloud Reminders web app](https://www.icloud.com/reminders).
39+
Sources: Apple's [Reminders user guide](https://support.apple.com/guide/reminders/welcome/mac) and [creating and deleting reminders on iCloud.com](https://support.apple.com/en-ie/guide/icloud/mmc0cd77d9/icloud).
3540

3641
## Where Apple Reminders fits better
3742

@@ -49,7 +54,7 @@ Reminders is a strong choice when the goal is "a task manager that just works on
4954

5055
massCode is a strong choice when Reminders' Apple-only constraint is a problem, or when the "task" is really a working note that needs a structured status.
5156

52-
- **You work across operating systems.** massCode runs natively on macOS, Windows, and Linux from the same vault. Reminders has no native Windows or Linux app — only view-only web access through iCloud.com.
57+
- **You work across operating systems.** massCode runs natively on macOS, Windows, and Linux from the same vault. Reminders has no native Windows or Linux app — web access through iCloud.com, including creating and completing reminders.
5358
- **You want plain Markdown files on disk.** Every task is a `.md` file with frontmatter in your [Markdown Vault](/documentation/storage). Reminders data lives in Apple's database and is accessed through Apple's apps.
5459
- **You want one workspace, not five apps.** Tasks share the app with [Code](/documentation/code/library), [Notes](/documentation/notes/), [HTTP](/documentation/http/), [Math](/documentation/math/), [Drawings](/documentation/drawings/), and [Tools](/documentation/tools/).
5560
- **You want sync without Apple.** Point [iCloud, Dropbox, Google Drive, Syncthing, or Git](/documentation/sync) at your vault. iCloud is one option among many, not the only one.
@@ -75,3 +80,8 @@ massCode is a strong choice when Reminders' Apple-only constraint is a problem,
7580
You can keep Reminders for life logistics — groceries, family lists, time-and-location alerts — and use massCode tasks for technical work-in-progress, where the "task" is really a working note with code, links, and context.
7681

7782
[Download massCode](/download/) and try it on a few in-flight work notes.
83+
84+
## Related comparisons
85+
86+
- [Markdown-first tasks for developers](/compare/markdown-first-tasks)
87+
- [massCode vs Obsidian Tasks](/compare/obsidian-tasks)

0 commit comments

Comments
 (0)