<feed xmlns="http://www.w3.org/2005/Atom"> <id>https://www.lilback.com/</id><title>Mark Lilback</title><subtitle>Personal blog of Mark Lilback — full-stack developer, gamer, and software architect living in Pittsburgh, PA.</subtitle> <updated>2026-05-18T19:35:18-04:00</updated> <author> <name>Mark Lilback</name> <uri>https://www.lilback.com/</uri> </author><link rel="self" type="application/atom+xml" href="https://www.lilback.com/feed.xml"/><link rel="alternate" type="text/html" hreflang="en" href="https://www.lilback.com/"/> <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator> <rights> © 2026 Mark Lilback </rights> <icon>/assets/img/favicons/favicon.ico</icon> <logo>/assets/img/favicons/favicon-96x96.png</logo> <entry><title>Introducing Alcove</title><link href="https://www.lilback.com/introducing-alcove/" rel="alternate" type="text/html" title="Introducing Alcove" /><published>2026-05-17T19:19:44-04:00</published> <updated>2026-05-17T19:19:44-04:00</updated> <id>https://www.lilback.com/introducing-alcove/</id> <content type="text/html" src="https://www.lilback.com/introducing-alcove/" /> <author> <name>mlilback</name> </author> <category term="Alcove" /> <category term="Apple" /> <category term="Programming" /> <summary>For the first time in a very long time, I’m working on a project for the Apple ecosystem. I’m now devoting my spare time to Alcove. It is an ebook library manager (and eventually a reader) for Mac, iPad, and eventually iPhone. It uses iCloud to (optionally) sync libraries and their books. You can have multiple libraries and switch between them. It can import DRM-free ebooks, PDFs, and mobi/azw...</summary> </entry> <entry><title>An update on my life (2026)</title><link href="https://www.lilback.com/life-update-2026/" rel="alternate" type="text/html" title="An update on my life (2026)" /><published>2026-05-09T17:21:13-04:00</published> <updated>2026-05-13T14:30:54-04:00</updated> <id>https://www.lilback.com/life-update-2026/</id> <content type="text/html" src="https://www.lilback.com/life-update-2026/" /> <author> <name>mlilback</name> </author> <category term="Personal" /> <summary>A lot has changed in my life the last five years, I plan to start blogging again, so I figured an update is past due. I moved to downtown Pittsburgh in April 2021, met a wonderful woman named Trish, and moved in with her in April 2023 at her house in Munhall, a suburb South of Pittsburgh. I continued working on Rc² which morphed into NoteCalc, then Enlighten as the goals and target market cha...</summary> </entry> <entry><title>Resizing an image's file size on iOS</title><link href="https://www.lilback.com/compress-image-ios/" rel="alternate" type="text/html" title="Resizing an image&amp;apos;s file size on iOS" /><published>2023-01-11T19:12:31-05:00</published> <updated>2026-02-27T13:45:48-05:00</updated> <id>https://www.lilback.com/compress-image-ios/</id> <content type="text/html" src="https://www.lilback.com/compress-image-ios/" /> <author> <name>mlilback</name> </author> <category term="General" /> <summary>I’ve been playing Marvel Snap a lot recently and wanted to share screen shots on Discord. However, free Discord has an 8 MB file upload limit. So I created this shortcut Select it from the share sheet when viewing the screen shot and it will make a duplicate that is a lot smaller and can be uploaded to Discord. When you click on that link from your iOS device, it should offer to install it. ...</summary> </entry> <entry><title>Using a Typescript custom transformer in Quasar</title><link href="https://www.lilback.com/quasar-tsloader/" rel="alternate" type="text/html" title="Using a Typescript custom transformer in Quasar" /><published>2022-03-30T09:48:37-04:00</published> <updated>2026-02-27T13:45:48-05:00</updated> <id>https://www.lilback.com/quasar-tsloader/</id> <content type="text/html" src="https://www.lilback.com/quasar-tsloader/" /> <author> <name>mlilback</name> </author> <category term="Programming" /> <summary>I’m working on a few projects using Quasar and Typescript. I got tired of writing my own type guards, and found ts-type-checked which ends up working great. They have an example for webpack, but quasar does some tricks behind the scenes that required a different configuration. Here’s a snippet of my quasar.config.js that involves getting this to work: const { configure } = require("quasar/wr...</summary> </entry> <entry><title>Validating a Tree in Yup with Typescript</title><link href="https://www.lilback.com/typescript-yup-tree/" rel="alternate" type="text/html" title="Validating a Tree in Yup with Typescript" /><published>2022-01-07T13:35:17-05:00</published> <updated>2026-02-27T13:45:48-05:00</updated> <id>https://www.lilback.com/typescript-yup-tree/</id> <content type="text/html" src="https://www.lilback.com/typescript-yup-tree/" /> <author> <name>mlilback</name> </author> <category term="Programming" /> <summary>I’ve been working in Typescript lately using Yup for validating my objects. The site I’m working on has a tree of categories, so I needed a way to model this and validate the objects. I couldn’t find an example of how to do this, so I figured it out and this post is to document this for my future self and others. import * as yup from 'yup' const baseSchema = yup.object({ name: yup.string(...</summary> </entry> </feed>
