Skip to content

Commit b0c463a

Browse files
authored
fix: Taskstat pages (#383)
Add a new application page for TasktStat, as well as a policy page for the app. Includes screenshots of TaskStat, as well as app icons. Future update will include a link to the AppStore, once approved and published.
1 parent 47a5441 commit b0c463a

File tree

80 files changed

+1167
-36
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

80 files changed

+1167
-36
lines changed

docs/about/resume/index.html

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,16 +72,16 @@
7272
</nav>
7373
<main id="main-content">
7474

75-
<link rel="stylesheet" href="/css/print.css" media="print">
75+
<link rel="stylesheet" href="/css/print.css" media="print" />
76+
<link rel="stylesheet" href="/css/markdown.css" />
7677

7778
<section class="hero">
7879
<h1>Adam Jolicoeur</h1>
79-
<p class="text-lead mb-4">
80-
Lead Product Designer with 15+ years at AWS, Red Hat, and high-growth B2B companies
81-
</p></section>
80+
<p class="text-lead mb-4">Lead Product Designer with 15+ years at AWS, Red Hat, and high-growth B2B companies</p></section>
8281

8382

84-
<section class="hide-on-screen print">
83+
<section>
84+
<section class="hide-on-screen print">
8585
<h1>Adam Jolicoeur</h1>
8686
<caption>[email protected]</caption>
8787
</section>
@@ -128,6 +128,7 @@ <h3>Also available</h3>
128128
<a href="https://www.github.com/AdamJ" class="btn btn-social" target="_blank" alt="Click to visit my GitHub profile"><i class="fa-brands fa-github"></i> GitHub</a>
129129
</section>
130130

131+
</section>
131132

132133

133134
</main>

docs/apps/taskstat-privacy.html

Lines changed: 409 additions & 0 deletions
Large diffs are not rendered by default.

docs/apps/taskstat.html

Lines changed: 257 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,257 @@
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"><meta name="keywords" content="@Adam, Adam Jolicoeur, Adam J. Jolicoeur, AdamJ, Jolicoeur, adamjolicoeur.com, www.adamjolicoeur.com, mindreeper2420, Portfolio, Design, Product Designer, UXD, UX Designer, UX Developer, UX Engineer, Design Technologist, Product Mangement, CSS" />
6+
<title>TaskStat | Adam Jolicoeur</title>
7+
<meta
8+
name="description"
9+
content="Privacy-first task management for iOS. Your tasks stay on your device—no accounts, no tracking, no cloud sync."
10+
/>
11+
<meta name="generator" content="Eleventy">
12+
<meta property="og:title" content="Adam J. Jolicoeur" />
13+
<meta property="og:url" content="" />
14+
<meta property="og:description" content="Privacy-first task management for iOS. Your tasks stay on your device—no accounts, no tracking, no cloud sync.">
15+
<meta property="og:site_name" content="Adam J. Jolicoeur">
16+
<meta property="og:type" content="website">
17+
<link rel="apple-touch-icon" sizes="180x180" href="/icon-180.png">
18+
<link rel="icon" type="image/png" size="16x16" href="/icon-16.png">
19+
<link rel="icon" type="image/png" size="32x32" href="/icon-32.png">
20+
<link rel="icon" type="image/png" size="192x192" href="/icon-192.png">
21+
<link rel="icon" type="image/png" size="512x512" href="/icon-512.png">
22+
<link rel="manifest" href="/manifest.json">
23+
<link rel="preconnect" href="https://fonts.googleapis.com">
24+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
25+
<link href="https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Pirata+One&family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap" rel="stylesheet">
26+
<link type="text/css" href="/css/prism.css" rel="stylesheet" />
27+
<link type="text/css" href="/css/style.css" rel="stylesheet" />
28+
<meta
29+
name="og:title"
30+
content="TaskStat | Adam Jolicoeur"
31+
/>
32+
<meta
33+
name="og:description"
34+
content="Privacy-first task management for iOS. Your tasks stay on your device—no accounts, no tracking, no cloud sync."
35+
/>
36+
<meta property="og:image" content="https://www.adamjolicoeur.com/assets/img/social_template.jpg" />
37+
38+
<link
39+
rel="alternate"
40+
type="application/rss+xml"
41+
title="RSS Feed for Adam Jolicoeur"
42+
href="/feed/"
43+
/>
44+
<script src="https://kit.fontawesome.com/0ea2a7621c.js" crossorigin="anonymous"></script>
45+
</head>
46+
<a rel="me" href="https://mastodon.world/@adamjol" aria-hidden="true" class="display-none">Mastodon</a>
47+
<body>
48+
<a href="#main-content" class="skip-link">Skip to main content</a>
49+
<nav role="navigation" aria-label="Main navigation" class="main-nav" style="bottom: 0 !important;">
50+
<ul>
51+
<li>
52+
<a href="/" alt="Navigate to home page">
53+
Home
54+
</a>
55+
</li>
56+
<li>
57+
<a href="/about/adam" alt="Navigate to about page">
58+
About
59+
</a>
60+
</li>
61+
<li>
62+
<a href="/portfolio" alt="Navigate to portfolio page">
63+
Portfolio
64+
</a>
65+
</li>
66+
<li>
67+
<a href="/about/resume" alt="Navigate to the resume page">
68+
Resume
69+
</a>
70+
</li>
71+
</ul>
72+
</nav>
73+
<main id="main-content">
74+
75+
<link rel="stylesheet" href="/css/print.css" media="print" />
76+
<link rel="stylesheet" href="/css/markdown.css" />
77+
78+
<section class="hero">
79+
<h1>TaskStat</h1>
80+
<p class="text-lead mb-4">Privacy-first task management for iOS. Your tasks stay on your device—no accounts, no tracking, no cloud sync.</p></section>
81+
82+
83+
<section>
84+
<section>
85+
<h2 id="about-taskstat" tabindex="-1">About TaskStat <a class="anchor-link" href="#about-taskstat">#</a></h2>
86+
<p>TaskStat is a native iOS task management app built with privacy as a core principle. Unlike cloud-based task managers, TaskStat stores all your data locally on your device using SwiftData—ensuring complete privacy and offline functionality.</p>
87+
<h3 id="key-features" tabindex="-1">Key Features <a class="anchor-link" href="#key-features">#</a></h3>
88+
<ul>
89+
<li><strong>Complete Privacy</strong> - 100% local storage, zero data collection</li>
90+
<li><strong>Smart Organization</strong> - Filter and group tasks by project, status, or priority</li>
91+
<li><strong>Flexible Projects</strong> - Organize tasks into Personal, Work, or custom projects</li>
92+
<li><strong>Rich Task Details</strong> - Track status, priority, type, assignees, and notes</li>
93+
<li><strong>Multi-Select Operations</strong> - Efficiently manage multiple tasks at once</li>
94+
<li><strong>CSV Export</strong> - Export and backup your data anytime</li>
95+
<li><strong>Native iOS Design</strong> - Built with SwiftUI for iOS 18+</li>
96+
</ul>
97+
<h3 id="task-management-essentials" tabindex="-1">Task Management Essentials <a class="anchor-link" href="#task-management-essentials">#</a></h3>
98+
<p>TaskStat provides comprehensive task tracking with:</p>
99+
<ul>
100+
<li><strong>Task States:</strong> Open, Closed, or Archived</li>
101+
<li><strong>Status Levels:</strong> To Do, In Progress, Completed, or Blocked</li>
102+
<li><strong>Priority Flags:</strong> None, Low, Medium, High, or Urgent</li>
103+
<li><strong>Task Types:</strong> Personal, Work, Other, or Misc</li>
104+
<li><strong>Assignee Tracking:</strong> Assign tasks to team members or yourself</li>
105+
<li><strong>Detailed Notes:</strong> Add context and details to any task</li>
106+
</ul>
107+
<h3 id="privacy-first-design" tabindex="-1">Privacy-First Design <a class="anchor-link" href="#privacy-first-design">#</a></h3>
108+
<ul>
109+
<li>✅ All data stored locally on your device</li>
110+
<li>✅ No account creation or sign-in required</li>
111+
<li>✅ No data collection or analytics</li>
112+
<li>✅ No third-party services or tracking</li>
113+
<li>✅ Works completely offline</li>
114+
<li>✅ No cloud sync means no sync conflicts or data loss</li>
115+
</ul>
116+
<p>Read the full <a href="/apps/taskstat-privacy.html">Privacy Policy</a></p>
117+
<h2 id="screenshots" tabindex="-1">Screenshots <a class="anchor-link" href="#screenshots">#</a></h2>
118+
<div style="display: flex; flex-direction: row; flex-wrap: wrap; gap: 1rem;">
119+
<figure>
120+
<img src="/assets/img/taskstat-screenshot-dashboard.webp" height="400" alt="Screenshot of TaskStat dashboard" />
121+
<figcaption>Dashboard</figcaption>
122+
</figure>
123+
<figure>
124+
<img src="/assets/img/taskstat-screenshot-list.webp" height="400" alt="Screenshot of TaskStat task list" />
125+
<figcaption>Task List</figcaption>
126+
</figure>
127+
<figure>
128+
<img src="/assets/img/taskstat-screenshot-details.webp" height="400" alt="Screenshot of TaskStat task details" />
129+
<figcaption>Task Details</figcaption>
130+
</figure>
131+
<figure>
132+
<img src="/assets/img/taskstat-screenshot-settings.webp" height="400" alt="Screenshot of TaskStat settings" />
133+
<figcaption>Settings</figcaption>
134+
</figure>
135+
</div>
136+
<h2 id="app-icon" tabindex="-1">App Icon <a class="anchor-link" href="#app-icon">#</a></h2>
137+
<table>
138+
<thead>
139+
<tr>
140+
<th>Light</th>
141+
<th>Dark</th>
142+
<th>Tinted</th>
143+
</tr>
144+
</thead>
145+
<tbody>
146+
<tr>
147+
<td><img src="/assets/img/TaskStat_Default.webp" width="144" height="144" alt="TaskStat light icon" /></td>
148+
<td><img src="/assets/img/TaskStat_Dark.webp" width="144" height="144" alt="TaskStat dark icon" /></td>
149+
<td><img src="/assets/img/TaskStat_Tinted.webp" width="144" height="144" alt="TaskStat tinted icon" /></td>
150+
</tr>
151+
</tbody>
152+
</table>
153+
<h2 id="download" tabindex="-1">Download <a class="anchor-link" href="#download">#</a></h2>
154+
<p><strong>Platform:</strong> iOS 18.0 or later</p>
155+
<p><strong>App Store:</strong> <em>Coming soon - Link will be added when published</em></p>
156+
<!-- [Download on the App Store](https://apps.apple.com/app/taskstat/idXXXXXXXXX) -->
157+
<h2 id="requirements" tabindex="-1">Requirements <a class="anchor-link" href="#requirements">#</a></h2>
158+
<ul>
159+
<li>iPhone running iOS 18 or later</li>
160+
<li>No internet connection required</li>
161+
<li>No account or registration needed</li>
162+
</ul>
163+
<h2 id="support" tabindex="-1">Support <a class="anchor-link" href="#support">#</a></h2>
164+
<p><strong>Questions or issues?</strong></p>
165+
<ul>
166+
<li><strong>Email:</strong> <a href="mailto:[email protected]">[email protected]</a></li>
167+
<li><strong>Privacy Policy:</strong> <a href="/apps/taskstat-privacy.html">View Privacy Policy</a></li>
168+
</ul>
169+
<h2 id="technical-details" tabindex="-1">Technical Details <a class="anchor-link" href="#technical-details">#</a></h2>
170+
<p>TaskStat is built using:</p>
171+
<ul>
172+
<li><strong>SwiftUI</strong> for native iOS interface</li>
173+
<li><strong>SwiftData</strong> for local persistence</li>
174+
<li><strong>No third-party dependencies</strong></li>
175+
</ul>
176+
<div class="text-callout">TaskStat: Simple tasks. Complete privacy.</div>
177+
</section>
178+
179+
</section>
180+
181+
182+
</main>
183+
<footer id="contact">
184+
<div class="footer-content">
185+
<div class="footer-section">
186+
<h3>ABOUT ME</h3>
187+
<p>
188+
I'm a Product Designer with 15+ years at AWS, Red Hat, and high-growth B2B companies. I specialize in design systems, enterprise applications, and complex data-intensive interfaces.
189+
</p>
190+
<p>
191+
Currently open to senior Product Designer and Design Systems roles at mission-driven companies building impactful products.
192+
</p>
193+
<p>
194+
This portfolio showcases my approach to solving complex design challenges through user research, systematic thinking, and collaboration with engineering teams.
195+
</p>
196+
</div>
197+
<div class="footer-section">
198+
<h3>EXPLORE MORE</h3>
199+
<h4>Experiments &amp; Side Projects</h4>
200+
<p>-> <a href="https://productdesigns.net" target="_blank" alt="Link to productdesigns.net">productdesigns.net</a></p>
201+
<h4>Technical Blog</h4>
202+
<p>-> <a href="https://blog.adamjolicoeur.com" target="_blank" alt="Link to my blog">blog.adamjolicoeur.com</a></p>
203+
<h4>Connect</h4>
204+
<p>
205+
<a href="https://www.linkedin.com/in/ajjolicoeur" class="link-brackets mr-4" target="_blank" alt="Linked to my LinkedIn profile">LinkedIn</a>
206+
<a href="https://www.github.com/AdamJ" class="link-brackets" target="_blank" alt="Link to my GitHub profile">GitHub</a>
207+
</p>
208+
</div>
209+
</div>
210+
<div class="footer-bottom">
211+
<p>Copyright &copy; 2008-2026 <a href="/about" alt="Link to an about page">Adam J. Jolicoeur</a>. All rights reserved. Designed & developed with <i class="fa-solid fa-brain"></i> <i class="fa-solid fa-robot"></i></p>
212+
<a href="/sitemap.xml" alt="Link to the sitemap">
213+
Sitemap
214+
</a>
215+
<span class="small text-secondary px-2"><i class="fa-solid fa-diamond text-accent"></i></span>
216+
<a href="/credits" alt="Link to credits page">
217+
Credits
218+
</a>
219+
</div>
220+
</footer>
221+
222+
<script>
223+
if ('serviceWorker' in navigator) {
224+
window.onload = () => {
225+
navigator.serviceWorker.register(
226+
'/sw.js'
227+
);
228+
}
229+
}
230+
</script>
231+
<!-- Go to Top Button -->
232+
<button id="goTopBtn" class="btn btn-outline circle hide hide-on-print" aria-label="Scroll to top" style="position: fixed; bottom: 1rem; right: 1rem;">
233+
<span aria-hidden="true">
234+
<i class="fa-solid fa-arrow-up" style="font-size: 1.5rem;"></i>
235+
</span>
236+
</button>
237+
<script>
238+
// Go to Top Button logic
239+
(function() {
240+
var btn = document.getElementById('goTopBtn');
241+
window.addEventListener('scroll', function() {
242+
if (window.scrollY > 200) {
243+
btn.classList.remove('hide');
244+
btn.classList.add('show');
245+
} else {
246+
btn.classList.remove('show');
247+
btn.classList.add('hide');
248+
}
249+
});
250+
btn.addEventListener('click', function() {
251+
window.scrollTo({ top: 0, behavior: 'smooth' });
252+
});
253+
})();
254+
</script>
255+
<script src="/js/prism.js"></script>
256+
</body>
257+
</html>
9.45 KB
Loading
6.1 KB
Loading

docs/assets/img/TaskStat_Dark.jpg

77.4 KB
Loading

docs/assets/img/TaskStat_Dark.webp

30.7 KB
Loading
10.9 KB
Loading
6.58 KB
Loading
84.1 KB
Loading

0 commit comments

Comments
 (0)