41554 blogs · [ { "id": "01a0e2bb-ecfd-71bc-a78a-3e2821711a17", "title": null, "url": "https://petr.codes/projects/quick-access-for-pass/", "published_at": "2026-06-11T22:00:00+00:00" }, { "id": "01a0e2bb-ecfd-71bc-a78a-3e282244caf3", "title": null, "url": "https://petr.codes/projects/verquest/", "published_at": "2025-06-24T22:00:00+00:00" }, { "id": "01a087c0-fd06-71dc-a020-39ac27d78669", "title": "Versioning API requests", "url": "https://petr.codes/blog/rails/versioning-api-requests/", "published_at": "2025-06-22T22:00:00+00:00" }, { "id": "01a0e2bb-ecfd-71bc-a78a-3e281ad79c38", "title": null, "url": "https://petr.codes/", "published_at": "2025-06-22T22:00:00+00:00" }, { "id": "01a0e2bb-ecfd-71bc-a78a-3e281b3f1e3f", "title": null, "url": "https://petr.codes/blog/", "published_at": "2025-06-22T22:00:00+00:00" }, { "id": "01a0e2bb-ecfd-71bc-a78a-3e281b7fb090", "title": null, "url": "https://petr.codes/projects/", "published_at": "2025-06-22T22:00:00+00:00" }, { "id": "01a0e2bb-ecfd-71bc-a78a-3e281c32173b", "title": null, "url": "https://petr.codes/now/", "published_at": "2025-06-22T22:00:00+00:00" }, { "id": "01a087c0-fd06-71dc-a020-39ac28d49c14", "title": "Flexible API Versioning with Rails", "url": "https://petr.codes/blog/rails/flexible-api-versioning-with-rails/", "published_at": "2025-02-08T23:00:00+00:00" }, { "id": "01a087c0-fd06-71dc-a020-39ac298f3fd0", "title": "Gem Credentials Management with Gemstash", "url": "https://petr.codes/blog/ruby/gem-credentials-management-with-gemstash/", "published_at": "2023-11-12T23:00:00+00:00" }, { "id": "01a087c0-fd06-71dc-a020-39ac29ead2cb", "title": "Business logic in Rails with operators", "url": "https://petr.codes/blog/rails/business-logic-with-operators/", "published_at": "2021-10-18T22:00:00+00:00" }, { "id": "01a087c0-fd06-71dc-a020-39ac2a9b1557", "title": "Fun with Rails Enums and PORO", "url": "https://petr.codes/blog/rails/fun-with-enums-and-poro/", "published_at": "2021-10-04T22:00:00+00:00" }, { "id": "01a087c0-fd06-71dc-a020-39ac2abfd84a", "title": "Multi-Factor Authentication for Rails with WebAuthn and Devise", "url": "https://petr.codes/blog/rails/multi-factor-2fa-authentication-rails-webauthn-devise/", "published_at": "2021-09-26T22:00:00+00:00" }, { "id": "01a087c0-fd06-71dc-a020-39ac2b9a3853", "title": "Modern Rails flash messages (part 3): Refactoring with Turbo", "url": "https://petr.codes/blog/rails/modern-rails-flash-messages/part-3/", "published_at": "2021-07-06T22:00:00+00:00" }, { "id": "01a087c0-fd06-71dc-a020-39ac2c2adbd3", "title": "How to generate sitemap.xml with Bridgetown", "url": "https://petr.codes/blog/bridgetown/sitemap-generation/", "published_at": "2021-03-27T23:00:00+00:00" }, { "id": "01a087c0-fd06-71dc-a020-39ac2d23af7f", "title": "Using Dokku with Let’s Encrypt wildcard certificate", "url": "https://petr.codes/blog/dokku/wildcard-certificate/", "published_at": "2021-03-20T23:00:00+00:00" }, { "id": "01a087c0-fd06-71dc-a020-39ac2dd8a3b0", "title": "Modern Rails flash messages (part 2): The undo action for deleted items", "url": "https://petr.codes/blog/rails/modern-rails-flash-messages/part-2/", "published_at": "2020-09-19T22:00:00+00:00" }, { "id": "01a0e2bb-ecfd-71bc-a78a-3e2820cd56b3", "title": null, "url": "https://petr.codes/blog/rails/modern-rails-flash-messages/part-1/", "published_at": "2020-09-19T22:00:00+00:00" } ] posts Claim your blog
Back to petr.codes
Blog · corpus.blog/blogs/petr.codes/posts

petr.codes

petr.codes

2026

2025

2023

2021

2020