DISCOVER
WHAT'S NEW
![Cover image for post](/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6NTYsInB1ciI6ImJsb2JfaWQifX0=--0b5797cbd3f959d487695c0431e5b7d445beeb62/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fZmlsbCI6WzE1MCwxNTBdLCJjcm9wIjpbMCwwLDE1MCwxNTBdfSwicHVyIjoidmFyaWF0aW9uIn19--e20d0b5c290ae0aa8f36d9c8b4d81158b8fde221/introducing-bloak.png)
Today we open-sourced Bloak - our in-house Rails engine powering this Blog
![Author image](https://gravatar.com/avatar/38a9a236993db2a8e7e8c7601e01699d.png?s=18)
![Cover image for post](/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6NDYsInB1ciI6ImJsb2JfaWQifX0=--1d984baac6efe61ef751879f385538797b2c31ea/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fZmlsbCI6WzE1MCwxNTBdLCJjcm9wIjpbMCwwLDE1MCwxNTBdfSwicHVyIjoidmFyaWF0aW9uIn19--e20d0b5c290ae0aa8f36d9c8b4d81158b8fde221/adding-a-sitemap-to-rails-app.png)
Optimizing Search Engine Indexing by Adding a Dynamic Sitemap to your Rails Application
![Author image](https://gravatar.com/avatar/38a9a236993db2a8e7e8c7601e01699d.png?s=18)
![Cover image for post](/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6NDIsInB1ciI6ImJsb2JfaWQifX0=--c6a511d4e924a82172be576288615580c611f327/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fZmlsbCI6WzE1MCwxNTBdLCJjcm9wIjpbMCwwLDE1MCwxNTBdfSwicHVyIjoidmFyaWF0aW9uIn19--e20d0b5c290ae0aa8f36d9c8b4d81158b8fde221/announcing-wireguardian-cover.png)
Introducing KUY.io Konnect Enterprise VPN Access Server
![Author image](https://gravatar.com/avatar/38a9a236993db2a8e7e8c7601e01699d.png?s=18)
![Cover image for post](/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MzksInB1ciI6ImJsb2JfaWQifX0=--ded10dcc34d278c574414c3a00f6a25dd116beef/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fZmlsbCI6WzE1MCwxNTBdLCJjcm9wIjpbMCwwLDE1MCwxNTBdfSwicHVyIjoidmFyaWF0aW9uIn19--e20d0b5c290ae0aa8f36d9c8b4d81158b8fde221/devops-vs-devsecops-cover.png)
DevOps vs DevSecOps - The Definitive Guide for your Digital Transformation program
![Author image](https://gravatar.com/avatar/38a9a236993db2a8e7e8c7601e01699d.png?s=18)
![Cover image for post](/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MzUsInB1ciI6ImJsb2JfaWQifX0=--c2307674f7422b335aea19f59419f8b4b17f61a1/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fZmlsbCI6WzE1MCwxNTBdLCJjcm9wIjpbMCwwLDE1MCwxNTBdfSwicHVyIjoidmFyaWF0aW9uIn19--e20d0b5c290ae0aa8f36d9c8b4d81158b8fde221/today-I-learned-cover.png)
Estimating the average reading time for articles and posts in your Ruby on Rails blog
![Author image](https://gravatar.com/avatar/38a9a236993db2a8e7e8c7601e01699d.png?s=18)