Stop bot attacks before they hit your DB. Beyond reCAPTCHA, consider
Honeypots: Zero user friction.
Cloudflare Turnstile: Privacy-first & invisible.
Rate Limiting: Stop them at the edge.
Every form especially "hidden" legacy ones needs a shield. 🛡️
Stop bot attacks before they hit your DB. Beyond reCAPTCHA, consider
Honeypots: Zero user friction.
Cloudflare Turnstile: Privacy-first & invisible.
Rate Limiting: Stop them at the edge.
Every form especially "hidden" legacy ones needs a shield. 🛡️
One forgotten form is all it takes for a bot attack to disrupt your site.
We recently caught a spam storm on a "hidden" legacy form. Audit every entry point—if it accepts input, it needs reCAPTCHA or bot protection. No exceptions.
Building custom property editors in CMS 13? Good news: you can finally drop Dojo. 🚀
Modern JS frameworks like React are now supported via the JS SDK. No more legacy UI lock-in just a massive DX win for your team.
#Optimizely
I'm going to keep going on about this until everyone I know joins =)
https://app.daily.dev/squads/optimizelytech
Please join my #Optimizely community on daily.dev great place to share articles and insights into the platform
Staying on top of CMS updates is a full-time job. Let's make it easier. Join the Optimizely Tech Squad on daily.dev to share resources, solve DX headaches, and connect with other developers.
Join us: https://app.daily.dev/squads/optimizelytech #Optimizely #DotNet
Optimizely CMS 13 breaking change alert.
GetContentTypePropertyDisplayName is being retired. If you rely on this for custom UI or labels, it’s time to refactor.
Inject IDisplayNameResolver instead. Another step toward standard .NET patterns and away from static helpers.