41554 blogs · [ { "id": "01a087a4-d6dd-70cf-9a3c-ae26517ddb02", "title": "Encoding an Object as a String in Swift", "url": "https://michaelenger.com/blog/swift-encodable-string", "published_at": "2026-07-27T23:20:00+00:00" }, { "id": "01a087a4-d6dd-70cf-9a3c-ae2651d48e4b", "title": "I Love the Computer", "url": "https://michaelenger.com/blog/i-love-the-computer", "published_at": "2026-06-06T22:13:00+00:00" }, { "id": "01a087a4-d6dd-70cf-9a3c-ae2652afd697", "title": "Physical Media is Pretty Cool", "url": "https://michaelenger.com/blog/physical-media-cool", "published_at": "2026-04-19T13:11:00+00:00" }, { "id": "01a087a4-d6dd-70cf-9a3c-ae26533f64dc", "title": "Making a Single-Binary Website Using Rust", "url": "https://michaelenger.com/blog/rust-single-binary-website", "published_at": "2025-12-14T20:44:29+00:00" }, { "id": "01a087a4-d6dd-70cf-9a3c-ae26533fb6c8", "title": "Make Your Own Website", "url": "https://michaelenger.com/blog/make-your-own-website", "published_at": "2025-11-17T22:59:12+00:00" }, { "id": "01a087a4-d6dd-70cf-9a3c-ae26537ab223", "title": "Does Death Belong in Adventure Games?", "url": "https://michaelenger.com/blog/death-adventure-games", "published_at": "2025-09-18T12:59:12+00:00" }, { "id": "01a087a4-d6dd-70cf-9a3c-ae2653bb9322", "title": "An Amateur's Guide to Mixing Live Music", "url": "https://michaelenger.com/blog/amateur-live-mixing", "published_at": "2025-08-10T17:18:41+00:00" }, { "id": "01a087a4-d6dd-70cf-9a3c-ae2654338a76", "title": "Export-Driven Development", "url": "https://michaelenger.com/blog/export-driven-development", "published_at": "2025-06-23T08:15:12+00:00" }, { "id": "01a087a4-d6dd-70cf-9a3c-ae26544c959c", "title": "Putting On a Show in London", "url": "https://michaelenger.com/blog/london-concert-booking", "published_at": "2025-03-07T21:45:11+00:00" }, { "id": "01a087a4-d6dd-70cf-9a3c-ae2654940778", "title": "Lovely Little Game Interactions", "url": "https://michaelenger.com/blog/interactive-game-objects", "published_at": "2024-12-14T11:55:19+00:00" }, { "id": "01a087a4-d6dd-70cf-9a3c-ae2654aa6446", "title": "Reading Current Mouse Position in SwiftUI", "url": "https://michaelenger.com/blog/swiftui-mouse-position", "published_at": "2024-11-28T21:29:37+00:00" }, { "id": "01a087a4-d6dd-70cf-9a3c-ae2654c2d7cf", "title": "Nobody is Taking My EDGE Away", "url": "https://michaelenger.com/blog/edge-magazine", "published_at": "2024-10-03T20:18:00+00:00" }, { "id": "01a087a4-d6dd-70cf-9a3c-ae2654c32e04", "title": "raylib vs. Godot: A Highly Subjective Comparison", "url": "https://michaelenger.com/blog/game-engine-research", "published_at": "2024-09-02T00:00:00+00:00" }, { "id": "01a087a4-d6dd-70cf-9a3c-ae2654e16b4a", "title": "Seeding RNG Without the Current Time", "url": "https://michaelenger.com/blog/rng-seed-no-time", "published_at": "2024-03-08T00:00:00+00:00" }, { "id": "01a087a4-d6dd-70cf-9a3c-ae2654e4d9ed", "title": "2023 In Review", "url": "https://michaelenger.com/blog/2023-in-review", "published_at": "2024-01-07T00:00:00+00:00" }, { "id": "01a087a4-d6dd-70cf-9a3c-ae265542713c", "title": "The Mac Needs Proton", "url": "https://michaelenger.com/blog/mac-needs-proton", "published_at": "2023-12-16T00:00:00+00:00" }, { "id": "01a087a4-d6dd-70cf-9a3c-ae26559610ab", "title": "Implementing Search for a Pure Frontend Application", "url": "https://michaelenger.com/blog/frontend-search-engine", "published_at": "2023-11-08T00:00:00+00:00" }, { "id": "01a087a4-d6dd-70cf-9a3c-ae2655eed041", "title": "Why I Pay For Search", "url": "https://michaelenger.com/blog/why-i-pay-for-search", "published_at": "2023-09-10T00:00:00+00:00" }, { "id": "01a087a4-d6dd-70cf-9a3c-ae2656e25169", "title": "Using JSON as a Data Store for a TypeScript Application", "url": "https://michaelenger.com/blog/json-datastore", "published_at": "2023-08-28T00:00:00+00:00" }, { "id": "01a087a4-d6dd-70cf-9a3c-ae2656eda689", "title": "Brage 2.0: Redesigning My Static Site Generator", "url": "https://michaelenger.com/blog/brage-2-point-0", "published_at": "2023-08-10T00:00:00+00:00" }, { "id": "01a087a4-d6dd-70cf-9a3c-ae26571f6722", "title": "Hello, world!", "url": "https://michaelenger.com/blog/hello-world", "published_at": "2023-08-09T00:00:00+00:00" } ] posts Claim your blog
Back to Michael Enger
Blog · corpus.blog/blogs/michaelenger.com/posts

Michael Enger

michaelenger.com

2026

2025

2024

2023