Welcome to my site!
This blog is dedicated to chronicling my adventures with various nerdy projects and topics.
---
### Featured Posts
%% DATAVIEW_PUBLISH_CONVERT start
```dataview
TABLE WITHOUT ID
embed(link(cover, "200")) as Cover,
file.link + "</br>" + description as Article
FROM "07 - Publish - Obsidian/Articles"
WHERE
publish = true
AND featured = true
SORT cover DESC, updated DESC
LIMIT 3
```
%%
| Cover | Article |
| --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| ![[99 - Meta/attachments/IMG-cover-series-Automate-Your-Gains.png\|200]] | [[07 - Publish - Obsidian/Articles/A Deep Dive into the 'Automate Your Gains' Workout App UI & Features.md\|A Deep Dive into the 'Automate Your Gains' Workout App UI & Features]]</br>Take a tour of a custom workout logger built with Google Apps Script. See its mobile-friendly UI, dynamic workout planning, "last workout recall," and automated progression features in action. |
| ![[99 - Meta/attachments/IMG-Add Social Links to the Sidebar of an Obsidian Publish Site-20250624215017919.png\|200]] | [[07 - Publish - Obsidian/Articles/Add Social Links to the Sidebar of an Obsidian Publish Site.md\|Add Social Links to the Sidebar of an Obsidian Publish Site]]</br>Customize your Obsidian Publish site by adding social media icons to the sidebar. This step-by-step guide uses simple CSS and JavaScript to create a "Connect" box that appears on every page, enhancing your site's professional look. |
| ![[99 - Meta/attachments/d448b4b337fbbf4e65bd08e3da1598b0_MD5.jpeg\|200]] | [[07 - Publish - Obsidian/Articles/Building a Web App with SQLPage - A Database-First Approach to Workout Tracking.md\|Building a Web App with SQLPage - A Database-First Approach to Workout Tracking]]</br>Explore the journey of rebuilding a workout logger from a serverless Google Apps Script and Google Sheets model to a robust, containerized (Docker) SQLPage application. Discover the advantages of a database-first architecture, enhanced data integrity, and automated DevOps tooling in this deep dive. |
%% DATAVIEW_PUBLISH_CONVERT end %%
---
### Recent Posts
%% DATAVIEW_PUBLISH_CONVERT start
```dataview
TABLE WITHOUT ID
published as Date,
file.link as Title
FROM
"07 - Publish - Obsidian/Articles"
WHERE
publish = true
AND !contains(file.folder, "Series")
AND !contains(file.folder, "Categories")
SORT published DESC,
title ASC
LIMIT 12
```
%%
| Date | Title |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| July 13, 2025 | [[07 - Publish - Obsidian/Articles/Building a Web App with SQLPage - A Database-First Approach to Workout Tracking.md\|Building a Web App with SQLPage - A Database-First Approach to Workout Tracking]] |
| June 28, 2025 | [[07 - Publish - Obsidian/Articles/Obsidian Publish Workflow - Automating Publication Prep.md\|Obsidian Publish Workflow - Automating Publication Prep]] |
| June 24, 2025 | [[07 - Publish - Obsidian/Articles/A Deep Dive into the 'Automate Your Gains' Workout App UI & Features.md\|A Deep Dive into the 'Automate Your Gains' Workout App UI & Features]] |
| June 23, 2025 | [[07 - Publish - Obsidian/Articles/Add Social Links to the Sidebar of an Obsidian Publish Site.md\|Add Social Links to the Sidebar of an Obsidian Publish Site]] |
| June 21, 2025 | [[07 - Publish - Obsidian/Articles/Automate Your Gains, Part 6 - When to Scale Your Google Apps Script Project.md\|Automate Your Gains, Part 6 - When to Scale Your Google Apps Script Project]] |
| June 20, 2025 | [[07 - Publish - Obsidian/Articles/Add Social Links to the Footer of an Obsidian Publish Site.md\|Add Social Links to the Footer of an Obsidian Publish Site]] |
| June 18, 2025 | [[07 - Publish - Obsidian/Articles/Automate Your Gains, Part 5 - Code Smart Automation for Your Fitness App.md\|Automate Your Gains, Part 5 - Code Smart Automation for Your Fitness App]] |
| June 14, 2025 | [[07 - Publish - Obsidian/Articles/SQLPage Authentication on a Homelab - A Cookie Conundrum.md\|SQLPage Authentication on a Homelab - A Cookie Conundrum]] |
| June 12, 2025 | [[07 - Publish - Obsidian/Articles/Automate Your Gains, Part 4 - Read & Display Data from Google Sheets in Your App.md\|Automate Your Gains, Part 4 - Read & Display Data from Google Sheets in Your App]] |
| June 08, 2025 | [[07 - Publish - Obsidian/Articles/Automate Your Gains, Part 3 - Save Form Data to Google Sheets with Apps Script.md\|Automate Your Gains, Part 3 - Save Form Data to Google Sheets with Apps Script]] |
| June 05, 2025 | [[07 - Publish - Obsidian/Articles/Automate Your Gains, Part 2 - Build a Workout App UI with Apps Script.md\|Automate Your Gains, Part 2 - Build a Workout App UI with Apps Script]] |
| June 01, 2025 | [[07 - Publish - Obsidian/Articles/Automate Your Gains, Part 1 - Plan a Custom Workout App with Google Sheets.md\|Automate Your Gains, Part 1 - Plan a Custom Workout App with Google Sheets]] |
%% DATAVIEW_PUBLISH_CONVERT end %%