Skip to main content

max / makenotwork

24.9 KB · 819 lines History Blame Raw
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <title>GoingsOn — Pitch</title>
7 <style>
8 @import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;600&family=Young+Serif&display=swap');
9
10 :root {
11 --bg: #E8F4F8;
12 --bg-card: #FFFFFF;
13 --bg-warm: #D4EBF2;
14 --bg-deep: #C0E2EC;
15 --text: #1B365D;
16 --text-secondary: #3D5A80;
17 --text-muted: #6B8CAE;
18 --accent: #F7D154;
19 --accent-dark: #d4a81e;
20 --green: #5CB85C;
21 --red: #DC3545;
22 --purple: #7B68EE;
23 --cyan: #17A2B8;
24 --border: #1B365D;
25 --border-light: #a8c4d4;
26 }
27
28 * { margin: 0; padding: 0; box-sizing: border-box; }
29
30 @page { size: letter; margin: 0; }
31
32 body {
33 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
34 color: var(--text);
35 background: var(--bg);
36 line-height: 1.6;
37 -webkit-print-color-adjust: exact;
38 print-color-adjust: exact;
39 }
40
41 .page {
42 width: 8.5in;
43 min-height: 11in;
44 margin: 0 auto;
45 padding: 0.55in 0.75in;
46 background: var(--bg);
47 page-break-after: always;
48 position: relative;
49 }
50
51 .page:last-child { page-break-after: auto; }
52
53 /* ── Hero ── */
54
55 .hero {
56 text-align: center;
57 padding: 0.3in 0 0.25in;
58 border-bottom: 3px solid var(--border);
59 margin-bottom: 0.25in;
60 }
61
62 .hero h1 {
63 font-family: 'Young Serif', Georgia, serif;
64 font-size: 48px;
65 font-weight: 400;
66 color: var(--text);
67 margin-bottom: 4px;
68 letter-spacing: -0.5px;
69 }
70
71 .hero h1 .dot { color: var(--accent-dark); }
72
73 .hero .tagline {
74 font-family: 'IBM Plex Mono', monospace;
75 font-size: 14px;
76 color: var(--text-secondary);
77 letter-spacing: 0.3px;
78 }
79
80 .hero .sub {
81 font-size: 12.5px;
82 color: var(--text-muted);
83 margin-top: 8px;
84 }
85
86 /* ── Sections ── */
87
88 h2 {
89 font-family: 'IBM Plex Mono', monospace;
90 font-size: 14px;
91 font-weight: 600;
92 text-transform: uppercase;
93 letter-spacing: 1.5px;
94 color: var(--text);
95 margin-bottom: 12px;
96 padding-bottom: 5px;
97 border-bottom: 2px solid var(--border);
98 }
99
100 h3 {
101 font-family: 'IBM Plex Mono', monospace;
102 font-size: 12.5px;
103 font-weight: 600;
104 color: var(--text);
105 margin-bottom: 5px;
106 margin-top: 14px;
107 }
108
109 h3:first-child { margin-top: 0; }
110
111 .intro {
112 font-size: 14.5px;
113 line-height: 1.7;
114 margin-bottom: 0.22in;
115 }
116
117 /* ── Stats ── */
118
119 .stats {
120 display: grid;
121 grid-template-columns: repeat(5, 1fr);
122 gap: 10px;
123 margin-bottom: 0.25in;
124 }
125
126 .stat {
127 text-align: center;
128 background: var(--bg-card);
129 border: 3px solid var(--border);
130 border-radius: 6px;
131 padding: 10px 6px;
132 box-shadow: 3px 3px 0 var(--border);
133 }
134
135 .stat .num {
136 font-family: 'Young Serif', Georgia, serif;
137 font-size: 26px;
138 color: var(--text);
139 display: block;
140 line-height: 1;
141 margin-bottom: 3px;
142 }
143
144 .stat .label {
145 font-family: 'IBM Plex Mono', monospace;
146 font-size: 9px;
147 color: var(--text-muted);
148 text-transform: uppercase;
149 letter-spacing: 0.4px;
150 }
151
152 /* ── Feature grid ── */
153
154 .features {
155 display: grid;
156 grid-template-columns: 1fr 1fr;
157 gap: 12px;
158 margin-bottom: 0.22in;
159 }
160
161 .feature-card {
162 background: var(--bg-card);
163 border: 3px solid var(--border);
164 border-radius: 6px;
165 padding: 12px 14px;
166 box-shadow: 3px 3px 0 var(--border);
167 }
168
169 .feature-card h3 {
170 margin: 0 0 5px 0;
171 font-size: 12px;
172 color: var(--text);
173 border-bottom: 2px solid var(--accent);
174 padding-bottom: 3px;
175 display: inline-block;
176 }
177
178 .feature-card ul { list-style: none; padding: 0; }
179
180 .feature-card li {
181 font-size: 11.5px;
182 line-height: 1.4;
183 color: var(--text-secondary);
184 padding: 1.5px 0 1.5px 13px;
185 position: relative;
186 }
187
188 .feature-card li::before {
189 content: '';
190 position: absolute;
191 left: 0;
192 top: 7px;
193 width: 6px;
194 height: 6px;
195 background: var(--accent);
196 border: 1px solid var(--border);
197 }
198
199 /* ── Feature section (full width, 2-col) ── */
200
201 .feature-section { margin-bottom: 0.2in; }
202
203 .feature-section ul {
204 list-style: none;
205 padding: 0;
206 columns: 2;
207 column-gap: 22px;
208 }
209
210 .feature-section li {
211 font-size: 11.5px;
212 line-height: 1.4;
213 color: var(--text-secondary);
214 padding: 2px 0 2px 13px;
215 position: relative;
216 break-inside: avoid;
217 }
218
219 .feature-section li::before {
220 content: '';
221 position: absolute;
222 left: 0;
223 top: 7.5px;
224 width: 6px;
225 height: 6px;
226 background: var(--accent);
227 border: 1px solid var(--border);
228 }
229
230 /* ── Highlight box (brutalist) ── */
231
232 .highlight-box {
233 background: var(--bg-card);
234 border: 3px solid var(--border);
235 border-left: 6px solid var(--accent);
236 padding: 11px 15px;
237 margin-bottom: 0.2in;
238 box-shadow: 3px 3px 0 var(--border);
239 }
240
241 .highlight-box p {
242 font-size: 12px;
243 line-height: 1.55;
244 color: var(--text-secondary);
245 }
246
247 .highlight-box strong { color: var(--text); }
248
249 /* ── Comparison table ── */
250
251 .comparison {
252 width: 100%;
253 border-collapse: collapse;
254 margin-bottom: 0.2in;
255 font-size: 11px;
256 }
257
258 .comparison th {
259 font-family: 'IBM Plex Mono', monospace;
260 font-size: 10px;
261 font-weight: 600;
262 text-align: left;
263 text-transform: uppercase;
264 letter-spacing: 0.5px;
265 padding: 7px 7px;
266 background: var(--bg-deep);
267 color: var(--text);
268 border: 2px solid var(--border);
269 }
270
271 .comparison td {
272 padding: 5px 7px;
273 border: 2px solid var(--border);
274 color: var(--text-secondary);
275 vertical-align: top;
276 }
277
278 .comparison .check { color: var(--green); font-weight: 700; font-size: 12px; }
279 .comparison .dash { color: var(--text-muted); }
280
281 /* ── Keyboard shortcuts ── */
282
283 .shortcuts {
284 display: grid;
285 grid-template-columns: repeat(3, 1fr);
286 gap: 4px 14px;
287 margin-bottom: 0.15in;
288 }
289
290 .shortcut {
291 display: flex;
292 align-items: center;
293 gap: 6px;
294 font-size: 11px;
295 color: var(--text-secondary);
296 padding: 1.5px 0;
297 }
298
299 .shortcut kbd {
300 font-family: 'IBM Plex Mono', monospace;
301 font-size: 10px;
302 background: var(--bg-card);
303 border: 2px solid var(--border);
304 border-radius: 3px;
305 padding: 1px 5px;
306 color: var(--text);
307 min-width: 22px;
308 text-align: center;
309 box-shadow: 2px 2px 0 var(--border);
310 }
311
312 /* ── Two-column layout ── */
313
314 .two-col {
315 display: grid;
316 grid-template-columns: 1fr 1fr;
317 gap: 12px;
318 margin-bottom: 0.2in;
319 }
320
321 .two-col .col {
322 background: var(--bg-card);
323 border: 3px solid var(--border);
324 border-radius: 6px;
325 padding: 12px 14px;
326 box-shadow: 3px 3px 0 var(--border);
327 }
328
329 .two-col .col h3 {
330 margin: 0 0 5px 0;
331 font-size: 12px;
332 color: var(--text);
333 border-bottom: 2px solid var(--accent);
334 padding-bottom: 3px;
335 display: inline-block;
336 }
337
338 .two-col .col p {
339 font-size: 11.5px;
340 line-height: 1.5;
341 color: var(--text-secondary);
342 }
343
344 /* ── Domain pills ── */
345
346 .domains {
347 display: grid;
348 grid-template-columns: repeat(5, 1fr);
349 gap: 10px;
350 margin-bottom: 0.22in;
351 }
352
353 .domain {
354 background: var(--bg-card);
355 border: 3px solid var(--border);
356 border-radius: 6px;
357 padding: 10px 8px;
358 text-align: center;
359 box-shadow: 3px 3px 0 var(--border);
360 }
361
362 .domain .icon {
363 font-size: 20px;
364 display: block;
365 margin-bottom: 4px;
366 filter: grayscale(100%);
367 }
368
369 .domain .name {
370 font-family: 'IBM Plex Mono', monospace;
371 font-size: 10.5px;
372 font-weight: 600;
373 color: var(--text);
374 display: block;
375 margin-bottom: 2px;
376 }
377
378 .domain .desc {
379 font-size: 9.5px;
380 color: var(--text-muted);
381 line-height: 1.3;
382 }
383
384 /* ── Footer ── */
385
386 .footer {
387 position: absolute;
388 bottom: 0.4in;
389 left: 0.75in;
390 right: 0.75in;
391 display: flex;
392 justify-content: space-between;
393 align-items: center;
394 padding-top: 8px;
395 border-top: 2px solid var(--border);
396 }
397
398 .footer .left, .footer .right {
399 font-family: 'IBM Plex Mono', monospace;
400 font-size: 10px;
401 color: var(--text-muted);
402 }
403
404 .footer-inline {
405 display: flex;
406 justify-content: space-between;
407 align-items: center;
408 padding-top: 8px;
409 border-top: 2px solid var(--border);
410 margin-top: auto;
411 }
412
413 .footer-inline .left, .footer-inline .right {
414 font-family: 'IBM Plex Mono', monospace;
415 font-size: 10px;
416 color: var(--text-muted);
417 }
418
419 @media print { body { background: white; } .page { box-shadow: none; } }
420 @media screen { body { background: #bbb; padding: 20px 0; } .page { box-shadow: 0 2px 20px rgba(0,0,0,0.15); margin-bottom: 20px; } }
421 </style>
422 </head>
423 <body>
424
425 <!-- ═══════════════════════════════════════════════════════════════════════ -->
426 <!-- PAGE 1 -->
427 <!-- ═══════════════════════════════════════════════════════════════════════ -->
428 <div class="page">
429
430 <div class="hero">
431 <h1>GoingsOn<span class="dot">.</span></h1>
432 <div class="tagline">Tasks, email, calendar, contacts. One app. Your machine.</div>
433 <div class="sub">A local-first productivity workspace for independent workers. Rust + Tauri. No subscription, no cloud dependency.</div>
434 </div>
435
436 <div class="stats">
437 <div class="stat">
438 <span class="num">5</span>
439 <span class="label">Integrated domains</span>
440 </div>
441 <div class="stat">
442 <span class="num">14</span>
443 <span class="label">Built-in themes</span>
444 </div>
445 <div class="stat">
446 <span class="num">4</span>
447 <span class="label">Email providers</span>
448 </div>
449 <div class="stat">
450 <span class="num">40+</span>
451 <span class="label">MCP tools</span>
452 </div>
453 <div class="stat">
454 <span class="num">$0</span>
455 <span class="label">Subscription fees</span>
456 </div>
457 </div>
458
459 <div class="intro">
460 Most productivity apps do one thing. GoingsOn does five &mdash; tasks, email, calendar, contacts, and projects &mdash; in one native desktop app with a single local database. No juggling Todoist plus Spark plus Google Calendar. One search, one keyboard, one place for everything.
461 </div>
462
463 <div class="highlight-box">
464 <p>Everything cross-links. <strong>Create a task from an email.</strong> Link events to contacts. View all tasks, emails, and events for a project on one dashboard. Snooze an email and it reappears like a snoozed task. The five domains are not separate apps bolted together &mdash; they share one database, one search index, and one keyboard-driven interface.</p>
465 </div>
466
467 <h2>Task Management</h2>
468
469 <div class="features">
470 <div class="feature-card">
471 <h3>Urgency &amp; Priority</h3>
472 <ul>
473 <li>TaskWarrior-inspired urgency scoring algorithm</li>
474 <li>Factors: due date proximity, age, priority, overdue penalty</li>
475 <li>Three priority levels (High, Medium, Low)</li>
476 <li>Automatic urgency classes for visual styling</li>
477 <li>Overdue tracking with visual indicators</li>
478 </ul>
479 </div>
480 <div class="feature-card">
481 <h3>Workflow</h3>
482 <ul>
483 <li>Snooze until later today, tomorrow, weekend, or next week</li>
484 <li>Mark as &ldquo;waiting for response&rdquo; with visual badge</li>
485 <li>Recurrence: daily, weekly, monthly, yearly</li>
486 <li>Timestamped annotations (notes on tasks)</li>
487 <li>Subtasks with progress tracking</li>
488 </ul>
489 </div>
490 <div class="feature-card">
491 <h3>Quick Add</h3>
492 <ul>
493 <li>Natural language parsing in one input field</li>
494 <li><code>Fix bug due:tomorrow +H @Project</code></li>
495 <li>Priority, due date, project, recurrence, tags</li>
496 <li>Keyboard shortcut: press <kbd>q</kbd> from anywhere</li>
497 </ul>
498 </div>
499 <div class="feature-card">
500 <h3>Views &amp; Bulk Ops</h3>
501 <ul>
502 <li>Filter by status, project, priority, milestone, snoozed</li>
503 <li>Sort by description, project, due date, urgency</li>
504 <li>Saved views: pin any filter combination</li>
505 <li>Bulk complete, snooze, or delete with multi-select</li>
506 </ul>
507 </div>
508 </div>
509
510 <h2>Email Client</h2>
511
512 <div class="feature-section">
513 <ul>
514 <li>Connect any IMAP/SMTP account</li>
515 <li>Fastmail OAuth with native JMAP protocol support</li>
516 <li>Google, Microsoft, and Yahoo OAuth (PKCE flow)</li>
517 <li>Background sync on configurable interval</li>
518 <li>Threaded email display with proper In-Reply-To headers</li>
519 <li>Compose and reply in a separate window</li>
520 <li>Mark read/unread, archive/unarchive</li>
521 <li>Snooze emails (reappear after snooze time)</li>
522 <li>Create task directly from any email</li>
523 <li>Link emails to projects</li>
524 <li>Unread count badge on macOS dock icon</li>
525 <li>Bulk operations: mark read, archive, snooze, delete</li>
526 </ul>
527 </div>
528
529 <div class="footer">
530 <div class="left">GoingsOn &mdash; v0.3.1</div>
531 <div class="right">makenot.work</div>
532 </div>
533
534 </div>
535
536 <!-- ═══════════════════════════════════════════════════════════════════════ -->
537 <!-- PAGE 2 -->
538 <!-- ═══════════════════════════════════════════════════════════════════════ -->
539 <div class="page">
540
541 <h2>Day Planning &amp; Time Blocking</h2>
542
543 <div class="two-col">
544 <div class="col">
545 <h3>Visual Timeline</h3>
546 <p>Hourly timeline for the day. Drag unscheduled tasks onto time slots to create blocks. Events display alongside your task blocks. Current time indicator shows where you are. Navigate between days with <kbd>[</kbd> and <kbd>]</kbd>.</p>
547 </div>
548 <div class="col">
549 <h3>Weekly Review</h3>
550 <p>Built-in weekly review workflow. See completed tasks from the past week, set focus tasks for the coming week, and track vacation days. A nudge system reminds you when your review is overdue.</p>
551 </div>
552 </div>
553
554 <h2>Calendar &amp; Contacts</h2>
555
556 <div class="features">
557 <div class="feature-card">
558 <h3>Events</h3>
559 <ul>
560 <li>Title, description, start/end time, location</li>
561 <li>Link events to projects and contacts</li>
562 <li>Recurrence: daily, weekly, monthly, yearly</li>
563 <li>Upcoming event list with collapsible past events</li>
564 <li>Events appear on the day plan timeline</li>
565 </ul>
566 </div>
567 <div class="feature-card">
568 <h3>Contacts</h3>
569 <ul>
570 <li>Display name, nickname, company, title, timezone</li>
571 <li>Multiple emails, phones, social handles per contact</li>
572 <li>Custom fields for any additional data</li>
573 <li>Tag contacts for filtering and grouping</li>
574 <li>Birthday tracking, notes, search by name or email</li>
575 </ul>
576 </div>
577 </div>
578
579 <h2>Projects &amp; Milestones</h2>
580
581 <div class="highlight-box">
582 <p>Create projects with types (Job, Side Project, Company, Essay, Article, Painting) and statuses (Active, Inactive, Archived). Each project gets a <strong>dashboard</strong> showing its tasks, events, and linked emails in columns. Add <strong>milestones</strong> with target dates and completion tracking to mark major phases. View all project work in one place.</p>
583 </div>
584
585 <h2>Search &amp; Navigation</h2>
586
587 <div class="two-col">
588 <div class="col">
589 <h3>Full-Text Search</h3>
590 <p>Search across tasks, projects, emails, and contacts from one input (FTS5). Click any result to navigate directly to that item. Finds matches in descriptions, email bodies, contact names, and more.</p>
591 </div>
592 <div class="col">
593 <h3>Saved Views</h3>
594 <p>Save any filter configuration as a named view. Pin views for one-click access from the sidebar. Combine status, project, priority, milestone, and snoozed filters into reusable queries.</p>
595 </div>
596 </div>
597
598 <h2>Keyboard-Driven</h2>
599
600 <div class="shortcuts">
601 <div class="shortcut"><kbd>q</kbd> Quick-add task</div>
602 <div class="shortcut"><kbd>j</kbd><kbd>k</kbd> Navigate items</div>
603 <div class="shortcut"><kbd>c</kbd> Complete task</div>
604 <div class="shortcut"><kbd>s</kbd> Snooze</div>
605 <div class="shortcut"><kbd>S</kbd> Schedule (day plan)</div>
606 <div class="shortcut"><kbd>n</kbd> New item</div>
607 <div class="shortcut"><kbd>a</kbd> Archive email</div>
608 <div class="shortcut"><kbd>/</kbd> Search</div>
609 <div class="shortcut"><kbd>?</kbd> Shortcuts overlay</div>
610 <div class="shortcut"><kbd>g</kbd><kbd>t</kbd> Go to tasks</div>
611 <div class="shortcut"><kbd>g</kbd><kbd>e</kbd> Go to email</div>
612 <div class="shortcut"><kbd>g</kbd><kbd>d</kbd> Go to day plan</div>
613 </div>
614
615 <h2>Themes</h2>
616
617 <div class="highlight-box">
618 <p>14 built-in themes, plus Follow System (auto light/dark). Includes <strong>Neobrute</strong> (default), <strong>Sandstone</strong>, <strong>Catppuccin</strong> (4 variants), <strong>Dracula</strong>, <strong>Nord</strong>, <strong>Tokyo Night</strong>, and more. TOML-based theme spec &mdash; edit colors, radii, shadows, and textures in a single file.</p>
619 </div>
620
621 <h2>Extensibility</h2>
622
623 <div class="features">
624 <div class="feature-card">
625 <h3>Rhai Plugin System</h3>
626 <ul>
627 <li>Import tasks, projects, and contacts from CSV</li>
628 <li>Sandboxed Rhai scripting &mdash; no arbitrary code</li>
629 <li>Plugin registry with hot-reload</li>
630 <li>Write custom importers without recompiling</li>
631 </ul>
632 </div>
633 <div class="feature-card">
634 <h3>MCP Server</h3>
635 <ul>
636 <li>40+ structured tools for Claude Desktop</li>
637 <li>Create, list, complete, snooze, search tasks</li>
638 <li>Export roadmaps, manage projects, query data</li>
639 <li>App auto-refreshes when agents modify data</li>
640 </ul>
641 </div>
642 </div>
643
644 <div class="footer">
645 <div class="left">GoingsOn &mdash; v0.3.1</div>
646 <div class="right">makenot.work</div>
647 </div>
648
649 </div>
650
651 <!-- ═══════════════════════════════════════════════════════════════════════ -->
652 <!-- PAGE 3 -->
653 <!-- ═══════════════════════════════════════════════════════════════════════ -->
654 <div class="page" style="display: flex; flex-direction: column;">
655
656 <h2>LLM Integration</h2>
657
658 <div class="highlight-box">
659 <p>Connect to <strong>Ollama</strong>, <strong>OpenAI</strong>, or any compatible LLM provider. Use <strong>LLM templates</strong> in task descriptions for dynamic text expansion and an AI-Fill button for on-demand generation. Test your connection from settings. Responses are cached locally. All processing stays on your terms &mdash; use a local model for full privacy, or a cloud provider when convenience matters.</p>
660 </div>
661
662 <h2>Cloud Sync (Optional)</h2>
663
664 <div class="highlight-box">
665 <p>Sync tasks, projects, events, contacts, email accounts, and settings across devices via <strong>MNW SyncKit</strong>. End-to-end encrypted &mdash; the server stores only ciphertext, never your data. Device management and full disconnect/wipe support. <strong>No account required to use the app</strong> &mdash; sync is entirely opt-in.</p>
666 </div>
667
668 <h2>Under the Hood</h2>
669
670 <div class="feature-section">
671 <ul>
672 <li>All data in local SQLite &mdash; no cloud required</li>
673 <li>Notifications: snooze expiry, upcoming events, new email (native desktop)</li>
674 <li>Manual and auto-scheduled backups with configurable retention</li>
675 <li>Restore from any backup with one click</li>
676 <li>Export: full database as JSON, tasks as CSV, events as ICS</li>
677 <li>HTML email rendering (opens in browser)</li>
678 <li>Virtual scrolling for large lists</li>
679 <li>WCAG AA color contrast across all themes</li>
680 <li>Paper texture, embossed text, tactile buttons (Skeubrute design)</li>
681 </ul>
682 </div>
683
684 <h2>How It Compares</h2>
685
686 <table class="comparison">
687 <tr>
688 <th style="width:22%">Feature</th>
689 <th style="width:13%">GO</th>
690 <th style="width:13%">Todoist</th>
691 <th style="width:13%">Things 3</th>
692 <th style="width:13%">Sunsama</th>
693 <th style="width:13%">Notion</th>
694 <th style="width:13%">Spark</th>
695 </tr>
696 <tr>
697 <td>Tasks + Email + Calendar</td>
698 <td><span class="check">Yes</span></td>
699 <td>Tasks only</td>
700 <td>Tasks only</td>
701 <td>Partial</td>
702 <td>Basic</td>
703 <td>Email only</td>
704 </tr>
705 <tr>
706 <td>Contacts</td>
707 <td><span class="check">Yes</span></td>
708 <td><span class="dash">&mdash;</span></td>
709 <td><span class="dash">&mdash;</span></td>
710 <td><span class="dash">&mdash;</span></td>
711 <td><span class="dash">&mdash;</span></td>
712 <td><span class="dash">&mdash;</span></td>
713 </tr>
714 <tr>
715 <td>Weekly review</td>
716 <td><span class="check">Yes</span></td>
717 <td><span class="dash">&mdash;</span></td>
718 <td><span class="dash">&mdash;</span></td>
719 <td><span class="check">Yes</span></td>
720 <td><span class="dash">&mdash;</span></td>
721 <td><span class="dash">&mdash;</span></td>
722 </tr>
723 <tr>
724 <td>Time blocking</td>
725 <td><span class="check">Yes</span></td>
726 <td><span class="dash">&mdash;</span></td>
727 <td><span class="dash">&mdash;</span></td>
728 <td><span class="check">Yes</span></td>
729 <td><span class="dash">&mdash;</span></td>
730 <td><span class="dash">&mdash;</span></td>
731 </tr>
732 <tr>
733 <td>Urgency scoring</td>
734 <td><span class="check">Yes</span></td>
735 <td>4 levels</td>
736 <td><span class="dash">&mdash;</span></td>
737 <td><span class="dash">&mdash;</span></td>
738 <td><span class="dash">&mdash;</span></td>
739 <td><span class="dash">&mdash;</span></td>
740 </tr>
741 <tr>
742 <td>Offline-first</td>
743 <td><span class="check">Yes</span></td>
744 <td><span class="dash">&mdash;</span></td>
745 <td><span class="check">Yes</span></td>
746 <td><span class="dash">&mdash;</span></td>
747 <td>Limited</td>
748 <td><span class="dash">&mdash;</span></td>
749 </tr>
750 <tr>
751 <td>Plugin system</td>
752 <td><span class="check">Rhai</span></td>
753 <td><span class="dash">&mdash;</span></td>
754 <td><span class="dash">&mdash;</span></td>
755 <td><span class="dash">&mdash;</span></td>
756 <td>API</td>
757 <td><span class="dash">&mdash;</span></td>
758 </tr>
759 <tr>
760 <td>MCP / LLM tools</td>
761 <td><span class="check">40+</span></td>
762 <td><span class="dash">&mdash;</span></td>
763 <td><span class="dash">&mdash;</span></td>
764 <td><span class="dash">&mdash;</span></td>
765 <td>Built-in</td>
766 <td>Built-in</td>
767 </tr>
768 <tr>
769 <td>Source-available</td>
770 <td><span class="check">Yes</span></td>
771 <td><span class="dash">&mdash;</span></td>
772 <td><span class="dash">&mdash;</span></td>
773 <td><span class="dash">&mdash;</span></td>
774 <td><span class="dash">&mdash;</span></td>
775 <td><span class="dash">&mdash;</span></td>
776 </tr>
777 <tr>
778 <td>Cross-platform</td>
779 <td><span class="check">Yes</span></td>
780 <td><span class="check">Yes</span></td>
781 <td>Apple only</td>
782 <td><span class="check">Yes</span></td>
783 <td><span class="check">Yes</span></td>
784 <td><span class="check">Yes</span></td>
785 </tr>
786 <tr>
787 <td>Mobile app</td>
788 <td>Planned</td>
789 <td><span class="check">Yes</span></td>
790 <td><span class="check">Yes</span></td>
791 <td><span class="check">Yes</span></td>
792 <td><span class="check">Yes</span></td>
793 <td><span class="check">Yes</span></td>
794 </tr>
795 <tr>
796 <td>No subscription</td>
797 <td><span class="check">Yes</span></td>
798 <td>$48/yr</td>
799 <td>~$80 once</td>
800 <td>$192/yr</td>
801 <td>$120/yr</td>
802 <td>$60/yr</td>
803 </tr>
804 </table>
805
806 <div class="highlight-box">
807 <p><strong>Free during alpha.</strong> Native desktop app for macOS, Windows, and Linux via Tauri. iOS in development. Source-available under PolyForm Noncommercial 1.0.0. The closest competitor charging for similar scope is Sunsama at $192/year.</p>
808 </div>
809
810 <div class="footer-inline" style="margin-top: 12px;">
811 <div class="left">GoingsOn &mdash; v0.3.1</div>
812 <div class="right">makenot.work</div>
813 </div>
814
815 </div>
816
817 </body>
818 </html>
819