corpus.blog
Most cited
Talked about
Blogs
41554 blogs · [ { "id": "01a0878d-4f43-70d2-b8e7-43117e882b1a", "title": "Use a custom primary key for local Google accounts", "url": "https://www.jerriepelser.com/posts/local-google-accounts-custom-id/", "published_at": "2026-09-08T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-4311782f3990", "title": "Create local user accounts for Google logins", "url": "https://www.jerriepelser.com/posts/create-local-user-accounts-for-google-login/", "published_at": "2026-09-07T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-43117f36da40", "title": "Managing test users for Google authentication", "url": "https://www.jerriepelser.com/posts/manage-test-users-google-authentication/", "published_at": "2026-09-01T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-4311822b0f83", "title": "Restricting Google logins based on the user's domain", "url": "https://www.jerriepelser.com/posts/restricting-google-authentication-users-based-on-domain/", "published_at": "2026-08-31T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-43117916460c", "title": "Add Google authentication to ASP.NET Core (without Identity)", "url": "https://www.jerriepelser.com/posts/google-authentication-aspnet-core-without-identity/", "published_at": "2026-08-28T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-43117effb6b2", "title": "Lossless JSON round-tripping in C# with JsonExtensionData", "url": "https://www.jerriepelser.com/posts/lossless-json-round-tripping-with-json-extensiondata/", "published_at": "2026-08-26T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-431184419407", "title": "Switching to Omarchy: Replacing iCloud Drive for files", "url": "https://www.jerriepelser.com/posts/switching-to-omarchy-part-3/", "published_at": "2026-04-07T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-431183b87d78", "title": "Switching to Omarchy: It's Neovim after all", "url": "https://www.jerriepelser.com/posts/switching-to-omarchy-part-2/", "published_at": "2026-04-06T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-431182f3544c", "title": "Switching to Omarchy: The first 24 hours", "url": "https://www.jerriepelser.com/posts/switching-to-omarchy-part-1/", "published_at": "2026-04-03T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-43118119d869", "title": "Prevent plus-addressing abuse with a primary email", "url": "https://www.jerriepelser.com/posts/prevent-plus-addressing-part-3/", "published_at": "2026-02-20T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-431180762b4e", "title": "Prevent plus-addressing abuse with normalized emails", "url": "https://www.jerriepelser.com/posts/prevent-plus-addressing-part-2/", "published_at": "2026-02-18T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-4311800e2212", "title": "Disallow application signups with emails containing a plus", "url": "https://www.jerriepelser.com/posts/prevent-plus-addressing-part-1/", "published_at": "2026-02-16T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-43117d1411e0", "title": "Learning Thai with AI: Enriching my Thai vocab with AI", "url": "https://www.jerriepelser.com/posts/learning-thai-with-ai-part-5/", "published_at": "2026-02-08T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-43117c51758c", "title": "Learning Thai with AI: Cleaning up my Thai words", "url": "https://www.jerriepelser.com/posts/learning-thai-with-ai-part-4/", "published_at": "2026-01-30T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-43117b88bcb3", "title": "Learning Thai with AI: Cleaning up parts of speech", "url": "https://www.jerriepelser.com/posts/learning-thai-with-ai-part-3/", "published_at": "2026-01-28T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-43117b3cb3f0", "title": "Learning Thai with AI: Exporting and Importing cards", "url": "https://www.jerriepelser.com/posts/learning-thai-with-ai-part-2/", "published_at": "2026-01-27T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-43117a5b4f45", "title": "Learning Thai with AI: Preparing the AI prompts", "url": "https://www.jerriepelser.com/posts/learning-thai-with-ai-part-1/", "published_at": "2026-01-26T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-4311817ba9f8", "title": "How I publish scheduled content with Relay.app", "url": "https://www.jerriepelser.com/posts/publish-astro-website-relay-app/", "published_at": "2025-04-29T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-43118585e944", "title": "End-to-end API testing with Flurl HTTP testing library", "url": "https://www.jerriepelser.com/posts/text-api-clients-flurl/", "published_at": "2025-04-22T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-431182283174", "title": "Automatically refresh access tokens for 3rd party services", "url": "https://www.jerriepelser.com/posts/refresh-third-party-access-tokens/", "published_at": "2025-04-15T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-431178cfd8e4", "title": "Debug ASP.NET Core OAuth authorization flows with Proxyman", "url": "https://www.jerriepelser.com/posts/debug-aspnet-core-oauth-authorization-flows/", "published_at": "2025-04-10T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-43118611da38", "title": "Return popup window response with the Broadcast Channel API", "url": "https://www.jerriepelser.com/posts/use-broadcast-channel-api-inter-browser-window-communication/", "published_at": "2025-04-07T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-431186d49e78", "title": "Using Pushed Authorization Requests (PAR) with OpenIddict", "url": "https://www.jerriepelser.com/posts/using-openiddict-par-support/", "published_at": "2025-03-27T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-431177f02595", "title": "AdminUI for OpenIddict: A gentle introduction", "url": "https://www.jerriepelser.com/posts/admin-ui-for-openiddict-intro/", "published_at": "2025-03-11T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-4311795c091e", "title": "Implement user-facing logs with ASP.NET Core and Serilog", "url": "https://www.jerriepelser.com/posts/implement-user-facing-log-files/", "published_at": "2025-02-25T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-43117db58879", "title": "Limiting API callers to specific IP Addresses", "url": "https://www.jerriepelser.com/posts/limiting-api-callers-specific-ip-addresses/", "published_at": "2024-12-10T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-431182ac172b", "title": "Squash EF Core migrations", "url": "https://www.jerriepelser.com/posts/squash-ef-core-migrations/", "published_at": "2024-12-03T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-43117907943d", "title": "Disable ASP.NET Core Status Code pages for FastEndpoints", "url": "https://www.jerriepelser.com/posts/disable-status-code-page-fast-endpoints/", "published_at": "2024-11-25T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-43117fbcd4e0", "title": "My process for creating API clients", "url": "https://www.jerriepelser.com/posts/my-process-creating-api-clients/", "published_at": "2024-11-24T00:00:00+00:00" }, { "id": "01a0878d-4f43-70d2-b8e7-431184a39686", "title": "Serializing audit information with System.Text.Json", "url": "https://www.jerriepelser.com/posts/system-text-json-customize-serialization-contract/", "published_at": "2024-09-24T00:00:00+00:00" } ] posts
Claim your blog
Back to jerriepelser.com
Blog · corpus.blog/blogs/jerriepelser.com/posts
jerriepelser.com
jerriepelser.com
2026
Use a custom primary key for local Google accounts
original ↗
8 Sept 2026
Create local user accounts for Google logins
original ↗
7 Sept 2026
Managing test users for Google authentication
original ↗
1 Sept 2026
Restricting Google logins based on the user's domain
original ↗
31 Aug 2026
Add Google authentication to ASP.NET Core (without Identity)
original ↗
28 Aug 2026
Lossless JSON round-tripping in C# with JsonExtensionData
original ↗
26 Aug 2026
Switching to Omarchy: Replacing iCloud Drive for files
original ↗
7 Apr 2026
Switching to Omarchy: It's Neovim after all
original ↗
6 Apr 2026
Switching to Omarchy: The first 24 hours
original ↗
3 Apr 2026
Prevent plus-addressing abuse with a primary email
original ↗
20 Feb 2026
Prevent plus-addressing abuse with normalized emails
original ↗
18 Feb 2026
Disallow application signups with emails containing a plus
original ↗
16 Feb 2026
Learning Thai with AI: Enriching my Thai vocab with AI
original ↗
8 Feb 2026
Learning Thai with AI: Cleaning up my Thai words
original ↗
30 Jan 2026
Learning Thai with AI: Cleaning up parts of speech
original ↗
28 Jan 2026
Learning Thai with AI: Exporting and Importing cards
original ↗
27 Jan 2026
Learning Thai with AI: Preparing the AI prompts
original ↗
26 Jan 2026
2025
How I publish scheduled content with Relay.app
original ↗
29 Apr 2025
End-to-end API testing with Flurl HTTP testing library
original ↗
22 Apr 2025
Automatically refresh access tokens for 3rd party services
original ↗
15 Apr 2025
Debug ASP.NET Core OAuth authorization flows with Proxyman
original ↗
10 Apr 2025
Return popup window response with the Broadcast Channel API
original ↗
7 Apr 2025
Using Pushed Authorization Requests (PAR) with OpenIddict
original ↗
27 Mar 2025
AdminUI for OpenIddict: A gentle introduction
original ↗
11 Mar 2025
Implement user-facing logs with ASP.NET Core and Serilog
original ↗
25 Feb 2025
2024
Limiting API callers to specific IP Addresses
original ↗
10 Dec 2024
Squash EF Core migrations
original ↗
3 Dec 2024
Disable ASP.NET Core Status Code pages for FastEndpoints
original ↗
25 Nov 2024
My process for creating API clients
original ↗
24 Nov 2024
Serializing audit information with System.Text.Json
original ↗
24 Sept 2024