1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 5 <title>Stop Trusting Cloud Providers: Secure Your Data with LUKSboxâs Client-Side Encryption, a Free & Open-source App</title> 6 <meta charset="utf-8"> 7 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 8 9 <link rel="preload" as="style" href="/assets/built/screen.css?v=60011aa0bc"> 10 <link rel="preload" as="script" href="/assets/built/source.js?v=60011aa0bc"> 11 12 <link rel="preload" as="font" type="font/woff2" href="/assets/fonts/inter-roman.woff2?v=60011aa0bc" crossorigin="anonymous"> 13<style> 14 @font-face { 15 font-family: "Inter"; 16 font-style: normal; 17 font-weight: 100 900; 18 font-display: optional; 19 src: url(/assets/fonts/inter-roman.woff2?v=60011aa0bc) format("woff2"); 20 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 21 } 22</style> 23 24 <link rel="stylesheet" type="text/css" href="/assets/built/screen.css?v=60011aa0bc"> 25 26 <style> 27 :root { 28 --background-color: #ffffff 29 } 30 </style> 31 32
32<script type="4406c2f53d7bfc4ef69efdfe-text/javascript"> 33 /* The script for calculating the color contrast has been taken from 34 https://gomakethings.com/dynamically-changing-the-text-color-based-on-background-color-contrast-with-vanilla-js/ */ 35 var accentColor = getComputedStyle(document.documentElement).getPropertyValue('--background-color'); 36 accentColor = accentColor.trim().slice(1); 37 38 if (accentColor.length === 3) { 39 accentColor = accentColor[0] + accentColor[0] + accentColor[1] + accentColor[1] + accentColor[2] + accentColor[2]; 40 } 41 42 var r = parseInt(accentColor.substr(0, 2), 16); 43 var g = parseInt(accentColor.substr(2, 2), 16); 44 var b = parseInt(accentColor.substr(4, 2), 16); 45 var yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000; 46 var textColor = (yiq >= 128) ? 'dark' : 'light'; 47 48 document.documentElement.className = `has-${textColor}-text`; 49 </script>
49 50 51 <link rel="icon" href="https://medevel.com/content/images/size/w256h256/2019/01/artificial-intelligence--1--1.png" type="image/png"> 52 <link rel="canonical" href="https://medevel.com/luksbox-app/"> 53 <meta name="referrer" content="no-referrer-when-downgrade"> 54 55 <meta property="og:site_name" content="MEDevel.com | Open-source Apps for Healthcare and Enterprise"> 56 <meta property="og:type" content="article"> 57 <meta property="og:title" content="Stop Trusting Cloud Providers: Secure Your Data with LUKSboxâs Client-Side Encryption, a Free & Open-source App"> 58 <meta property="og:description" content="LUKSbox is an open-source, Rust-based tool that creates encrypted vaults (.lbx files) designed for secure storage on untrusted media like cloud services or shared drives. It encrypts data client-side using FIDO2 and TPM 2.0 hardware keys, ensuring providers cannot access your files even under legal compulsion, while also offering"> 59 <meta property="og:url" content="https://medevel.com/luksbox-app/"> 60 <meta property="og:image" content="https://medevel.com/content/images/2026/09/Screenshot-2026-09-21-at-15.55.57.png"> 61 <meta property="article:published_time" content="2026-09-21T12:56:47.000Z"> 62 <meta property="article:modified_time" content="2026-09-21T12:56:47.000Z"> 63 <meta property="article:tag" content="AI Safety &amp; Security"> 64 <meta property="article:tag" content="Cybersecurity"> 65 <meta property="article:tag" content="EHR security"> 66 <meta property="article:tag" content="healthcare cybersecurity"> 67 <meta property="article:tag" content="home security"> 68 <meta property="article:tag" content="security"> 69 <meta property="article:tag" content="Healthcare Privacy"> 70 <meta property="article:tag" content="disk encryption"> 71 <meta property="article:tag" content="Cryptocurrency"> 72 73 <meta property="article:publisher" content="https://www.facebook.com/medevelcom/"> 74 <meta name="twitter:card" content="summary_large_image"> 75 <meta name="twitter:title" content="Stop Trusting Cloud Providers: Secure Your Data with LUKSboxâs Client-Side Encryption, a Free & Open-source App"> 76 <meta name="twitter:description" content="LUKSbox is an open-source, Rust-based tool that creates encrypted vaults (.lbx files) designed for secure storage on untrusted media like cloud services or shared drives. It encrypts data client-side using FIDO2 and TPM 2.0 hardware keys, ensuring providers cannot access your files even under legal compulsion, while also offering"> 77 <meta name="twitter:url" content="https://medevel.com/luksbox-app/"> 78 <meta name="twitter:image" content="https://medevel.com/content/images/2026/09/Screenshot-2026-09-21-at-15.55.57.png"> 79 <meta name="twitter:label1" content="Written by"> 80 <meta name="twitter:data1" content="Hamza Musa"> 81 <meta name="twitter:label2" content="Filed under"> 82 <meta name="twitter:data2" content="AI Safety & Security, Cybersecurity, EHR security, healthcare cybersecurity, home security, security, Healthcare Privacy, disk encryption, Cryptocurrency"> 83 <meta name="twitter:site" content="@medevelcom"> 84 <meta name="twitter:creator" content="@medevelcom"> 85 <meta property="og:image:width" content="647"> 86 <meta property="og:image:height" content="312"> 87 88
88<script type="application/ld+json"> 89{ 90 "@context": "https://schema.org", 91 "@type": "Article", 92 "publisher": { 93 "@type": "Organization", 94 "name": "MEDevel.com | Open-source Apps for Healthcare and Enterprise", 95 "url": "https://medevel.com/", 96 "logo": { 97 "@type": "ImageObject", 98 "url": "https://medevel.com/content/images/2022/12/MD_Aug_2022-logo.png", 99 "width": 60, 100 "height": 60 101 } 102 }, 103 "author": { 104 "@type": "Person", 105 "name": "Hamza Musa", 106 "image": { 107 "@type": "ImageObject", 108 "url": "https://www.gravatar.com/avatar/ec3292466c215a2700318e062ca63109?s=250&r=x&d=mp", 109 "width": 250, 110 "height": 250 111 }, 112 "url": "https://medevel.com/author/hazem/", 113 "sameAs": [ 114 "https://medevel.com/", 115 "https://twitter.com/medevelcom" 116 ] 117 }, 118 "headline": "Stop Trusting Cloud Providers: Secure Your Data with LUKSboxâs Client-Side Encryption, a Free & Open-source App", 119 "url": "https://medevel.com/luksbox-app/", 120 "datePublished": "2026-09-21T12:56:47.000Z", 121 "dateModified": "2026-09-21T12:56:47.000Z", 122 "image": { 123 "@type": "ImageObject", 124 "url": "https://medevel.com/content/images/2026/09/Screenshot-2026-09-21-at-15.55.57.png", 125 "width": 647, 126 "height": 312 127 },
128 "keywords": "AI Safety & Security, Cybersecurity, EHR security, healthcare cybersecurity, home security, security, Healthcare Privacy, disk encryption, Cryptocurrency", 129 "description": "LUKSbox is an open-source, Rust-based tool that creates encrypted vaults (.lbx files) designed for secure storage on untrusted media like cloud services or shared drives. It encrypts data client-side using FIDO2 and TPM 2.0 hardware keys, ensuring providers cannot access your files even under legal compulsion, while also offering post-quantum cryptography readiness via ML-KEM hybrids.\n\nThe system provides tamper-evidence through per-chunk AEAD encryption and anchor sidecars, making it ideal for ", 130 "mainEntityOfPage": "https://medevel.com/luksbox-app/" 131} 132 </script>
132 133 134 <meta name="generator" content="Ghost 5.107"> 135 <link rel="alternate" type="application/rss+xml" title="MEDevel.com | Open-source Apps for Healthcare and Enterprise" href="https://medevel.com/rss/"> 136
136<script defer src="https://cdn.jsdelivr.net/ghost/portal@~2.48/umd/portal.min.js" data-i18n="true" data-ghost="https://medevel.com/" data-key="cdcd8ee403a2b41ac277d5a564" data-api="https://medevel.com/ghost/api/content/" data-locale="en" crossorigin="anonymous" type="4406c2f53d7bfc4ef69efdfe-text/javascript"></script>
136<style id="gh-members-styles">.gh-post-upgrade-cta-content, 137.gh-post-upgrade-cta { 138 display: flex; 139 flex-direction: column; 140 align-items: center; 141 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; 142 text-align: center; 143 width: 100%; 144 color: #ffffff; 145 font-size: 16px; 146} 147 148.gh-post-upgrade-cta-content { 149 border-radius: 8px; 150 padding: 40px 4vw; 151} 152 153.gh-post-upgrade-cta h2 { 154 color: #ffffff; 155 font-size: 28px; 156 letter-spacing: -0.2px; 157 margin: 0; 158 padding: 0; 159} 160 161.gh-post-upgrade-cta p { 162 margin: 20px 0 0; 163 padding: 0; 164} 165 166.gh-post-upgrade-cta small { 167 font-size: 16px; 168 letter-spacing: -0.2px; 169} 170 171.gh-post-upgrade-cta a { 172 color: #ffffff; 173 cursor: pointer; 174 font-weight: 500; 175 box-shadow: none; 176 text-decoration: underline; 177} 178 179.gh-post-upgrade-cta a:hover { 180 color: #ffffff; 181 opacity: 0.8; 182 box-shadow: none; 183 text-decoration: underline; 184} 185 186.gh-post-upgrade-cta a.gh-btn { 187 display: block; 188 background: #ffffff; 189 text-decoration: none; 190 margin: 28px 0 0; 191 padding: 8px 18px; 192 border-radius: 4px; 193 font-size: 16px; 194 font-weight: 600; 195} 196 197.gh-post-upgrade-cta a.gh-btn:hover { 198 opacity: 0.92; 199}</style> 200
200<script defer src="https://cdn.jsdelivr.net/ghost/sodo-search@~1.5/umd/sodo-search.min.js" data-key="cdcd8ee403a2b41ac277d5a564" data-styles="https://cdn.jsdelivr.net/ghost/sodo-search@~1.5/umd/main.css" data-sodo-search="https://medevel.com/" data-locale="en" crossorigin="anonymous" type="4406c2f53d7bfc4ef69efdfe-text/javascript"></script>
200 201 202 <link href="https://medevel.com/webmentions/receive/" rel="webmention"> 203
203<script defer src="/public/cards.min.js?v=60011aa0bc" type="4406c2f53d7bfc4ef69efdfe-text/javascript"></script>
203 204 <link rel="stylesheet" type="text/css" href="/public/cards.min.css?v=60011aa0bc"> 205
205<script defer src="/public/comment-counts.min.js?v=60011aa0bc" data-ghost-comments-counts-api="https://medevel.com/members/api/comments/counts/" type="4406c2f53d7bfc4ef69efdfe-text/javascript"></script>
205<style>:root {--ghost-accent-color: #2e2e2e;}</style> 206 <!-- Mailchamp
207<script id="mcjs">!function(c,h,i,m,p){m=c.createElement(h),p=c.getElementsByTagName(h)[0],m.async=1,m.src=i,p.parentNode.insertBefore(m,p)}(document,"script","https://chimpstatic.com/mcjs-connected/js/users/6a0e214dbcd8f3b9bbe0b6f6c/915f3c9e4f7f39dc65c2dbf0d.js");</script>
207 --> 208<meta name="verify-admitad" content="42f22d991e" /> 209 210 211 212 213<meta name="google-adsense-account" content="ca-pub-2373713079704901"> 214 215
216<script src="//m.servedby-buysellads.com/monetization.js" type="4406c2f53d7bfc4ef69efdfe-text/javascript"></script>
216 217 218
219<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2373713079704901" crossorigin="anonymous" type="4406c2f53d7bfc4ef69efdfe-text/javascript"></script>
219 220 221 222 223 224 225 226 227 228 229<!--script data-grow-initializer="">!(function(){window.growMe||((window.growMe=function(e){window.growMe._.push(e);}),(window.growMe._=[]));var e=document.createElement("script");(e.type="text/javascript"),(e.src="https://faves.grow.me/main.js"),(e.defer=!0),e.setAttribute("data-grow-faves-site-id","U2l0ZTpkODIzODE0MC0wNGRhLTRlMTgtYjYwYi0wYzk0MzNkNGQ4Y2Q=");var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t);})();</script>
229--> 230 231 232<!--
232<script async src="https://fundingchoicesmessages.google.com/i/pub-7543508590810245?ers=1" nonce="b9moq3YYFNp1Qta_bqpbVw"></script>
232<script nonce="b9moq3YYFNp1Qta_bqpbVw">(function() {function signalGooglefcPresent() {if (!window.frames['googlefcPresent']) {if (document.body) {const iframe = document.createElement('iframe'); iframe.style = 'width: 0; height: 0; border: none; z-index: -1000; left: -1000px; top: -1000px;'; iframe.style.display = 'none'; iframe.name = 'googlefcPresent'; document.body.appendChild(iframe);} else {setTimeout(signalGooglefcPresent, 0);}}}signalGooglefcPresent();})();</script>
232--> 233 234 235<style> 236 #whatsapp-sticky { 237 position: fixed; 238 bottom: 20px; 239 right: 20px; 240 z-index: 1000; 241} 242 243#whatsapp-sticky a { 244 display: flex; 245 align-items: center; 246 justify-content: center; 247 width: 60px; 248 height: 60px; 249 background-color: #25D366; 250 border-radius: 50%; 251 box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2); 252 text-decoration: none; 253 transition: transform 0.3s ease; 254} 255 256#whatsapp-sticky img { 257 width: 30px; 258 height: 30px; 259} 260 261#whatsapp-sticky a:hover { 262 transform: scale(1.1); 263} 264</style> 265 266 267<!-- adsense recovery --> 268<meta name="verify-admitad" content="b314479be6" /> 269<!--
269<script> 270 (adsbygoogle = window.adsbygoogle || []).push({ 271 google_ad_client: "ca-pub-7543508590810245", 272 enable_page_level_ads: true, 273 overlays: {bottom: true} 274 }); 275</script>
275--> 276 277 278 <style> 279 #toc { 280 border: 1px solid #ccc; 281 padding: 10px; 282 margin-bottom: 20px; 283 /* max-width: 300px; */ 284 width:100%; 285 } 286 287 288 #toc ul { 289 list-style: none; 290 padding-left: 0; 291 } 292 #toc ul li { 293 margin-bottom: 5px; 294 } 295 </style> 296
296<script src="https://code.jquery.com/jquery-3.6.0.min.js" type="4406c2f53d7bfc4ef69efdfe-text/javascript"></script>
296 297 298 299 300<style> 301 302 303.gh-article-image{ 304text-align:center !important; 305width:100%; 306overflow:hidden; 307} 308.gh-article-image img{ 309 margin:0px auto; 310width:700px !important; 311} 312 .after-content{ 313 314 padding:10px !important; 315 } 316 .fluid-width-video-wrapper { 317 position: relative; 318 overflow: hidden; 319 padding-top: 56.25%; 320} 321 322.fluid-width-video-wrapper iframe, 323.fluid-width-video-wrapper object, 324.fluid-width-video-wrapper embed { 325 position: absolute; 326 top: 0; 327 left: 0; 328 width: 100%; 329 height: 100%; 330} 331 332 333 /* Base styles for the ad - it's hidden by default */ 334 335 .site-header-content{ 336 337 padding-bottom:0px !important; 338 } 339.side-ad { 340 display: none; 341 position: fixed; 342 top: 50%; /* Adjust as needed */ 343 right: 0; 344 transform: translateY(-50%); 345 width: 300px; /* Adjust the width as needed */ 346 height: 600px; /* Adjust the height as needed */ 347 /* Example background color background-color: #f3f3f3; */ 348 /* Example border border: 0px solid #ddd;*/ 349 /* Optional: Adds shadow for better visibility box-shadow: 0 2px 8px rgba(0,0,0,0.1);*/ 350 z-index: 1000; /* Ensures the ad is above other content */ 351} 352 353/* Media query for large screens */ 354@media screen and (min-width: 1024px) { 355 .side-ad { 356 display: block; /* Show the ad only on large screens */ 357 } 358} 359 360 361</style> 362 363 364<!-- adsense recovery message -->
365<script type="4406c2f53d7bfc4ef69efdfe-text/javascript">(function(){/* 366 367 Copyright The Closure Library Authors. 368 SPDX-License-Identifier: Apache-2.0 369*/ 370'use strict';var aa=function(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}},ba="function"==typeof Object.create?Object.create:function(a){var b=function(){};b.prototype=a;return new b},k;if("function"==typeof Object.setPrototypeOf)k=Object.setPrototypeOf;else{var m;a:{var ca={a:!0},n={};try{n.__proto__=ca;m=n.a;break a}catch(a){}m=!1}k=m?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null} 371var p=k,q=function(a,b){a.prototype=ba(b.prototype);a.prototype.constructor=a;if(p)p(a,b);else for(var c in b)if("prototype"!=c)if(Object.defineProperties){var d=Object.getOwnPropertyDescriptor(b,c);d&&Object.defineProperty(a,c,d)}else a[c]=b[c];a.v=b.prototype},r=this||self,da=function(){},t=function(a){return a};var u;var w=function(a,b){this.g=b===v?a:""};w.prototype.toString=function(){return this.g+""};var v={},x=function(a){if(void 0===u){var b=null;var c=r.trustedTypes;if(c&&c.createPolicy){try{b=c.createPolicy("goog#html",{createHTML:t,createScript:t,createScriptURL:t})}catch(d){r.console&&r.console.error(d.message)}u=b}else u=b}a=(b=u)?b.createScriptURL(a):a;return new w(a,v)};var A=function(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)};var B={},C=null;var D="function"===typeof Uint8Array;function E(a,b,c){return"object"===typeof a?D&&!Array.isArray(a)&&a instanceof Uint8Array?c(a):F(a,b,c):b(a)}function F(a,b,c){if(Array.isArray(a)){for(var d=Array(a.length),e=0;e<a.length;e++){var f=a[e];null!=f&&(d[e]=E(f,b,c))}Array.isArray(a)&&a.s&&G(d);return d}d={};for(e in a)Object.prototype.hasOwnProperty.call(a,e)&&(f=a[e],null!=f&&(d[e]=E(f,b,c)));return d} 372function ea(a){return F(a,function(b){return"number"===typeof b?isFinite(b)?b:String(b):b},function(b){var c;void 0===c&&(c=0);if(!C){C={};for(var d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),e=["+/=","+/","-_=","-_.","-_"],f=0;5>f;f++){var h=d.concat(e[f].split(""));B[f]=h;for(var g=0;g<h.length;g++){var l=h[g];void 0===C[l]&&(C[l]=g)}}}c=B[c];d=Array(Math.floor(b.length/3));e=c[64]||"";for(f=h=0;h<b.length-2;h+=3){var y=b[h],z=b[h+1];l=b[h+2];g=c[y>>2];y=c[(y&3)<< 3734|z>>4];z=c[(z&15)<<2|l>>6];l=c[l&63];d[f++]=""+g+y+z+l}g=0;l=e;switch(b.length-h){case 2:g=b[h+1],l=c[(g&15)<<2]||e;case 1:b=b[h],d[f]=""+c[b>>2]+c[(b&3)<<4|g>>4]+l+e}return d.join("")})}var fa={s:{value:!0,configurable:!0}},G=function(a){Array.isArray(a)&&!Object.isFrozen(a)&&Object.defineProperties(a,fa);return a};var H;var J=function(a,b,c){var d=H;H=null;a||(a=d);d=this.constructor.u;a||(a=d?[d]:[]);this.j=d?0:-1;this.h=null;this.g=a;a:{d=this.g.length;a=d-1;if(d&&(d=this.g[a],!(null===d||"object"!=typeof d||Array.isArray(d)||D&&d instanceof Uint8Array))){this.l=a-this.j;this.i=d;break a}void 0!==b&&-1<b?(this.l=Math.max(b,a+1-this.j),this.i=null):this.l=Number.MAX_VALUE}if(c)for(b=0;b<c.length;b++)a=c[b],a<this.l?(a+=this.j,(d=this.g[a])?G(d):this.g[a]=I):(d=this.l+this.j,this.g[d]||(this.i=this.g[d]={}),(d=this.i[a])? 374G(d):this.i[a]=I)},I=Object.freeze(G([])),K=function(a,b){if(-1===b)return null;if(b<a.l){b+=a.j;var c=a.g[b];return c!==I?c:a.g[b]=G([])}if(a.i)return c=a.i[b],c!==I?c:a.i[b]=G([])},M=function(a,b){var c=L;if(-1===b)return null;a.h||(a.h={});if(!a.h[b]){var d=K(a,b);d&&(a.h[b]=new c(d))}return a.h[b]};J.prototype.toJSON=function(){var a=N(this,!1);return ea(a)}; 375var N=function(a,b){if(a.h)for(var c in a.h)if(Object.prototype.hasOwnProperty.call(a.h,c)){var d=a.h[c];if(Array.isArray(d))for(var e=0;e<d.length;e++)d[e]&&N(d[e],b);else d&&N(d,b)}return a.g},O=function(a,b){H=b=b?JSON.parse(b):null;a=new a(b);H=null;return a};J.prototype.toString=function(){return N(this,!1).toString()};var P=function(a){J.call(this,a)};q(P,J);function ha(a){var b,c=(a.ownerDocument&&a.ownerDocument.defaultView||window).document,d=null===(b=c.querySelector)||void 0===b?void 0:b.call(c,"script[n
375once]");(b=d?d.nonce||d.getAttribute("nonce")||"":"")&&a.setAttribute("nonce",b)};var Q=function(a,b){b=String(b);"application/xhtml+xml"===a.contentType&&(b=b.toLowerCase());return a.createElement(b)},R=function(a){this.g=a||r.document||document};R.prototype.appendChild=function(a,b){a.appendChild(b)};var S=function(a,b,c,d,e,f){try{var h=a.g,g=Q(a.g,"SCRIPT");g.async=!0;g.src=b instanceof w&&b.constructor===w?b.g:"type_error:TrustedResourceUrl";ha(g);h.head.appendChild(g);g.addEventListener("load",function(){e();d&&h.head.removeChild(g)});g.addEventListener("error",function(){0<c?S(a,b,c-1,d,e,f):(d&&h.head.removeChild(g),f())})}catch(l){f()}};var ia=r.atob("aHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vaW1hZ2VzL2ljb25zL21hdGVyaWFsL3N5c3RlbS8xeC93YXJuaW5nX2FtYmVyXzI0ZHAucG5n"),ja=r.atob("WW91IGFyZSBzZWVpbmcgdGhpcyBtZXNzYWdlIGJlY2F1c2UgYWQgb3Igc2NyaXB0IGJsb2NraW5nIHNvZnR3YXJlIGlzIGludGVyZmVyaW5nIHdpdGggdGhpcyBwYWdlLg=="),ka=r.atob("RGlzYWJsZSBhbnkgYWQgb3Igc2NyaXB0IGJsb2NraW5nIHNvZnR3YXJlLCB0aGVuIHJlbG9hZCB0aGlzIHBhZ2Uu"),la=function(a,b,c){this.h=a;this.j=new R(this.h);this.g=null;this.i=[];this.l=!1;this.o=b;this.m=c},V=function(a){if(a.h.body&&!a.l){var b= 376function(){T(a);r.setTimeout(function(){return U(a,3)},50)};S(a.j,a.o,2,!0,function(){r[a.m]||b()},b);a.l=!0}},T=function(a){for(var b=W(1,5),c=0;c<b;c++){var d=X(a);a.h.body.appendChild(d);a.i.push(d)}b=X(a);b.style.bottom="0";b.style.left="0";b.style.position="fixed";b.style.width=W(100,110).toString()+"%";b.style.zIndex=W(2147483544,2147483644).toString();b.style["background-color"]=ma(249,259,242,252,219,229);b.style["box-shadow"]="0 0 12px #888";b.style.color=ma(0,10,0,10,0,10);b.style.display= 377"flex";b.style["justify-content"]="center";b.style["font-family"]="Roboto, Arial";c=X(a);c.style.width=W(80,85).toString()+"%";c.style.maxWidth=W(750,775).toString()+"px";c.style.margin="24px";c.style.display="flex";c.style["align-items"]="flex-start";c.style["justify-content"]="center";d=Q(a.j.g,"IMG");d.className=A();d.src=ia;d.style.height="24px";d.style.width="24px";d.style["padding-right"]="16px";var e=X(a),f=X(a);f.style["font-weight"]="bold";f.textContent=ja;var h=X(a);h.textContent=ka;Y(a, 378e,f);Y(a,e,h);Y(a,c,d);Y(a,c,e);Y(a,b,c);a.g=b;a.h.body.appendChild(a.g);b=W(1,5);for(c=0;c<b;c++)d=X(a),a.h.body.appendChild(d),a.i.push(d)},Y=function(a,b,c){for(var d=W(1,5),e=0;e<d;e++){var f=X(a);b.appendChild(f)}b.appendChild(c);c=W(1,5);for(d=0;d<c;d++)e=X(a),b.appendChild(e)},W=function(a,b){return Math.floor(a+Math.random()*(b-a))},ma=function(a,b,c,d,e,f){return"rgb("+W(Math.max(a,0),Math.min(b,255)).toString()+","+W(Math.max(c,0),Math.min(d,255)).toString()+","+W(Math.max(e,0),Math.min(f, 379255)).toString()+")"},X=function(a){a=Q(a.j.g,"DIV");a.className=A();return a},U=function(a,b){0>=b||null!=a.g&&0!=a.g.offsetHeight&&0!=a.g.offsetWidth||(na(a),T(a),r.setTimeout(function(){return U(a,b-1)},50))},na=function(a){var b=a.i;var c="undefined"!=typeof Symbol&&Symbol.iterator&&b[Symbol.iterator];b=c?c.call(b):{next:aa(b)};for(c=b.next();!c.done;c=b.next())(c=c.value)&&c.parentNode&&c.parentNode.removeChild(c);a.i=[];(b=a.g)&&b.parentNode&&b.parentNode.removeChild(b);a.g=null};var pa=function(a,b,c,d,e){var f=oa(c),h=function(l){l.appendChild(f);r.setTimeout(function(){f?(0!==f.offsetHeight&&0!==f.offsetWidth?b():a(),f.parentNode&&f.parentNode.removeChild(f)):a()},d)},g=function(l){document.body?h(document.body):0<l?r.setTimeout(function(){g(l-1)},e):b()};g(3)},oa=function(a){var b=document.createElement("div");b.className=a;b.style.width="1px";b.style.height="1px";b.style.position="absolute";b.style.left="-10000px";b.style.top="-10000px";b.style.zIndex="-10000";return b};var L=function(a){J.call(this,a)};q(L,J);var qa=function(a){J.call(this,a)};q(qa,J);var ra=function(a,b){this.l=a;this.m=new R(a.document);this.g=b;this.i=K(this.g,1);b=M(this.g,2);this.o=x(K(b,4)||"");this.h=!1;b=M(this.g,13);b=x(K(b,4)||"");this.j=new la(a.document,b,K(this.g,12))};ra.prototype.start=function(){sa(this)}; 380var sa=function(a){ta(a);S(a.m,a.o,3,!1,function(){a:{var b=a.i;var c=r.btoa(b);if(c=r[c]){try{var d=O(P,r.atob(c))}catch(e){b=!1;break a}b=b===K(d,1)}else b=!1}b?Z(a,K(a.g,14)):(Z(a,K(a.g,8)),V(a.j))},function(){pa(function(){Z(a,K(a.g,7));V(a.j)},function(){return Z(a,K(a.g,6))},K(a.g,9),K(a.g,10),K(a.g,11))})},Z=function(a,b){a.h||(a.h=!0,a=new a.l.XMLHttpRequest,a.open("GET",b,!0),a.send())},ta=function(a){var b=r.btoa(a.i);a.l[b]&&Z(a,K(a.g,5))};(function(a,b){r[a]=function(c){for(var d=[],e=0;e<arguments.length;++e)d[e-0]=arguments[e];r[a]=da;b.apply(null,d)}})("__h82AlnkH6D91__",function(a){"function"===typeof window.atob&&(new ra(window,O(qa,window.atob(a)))).start()});}).call(this); 381 382window.__h82AlnkH6D91__("WyJwdWItNzU0MzUwODU5MDgxMDI0NSIsW251bGwsbnVsbCxudWxsLCJodHRwczovL2Z1bmRpbmdjaG9pY2VzbWVzc2FnZXMuZ29vZ2xlLmNvbS9iL3B1Yi03NTQzNTA4NTkwODEwMjQ1Il0sbnVsbCxudWxsLCJodHRwczovL2Z1bmRpbmdjaG9pY2VzbWVzc2FnZXMuZ29vZ2xlLmNvbS9lbC9BR1NLV3hWZlhZZFJVc2xHM2VjWkUzTGV4MEVKd0w1bjBZTzlVSVBJTHdraFk1aU9EdXhXV0lrQ0pIanMtWlBNQTBPSUdDRXcyMTlXaUNLMkMtaXE5RHAyN0R2S2pnXHUwMDNkXHUwMDNkP3RlXHUwMDNkVE9LRU5fRVhQT1NFRCIsImh0dHBzOi8vZnVuZGluZ2Nob2ljZXNtZXNzYWdlcy5nb29nbGUuY29tL2VsL0FHU0tXeFg3aTJYdnVCYzFKemlCZzM5bUV4QUg2elhzWk1TVFJESTE0NlhFQWhJTW1fbzhnbzctUDJVMEZjTzJzTHh3d3lPTWxYYUZGaVBLbnFNOFREd2E1SXhpQlFcdTAwM2RcdTAwM2Q/YWJcdTAwM2QxXHUwMDI2c2JmXHUwMDNkMSIsImh0dHBzOi8vZnVuZGluZ2Nob2ljZXNtZXNzYWdlcy5nb29nbGUuY29tL2VsL0FHU0tXeFZhVWxBZjhsM1ZCRlRnMHBRUHpHU0ZUME9jMEhNSVFNeGRBUVFweGpOdDhubXRLSnNMbG5nYkVWMXZiX01pMkoxYmhYZEt3SmtSLXpRYml1MXBPcWk2LUFcdTAwM2RcdTAwM2Q/YWJcdTAwM2QyXHUwMDI2c2JmXHUwMDNkMSIsImh0dHBzOi8vZnVuZGluZ2Nob2ljZXNtZXNzYWdlcy5nb29nbGUuY29tL2VsL0FHU0tXeFdFTGRCQ3dsRGtNeEJieGZzX0EtZXBPTWN0OFROV2dWLXJ2NlR3R1hwclFnYWNuM1pNM1NLRWhVbWV5bUVzYzg5NG15cVhXVHlIQ0JUdFNLdmZHM1REZ0FcdTAwM2RcdTAwM2Q/c2JmXHUwMDNkMiIsImRpdi1ncHQtYWQiLDIwLDEwMCwiY0hWaUxUYzFORE0xTURnMU9UQTRNVEF5TkRVXHUwMDNkIixbbnVsbCxudWxsLG51bGwsImh0dHBzOi8vd3d3LmdzdGF0aWMuY29tLzBlbW4vZi9wL3B1Yi03NTQzNTA4NTkwODEwMjQ1LmpzP3VzcXBcdTAwM2RDQTAiXSwiaHR0cHM6Ly9mdW5kaW5nY2hvaWNlc21lc3NhZ2VzLmdvb2dsZS5jb20vZWwvQUdTS1d4WFdEejBhbUFBOWVDNVJXZkJjaU5DVjJsR3VBdlJhX0dlRWF6UHIxbm9oX2Yxa0NVNEdiSXM3aDlubVVva1NDeldFU3NHZHByRUh6aWZTel95cE1EMUhOUVx1MDAzZFx1MDAzZCJd");</script>
382 383 384 385 386<!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 386-387
386 387<script async src="https://www.googletagmanager.com/gtag/js?id=
387G-TQKPV9B6F1
vendor: 60 bytes, line 387
387" type="4406c2f53d7bfc4ef69efdfe-text/javascript"></script>
388<script type="4406c2f53d7bfc4ef69efdfe-text/javascript"> 389
vendor: 134 bytes, lines 389-393
389window.dataLayer = window.dataLayer || []; 390 function gtag(){dataLayer.push(arguments);} 391 gtag('js', new Date()); 392 393 gtag('config', '
393G-TQKPV9B6F1
vendor: 4 bytes, line 393
393');
394</script>
394 395 396 397<!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 397-398
397 398<script async src="https://www.googletagmanager.com/gtag/js?id=
398UA-69152808-1
vendor: 60 bytes, line 398
398" type="4406c2f53d7bfc4ef69efdfe-text/javascript"></script>
399<script type="4406c2f53d7bfc4ef69efdfe-text/javascript"> 400
vendor: 134 bytes, lines 400-404
400window.dataLayer = window.dataLayer || []; 401 function gtag(){dataLayer.push(arguments);} 402 gtag('js', new Date()); 403 404 gtag('config', '
404UA-69152808-1
vendor: 4 bytes, line 404
404');
405</script>
405 406 407 408 409 410<meta name="yandex-verification" content="ce06bb71b4fe799a" /> 411<!-- BuySellAds -->
412<script src="//m.servedby-buysellads.com/monetization.js" type="4406c2f53d7bfc4ef69efdfe-text/javascript"></script>
412 413 414 415 416<style> 417 418 419 420 .rtl{ 421 direction:rtl !important; 422 text-align:right !important; 423 } 424 425 .gh-mainx, .gh-contentx{ 426 overflow:hidden; 427 min-height:1000px; 428 height:auto; 429 } 430 431 prex{ 432 overflow-y: auto; 433 overflow-x: auto; 434 display: block !important; 435 width:100% !important; 436 background:#f5f5f5; 437 padding:7px; 438 font-size:12px; 439 440 } 441 figurex{ 442 border:0px !important; 443 background:none !important; 444 overflow:hidden; 445 } 446 447 imgx{ 448 border-radius:7px; 449 border:0px auto; 450 background:none !important; 451 /* max-width:100%; */ 452 overflow:hidden; 453 height:auto; 454 } 455 456 .after-content{ 457 width:100%; 458 text-align:center; 459 padding:10px 0 10px 0; 460 margin-top:10px; 461 } 462 463 iframex{ 464 width:100% !important; 465 /* min-height:340px; */ 466 overflow:hidden; 467 } 468 469 figure > iframe{ 470 width:100% !important; 471 min-height:360px; 472 overflow:hidden; 473 } 474 475 a.tag-btn{ 476 font-size:17px !important; 477 border-bottom:1px solid #777; 478 /* margin:4 !important; */ 479 margin-bottom:7px !important; 480 /* background:#777 !important; */ 481 color:#333 !important; 482 padding:5px !important; 483 text-decoration:none !important; 484 /* border-radius:14px; */ 485 font-family: sans-serif ; 486 transition:all; 487 } 488 489 490 a.tag-btn:hover{ 491 font-size:17px !important; 492 } 493 494</style> 495 496 497 <link rel="preconnect" href="https://fonts.bunny.net"><link rel="stylesheet" href="https://fonts.bunny.net/css?family=libre-baskerville:700|fira-sans:400,500,600"><style>:root {--gh-font-heading: Libre Baskerville;--gh-font-body: Fira Sans;}</style> 498 499</head> 500<body class="post-template tag-ai-safety-security tag-cybersecurity tag-ehr-security tag-healthcare-cybersecurity tag-home-security tag-security tag-healthcare-privacy tag-disk-encryption tag-cryptocurrency gh-font-heading-libre-baskerville gh-font-body-fira-sans has-sans-title has-sans-body"> 501 502<div class="gh-viewport"> 503 504 <header id="gh-navigation" class="gh-navigation is-left-logo gh-outer"> 505 <div class="gh-navigation-inner gh-inner"> 506 507 <div class="gh-navigation-brand"> 508 <a class="gh-navigation-logo is-title" href="https://medevel.com"> 509 <img src="https://medevel.com/content/images/2022/12/MD_Aug_2022-logo.png" alt="MEDevel.com | Open-source Apps for Healthcare and Enterprise"> 510 </a> 511 <button class="gh-search gh-icon-button" aria-label="Search this site" data-ghost-search> 512 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" width="20" height="20"><path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path></svg></button> <button class="gh-burger gh-icon-button" aria-label="Menu"> 513 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" viewBox="0 0 256 256"><path d="M224,128a8,8,0,0,1-8,8H40a8,8,0,0,1,0-16H216A8,8,0,0,1,224,128ZM40,72H216a8,8,0,0,0,0-16H40a8,8,0,0,0,0,16ZM216,184H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"></path></svg> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" viewBox="0 0 256 256"><path d="M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z"></path></svg> </button> 514 </div> 515 516 <nav class="gh-navigation-menu"> 517 <ul class="nav"> 518 <li class="nav-healthcare"><a href="https://medevel.com/tag/healthcare/">Healthcare</a></li> 519 <li class="nav-ai"><a href="https://medevel.com/tag/ai/">AI</a></li> 520 <li class="nav-education"><a href="https://medevel.com/tag/education/">Education</a></li> 521 <li class="nav-dev"><a href="https://medevel.com/tag/development/">Dev.</a></li> 522 <li class="nav-radiology"><a href="https://medevel.com/tag/dicom/">Radiology</a></li> 523 <li class="nav-self-hosted"><a href="https://medevel.com/tag/web-based/">Self-hosted</a></li> 524 <li class="nav-med-records"><a href="https://medevel.com/tag/emr-ehr/">Med. Records</a></li> 525 <li class="nav-linux"><a href="https://medevel.com/tag/linux/">Linux</a></li> 526 <li class="nav-android"><a href="https://medevel.com/tag/android/">Android</a></li> 527 <li class="nav-osint"><a href="https://medevel.com/tag/osint/">OSINT</a></li> 528 <li class="nav-about-contact"><a href="https://medevel.com/about-contact/">About & Contact</a></li> 529 <li class="nav-adhd"><a href="https://medevel.com/tag/adhd/">ADHD</a></li> 530</ul> 531 532 </nav> 533 534 <div class="gh-navigation-actions"> 535 <button class="gh-search gh-icon-button" aria-label="Search this site" data-ghost-search> 536 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" width="20" height="20"><path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path></svg></button> </div> 537 538 </div> 539</header> 540 541 542 543<main class="gh-main"> 544 545 <article class="gh-article post tag-ai-safety-security tag-cybersecurity tag-ehr-security tag-healthcare-cybersecurity tag-home-security tag-security tag-healthcare-privacy tag-disk-encryption tag-cryptocurrency"> 546 547 <header class="gh-article-header gh-canvas"> 548 549 <a class="gh-article-tag" href="https://medevel.com/tag/ai-safety-security/">AI Safety & Security</a> 550 <h1 class="gh-article-title is-title">Stop Trusting Cloud Providers: Secure Your Data with LUKSboxâs Client-Side Encryption, a Free &
550 Open-source App</h1> 551 552 <div class="gh-article-meta"> 553 <div class="gh-article-author-image instapaper_ignore"> 554 <a href="/author/hazem/"> 555 <img class="author-profile-image" src="https://www.gravatar.com/avatar/ec3292466c215a2700318e062ca63109?s=250&r=x&d=mp" alt="Hamza Musa"> 556 </a> 557 </div> 558 <div class="gh-article-meta-wrapper"> 559 <h4 class="gh-article-author-name"><a href="/author/hazem/">Hamza Musa</a></h4> 560 <div class="gh-article-meta-content"> 561 <time class="gh-article-meta-date" datetime="2026-09-21">21 Sep 2026</time> 562 <span class="gh-article-meta-length"><span class="bull">â</span> 2 min read</span> 563 </div> 564 </div> 565 </div> 566 567 <figure class="gh-article-image"> 568 <img 569 srcset="/content/images/size/w320/2026/09/Screenshot-2026-09-21-at-15.55.57.png 320w, 570 /content/images/size/w600/2026/09/Screenshot-2026-09-21-at-15.55.57.png 600w, 571 /content/images/size/w960/2026/09/Screenshot-2026-09-21-at-15.55.57.png 960w, 572 /content/images/size/w1200/2026/09/Screenshot-2026-09-21-at-15.55.57.png 1200w, 573 /content/images/size/w2000/2026/09/Screenshot-2026-09-21-at-15.55.57.png 2000w" 574 sizes="(max-width: 1200px) 100vw, 1120px" 575 src="/content/images/size/w1200/2026/09/Screenshot-2026-09-21-at-15.55.57.png" 576 alt="Stop Trusting Cloud Providers: Secure Your Data with LUKSboxâs Client-Side Encryption, a Free & Open-source App" 577 > 578 </figure> 579 580 </header> 581 582 <section class="gh-content gh-canvas is-body"> 583 <p>LUKSbox is an open-source, Rust-based tool that creates encrypted vaults (.lbx files) designed for secure storage on untrusted media like cloud services or shared drives. It encrypts data client-side using <strong>FIDO2</strong> and TPM 2.0 hardware keys, ensuring providers cannot access your files even under legal compulsion, while also offering post-quantum cryptography readiness via ML-KEM hybrids. </p><p>The system provides tamper-evidence through per-chunk AEAD encryption and anchor sidecars, making it ideal for sensitive data that must survive long-term storage risks without relying on provider-held keys.</p><h2 id="why-you-need-luksbox"><strong>Why You Need LUKSBox</strong></h2><p>You need LUKSbox because traditional cloud encryption is an illusion of security where the provider holds the keys, leaving your sensitive data exposed to insider threats, government subpoenas, and future quantum decryption capabilities. </p><p>By shifting to a client-side, hardware-bound model, <strong>LUKSbox</strong> ensures that your data remains mathematically inaccessible to anyone but you, regardless of where it is stored, while providing the critical ability to detect if a malicious actor has tampered with your files during transit or storage. </p><p>This cool tool transforms untrusted infrastructure like public clouds or shared USB drives into secure vaults, giving you true ownership and verifiable integrity over your digital life without relying on corporate promises or fragile legal contracts.<br></p><h2 id="features">Features</h2><ul><li><strong>Client-Side Zero-Trust Encryption:</strong> Encrypts data before it leaves your machine, rendering cloud providers unable to read files even under legal subpoena.</li><li><strong>Hardware-Bound Access:</strong> Native integration with FIDO2 keys (YubiKey, Titan) and TPM 2.0/SEP chips for physical, hardware-level authentication.</li><li><strong>Post-Quantum Cryptography:</strong> Hybrid ML-KEM-768/1024 keyslots protect against "harvest now, decrypt later" attacks from future quantum computers.</li><li><strong>Tamper-Evident Storage:</strong> Per-chunk AEAD encryption and anchor sidecars detect silent file corruption or rollback attacks instantly.</li><li><strong>Cross-Platform Mounting:</strong> Mounts as a real drive on Linux, macOS, and Windows without requiring kernel extensions on modern macOS via FUSE-T.</li><li><strong>Detached Header Mode:</strong> Separates the encrypted vault (.lbx) from its header (.hdr), making the stored file indistinguishable from random noise.</li><li><strong>Memory Safety & Hygiene:</strong> Built in Rust with <code>memfd_secret</code> support on Linux to exclude master keys from coredumps and hibernate images.</li><li><strong>Forensic Resilience:</strong> Includes tools for header backups and error-tolerant extraction to mitigate single-point-of-failure risks in containerized storage.</li></ul><h3 id="resources-downloads">Resources & Downloads</h3><ul><li><a href="https://github.com/PentHertz/LUKSbox">Github</a></li></ul><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/PentHertz/LUKSbox"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - PentHertz/LUKSbox: Store sensitive files in the cloud, or on shared media without trusting the host. LUKSbox is a Rust-based encrypted-container tool with passphrase, FIDO2 (YubiKey, Titan, Nitrokey, Windows Hello), TPM 2.0, and hybrid post-quantum (ML-KEM-768 / 1024) keyslots. Mounts as a real drive on Linux, macOS, and Windows.</div><div class="kg-bookmark-description">Store sensitive files in the cloud, or on shared media without trusting the host. LUKSbox is a Rust-based encrypted-container tool with passphrase, FIDO2 (YubiKey, Titan, Nitrokey, Windows Hello),â¦</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://medevel.com/content/images/icon/pinned-octocat-093da3e6fa40-1412.svg" alt=""><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">PentHertz</span></div></div>
583<div class="kg-bookmark-thumbnail">
vendor: 136 bytes, line 583
583<script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="4406c2f53d7bfc4ef69efdfe-|49"></script>
583<img src="https://medevel.com/content/images/thumbnail/LUKSbox" alt="" onerror="this.style.display = 'none'"></div></a></figure> 584 </section> 585 586 </article> 587 588 <div class="gh-comments gh-canvas"> 589 590
590<script defer src="https://cdn.jsdelivr.net/ghost/comments-ui@~1.0/umd/comments-ui.min.js" data-locale="en" data-ghost-comments="https://medevel.com/" data-api="https://medevel.com/ghost/api/content/" data-admin="https://medevel.com/ghost/" data-key="cdcd8ee403a2b41ac277d5a564" data-title="null" data-count="true" data-post-id="6a05ff2e40682a041c16bbc2" data-color-scheme="auto" data-avatar-saturation="60" data-accent-color="#2e2e2e" data-comments-enabled="all" data-publication="MEDevel.com | Open-source Apps for Healthcare and Enterprise" crossorigin="anonymous" type="4406c2f53d7bfc4ef69efdfe-text/javascript"></script>
590 591 592 </div> 593 594</main> 595 596 597 <section class="gh-container is-grid gh-outer"> 598 <div class="gh-container-inner gh-inner"> 599 <h2 class="gh-container-title">Read more</h2> 600 <div class="gh-feed"> 601 <article class="gh-card post"> 602 <a class="gh-card-link" href="/ai-image-generator-fixes-open-source-projects-look/"> 603 <figure class="gh-card-image"> 604 <img 605 srcset="/content/images/size/w160/format/webp/2026/09/Screenshot-2026-09-24-at-20.21.55.png 160w, 606 /content/images/size/w320/format/webp/2026/09/Screenshot-2026-09-24-at-20.21.55.png 320w, 607 /content/images/size/w600/format/webp/2026/09/Screenshot-2026-09-24-at-20.21.55.png 600w, 608 /content/images/size/w960/format/webp/2026/09/Screenshot-2026-09-24-at-20.21.55.png 960w, 609 /content/images/size/w1200/format/webp/2026/09/Screenshot-2026-09-24-at-20.21.55.png 1200w, 610 /content/images/size/w2000/format/webp/2026/09/Screenshot-2026-09-24-at-20.21.55.png 2000w" 611 sizes="320px" 612 src="/content/images/size/w600/2026/09/Screenshot-2026-09-24-at-20.21.55.png" 613 alt="What an AI Image Generator Fixes About the Way Open Source Projects Look" 614 loading="lazy" 615 > 616 </figure> 617 <div class="gh-card-wrapper"> 618 <h3 class="gh-card-title is-title">What an AI Image Generator Fixes About the Way Open Source Projects Look</h3> 619 <p class="gh-card-excerpt is-body">your repository in a chat and it renders as a grey rectangle with your avatar in the corner. 620 621The project is good. It solves a real problem, the code is clean, the tests pass, and somebody spent months on it. None of that reaches the person seeing the link, because</p> 622 <footer class="gh-card-meta"> 623<!-- 624 --> 625 <span class="gh-card-author">By Hamza Musa</span> 626 <time class="gh-card-date" datetime="2026-09-24">24 Sep 2026</time> 627 <!-- 628 --></footer> 629 </div> 630 </a> 631</article> 632 <article class="gh-card post"> 633 <a class="gh-card-link" href="/7-signs-its-time-to-see-a-physical-therapist-and-what-to-expect-at-your-first-visit/"> 634 <figure class="gh-card-image"> 635 <img 636 srcset="https://images.unsplash.com/photo-1645005512942-a17817fb7c11?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDR8fFBoeXNpY2FsJTIwVGhlcmFwaXN0fGVufDB8fHx8MTc5MDA3NzIwOXww&ixlib=rb-4.1.0&q=80&w=160 160w, 637 https://images.unsplash.com/photo-1645005512942-a17817fb7c11?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDR8fFBoeXNpY2FsJTIwVGhlcmFwaXN0fGVufDB8fHx8MTc5MDA3NzIwOXww&ixlib=rb-4.1.0&q=80&w=320 320w, 638 https://images.unsplash.com/photo-1645005512942-a17817fb7c11?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDR8fFBoeXNpY2FsJTIwVGhlcmFwaXN0fGVufDB8fHx8MTc5MDA3NzIwOXww&ixlib=rb-4.1.0&q=80&w=600 600w, 639 https://images.unsplash.com/photo-1645005512942-a17817fb7c11?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDR8fFBoeXNpY2FsJTIwVGhlcmFwaXN0fGVufDB8fHx8MTc5MDA3NzIwOXww&ixlib=rb-4.1.0&q=80&w=960 960w, 640 https://images.unsplash.com/photo-1645005512942-a17817fb7c11?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDR8fFBoeXNpY2FsJTIwVGhlcmFwaXN0fGVufDB8fHx8MTc5MDA3NzIwOXww&ixlib=rb-4.1.0&q=80&w=1200 1200w, 641 https://images.unsplash.com/photo-1645005512942-a17817fb7c11?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDR8fFBoeXNpY2FsJTIwVGhlcmFwaXN0fGVufDB8fHx8MTc5MDA3NzIwOXww&ixlib=rb-4.1.0&q=80&w=2000 2000w" 642 sizes="320px" 643 src="https://images.unsplash.com/photo-1645005512942-a17817fb7c11?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDR8fFBoeXNpY2FsJTIwVGhlcmFwaXN0fGVufDB8fHx8MTc5MDA3NzIwOXww&ixlib=rb-4.1.0&q=80&w=600" 644 alt="7 Signs It's Time to See a Physical Therapist (and What to Expect at Your First Visit)" 645 loading="lazy" 646 > 647 </figure> 648 <div class="gh-card-wrapper"> 649 <h3 class="gh-card-title is-title">7 Signs It's Time to See a Physical Therapist (and What to Expect at Your First Visit)</h3> 650 <p class="gh-card-excerpt is-body">Most of us are good at ignoring pain. We blame a stiff shoulder on a bad night's sleep, or write off a nagging knee as part of getting older. We tell ourselves it will pass, and sometimes it does. But when discomfort lingers, keeps returning, or starts changing</p> 651 <footer class="gh-card-meta"> 652<!-- 653 -->
654 <span class="gh-card-author">By Hamza Musa</span> 655 <time class="gh-card-date" datetime="2026-09-22">22 Sep 2026</time> 656 <!-- 657 --></footer> 658 </div> 659 </a> 660</article> 661 <article class="gh-card post"> 662 <a class="gh-card-link" href="/how-to-choose-the-right-physical-therapist-for-your-injury-surgery-or-chronic-pain/"> 663 <figure class="gh-card-image"> 664 <img 665 srcset="https://images.unsplash.com/photo-1534343133720-0c20dba3a360?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxDaHJvbmljJTIwUGFpbnxlbnwwfHx8fDE3OTAwNzcxMzN8MA&ixlib=rb-4.1.0&q=80&w=160 160w, 666 https://images.unsplash.com/photo-1534343133720-0c20dba3a360?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxDaHJvbmljJTIwUGFpbnxlbnwwfHx8fDE3OTAwNzcxMzN8MA&ixlib=rb-4.1.0&q=80&w=320 320w, 667 https://images.unsplash.com/photo-1534343133720-0c20dba3a360?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxDaHJvbmljJTIwUGFpbnxlbnwwfHx8fDE3OTAwNzcxMzN8MA&ixlib=rb-4.1.0&q=80&w=600 600w, 668 https://images.unsplash.com/photo-1534343133720-0c20dba3a360?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxDaHJvbmljJTIwUGFpbnxlbnwwfHx8fDE3OTAwNzcxMzN8MA&ixlib=rb-4.1.0&q=80&w=960 960w, 669 https://images.unsplash.com/photo-1534343133720-0c20dba3a360?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxDaHJvbmljJTIwUGFpbnxlbnwwfHx8fDE3OTAwNzcxMzN8MA&ixlib=rb-4.1.0&q=80&w=1200 1200w, 670 https://images.unsplash.com/photo-1534343133720-0c20dba3a360?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxDaHJvbmljJTIwUGFpbnxlbnwwfHx8fDE3OTAwNzcxMzN8MA&ixlib=rb-4.1.0&q=80&w=2000 2000w" 671 sizes="320px" 672 src="https://images.unsplash.com/photo-1534343133720-0c20dba3a360?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxDaHJvbmljJTIwUGFpbnxlbnwwfHx8fDE3OTAwNzcxMzN8MA&ixlib=rb-4.1.0&q=80&w=600" 673 alt="How to Choose the Right Physical Therapist for Your Injury, Surgery, or Chronic Pain" 674 loading="lazy" 675 > 676 </figure> 677 <div class="gh-card-wrapper"> 678 <h3 class="gh-card-title is-title">How to Choose the Right Physical Therapist for Your Injury, Surgery, or Chronic Pain</h3> 679 <p class="gh-card-excerpt is-body">Most people don't think about physical therapy until something goes wrong. A tweaked back, a sports injury, a scheduled knee replacement, or pain that just won't go away. By then, you're in a hurry, and it's tempting to book the first clinic</p> 680 <footer class="gh-card-meta"> 681<!-- 682 --> 683 <span class="gh-card-author">By Leo Jan</span> 684 <time class="gh-card-date" datetime="2026-09-22">22 Sep 2026</time> 685 <!-- 686 --></footer> 687 </div> 688 </a> 689</article> 690 <article class="gh-card post"> 691 <a class="gh-card-link" href="/how-to-safely-return-to-running-and-sports-after-an-injury/"> 692 <figure class="gh-card-image"> 693 <img 694 srcset="https://images.unsplash.com/photo-1741540037533-2a84caa3e5ac?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDh8fHNwb3J0JTIwaW5qdXJ5fGVufDB8fHx8MTc5MDA3NzAxNXww&ixlib=rb-4.1.0&q=80&w=160 160w, 695 https://images.unsplash.com/photo-1741540037533-2a84caa3e5ac?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDh8fHNwb3J0JTIwaW5qdXJ5fGVufDB8fHx8MTc5MDA3NzAxNXww&ixlib=rb-4.1.0&q=80&w=320 320w, 696 https://images.unsplash.com/photo-1741540037533-2a84caa3e5ac?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDh8fHNwb3J0JTIwaW5qdXJ5fGVufDB8fHx8MTc5MDA3NzAxNXww&ixlib=rb-4.1.0&q=80&w=600 600w, 697 https://images.unsplash.com/photo-1741540037533-2a84caa3e5ac?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDh8fHNwb3J0JTIwaW5qdXJ5fGVufDB8fHx8MTc5MDA3NzAxNXww&ixlib=rb-4.1.0&q=80&w=960 960w, 698 https://images.unsplash.com/photo-1741540037533-2a84caa3e5ac?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDh8fHNwb3J0JTIwaW5qdXJ5fGVufDB8fHx8MTc5MDA3NzAxNXww&ixlib=rb-4.1.0&q=80&w=1200 1200w, 699 https://images.unsplash.com/photo-1741540037533-2a84caa3e5ac?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDh8fHNwb3J0JTIwaW5qdXJ5fGVufDB8fHx8MTc5MDA3NzAxNXww&ixlib=rb-4.1.0&q=80&w=2000 2000w" 700 sizes="320px" 701 src="https://images.unsplash.com/photo-1741540037533-2a84caa3e5ac?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDh8fHNwb3J0JTIwaW5qdXJ5fGVufDB8fHx8MTc5MDA3NzAxNXww&ixlib=rb-4.1.0&q=80&w=600" 702 alt="How to Safely Return to Running and Sports After an Injury" 703 loading="lazy" 704 > 705 </figure> 706 <div class="gh-card-wrapper"> 707 <h3 class="gh-card-title is-title">How to Safely Return to Running and Sports After an Injury</h3> 708 <p class="gh-card-excerpt is-body">You'
708ve been cleared to move again, the pain has settled, and you're eager to get back to your usual routine. This is the moment when many active people make their biggest mistake: they jump back in at full speed. 709 710Feeling better and being ready are not</p> 711 <footer class="gh-card-meta"> 712<!-- 713 --> 714 <span class="gh-card-author">By Leo Jan</span> 715 <time class="gh-card-date" datetime="2026-09-22">22 Sep 2026</time> 716 <!-- 717 --></footer> 718 </div> 719 </a> 720</article> 721 </div> 722 </div> 723 </section> 724 725 726 <footer class="gh-footer gh-outer"> 727 <div class="gh-footer-inner gh-inner"> 728 729 <div class="gh-footer-bar"> 730 <span class="gh-footer-logo is-title"> 731 <img src="https://medevel.com/content/images/2022/12/MD_Aug_2022-logo.png" alt="MEDevel.com | Open-source Apps for Healthcare and Enterprise"> 732 </span> 733 <nav class="gh-footer-menu"> 734 <ul class="nav"> 735 <li class="nav-about"><a href="https://medevel.com/about-contact/">About</a></li> 736 <li class="nav-services"><a href="https://medevel.com/services/">Services</a></li> 737 <li class="nav-contact"><a href="https://medevel.com/about-contact/">Contact</a></li> 738 <li class="nav-privacy-policy"><a href="https://medevel.com/privacy/">Privacy Policy</a></li> 739 <li class="nav-ar"><a href="https://medevel.com/ar/">AR</a></li> 740 <li class="nav-tutorials"><a href="https://medevel.com/tag/tutorial/">Tutorials</a></li> 741 <li class="nav-hipaa"><a href="https://medevel.com/tag/hipaa/">HIPAA</a></li> 742</ul> 743 744 </nav> 745 <div class="gh-footer-copyright"> 746 Powered by <a href="https://ghost.org/" target="_blank" rel="noopener">Ghost</a> 747 </div> 748 </div> 749 750 751 </div> 752</footer> 753</div> 754 755 <div class="pswp" tabindex="-1" role="dialog" aria-hidden="true"> 756 <div class="pswp__bg"></div> 757 758 <div class="pswp__scroll-wrap"> 759 <div class="pswp__container"> 760 <div class="pswp__item"></div> 761 <div class="pswp__item"></div> 762 <div class="pswp__item"></div> 763 </div> 764 765 <div class="pswp__ui pswp__ui--hidden"> 766 <div class="pswp__top-bar"> 767 <div class="pswp__counter"></div> 768 769 <button class="pswp__button pswp__button--close" title="Close (Esc)"></button> 770 <button class="pswp__button pswp__button--share" title="Share"></button> 771 <button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button> 772 <button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button> 773 774 <div class="pswp__preloader"> 775 <div class="pswp__preloader__icn"> 776 <div class="pswp__preloader__cut"> 777 <div class="pswp__preloader__donut"></div> 778 </div> 779 </div> 780 </div> 781 </div> 782 783 <div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap"> 784 <div class="pswp__share-tooltip"></div> 785 </div> 786 787 <button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)"></button> 788 <button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)"></button> 789 790 <div class="pswp__caption"> 791 <div class="pswp__caption__center"></div> 792 </div> 793 </div> 794 </div> 795</div>
796<script src="/assets/built/source.js?v=60011aa0bc" type="4406c2f53d7bfc4ef69efdfe-text/javascript"></script>
796 797 798<div class="sharethis-sticky-share-buttons"></div>
799<script type="4406c2f53d7bfc4ef69efdfe-text/javascript" src='https://platform-api.sharethis.com/js/sharethis.js#property=639634d0b92caa0012f80d6a&product=sticky-share-buttons' async='async'></script>
799 800<!--
800<script data-name="BMC-Widget" data-cfasync="false" src="https://cdnjs.buymeacoffee.com/1.0.0/widget.prod.min.js" data-id="6L7b8ge" data-description="Support me on Buy me a coffee!" data-message="" data-color="#FF813F" data-position="Right" data-x_margin="18" data-y_margin="18"></script>
800--> 801 802<!--
802<script src="https://agent.salesvex.com/loader.js" data-agent-id="35f3fc0c-f391-4f29-b94f-4e37d4249c53" async></script>
802--> 803 804 805
806<script type="4406c2f53d7bfc4ef69efdfe-text/javascript"> 807 (function(){ 808 if(typeof _bsa !== 'undefined' && _bsa) { 809 _bsa.init('fancybar', 'CE7I653I', 'placement:medevelcom'); 810 } 811 })(); 812</script>
812 813 814 815 816
816<script type="4406c2f53d7bfc4ef69efdfe-text/javascript"> 817 $(document).ready(function () { 818 var $toc = $('#toc'); // TOC container 819 var $content = $('.gh-content'); // Content area 820 // h4, h5, h6 821 var $headings = $content.find('h1, h2, h3'); // Select all headings 822 823 // Create a <ul> for the TOC 824 var $tocList = $('<ul></ul>'); 825 826 $headings.each(function (index) { 827 var $heading = $(this); 828 829 // Add an ID to the heading if it doesn't have one 830 if (!$heading.attr('id')) { 831 $heading.attr('id', 'heading-' + index); 832 } 833 834 // Create a TOC entry 835 var $tocItem = $( 836 `<li><a href="#${$heading.attr('id')}">${$heading.text()}</a></li>` 837 ); 838 839 // Adjust indentation based on heading level 840 var level = parseInt(this.tagName.replace('H', ''), 10) - 1; 841 $tocItem.css('margin-left', level * 20 + 'px'); 842 843 $tocList.append($tocItem); 844 }); 845 846 // Append the TOC to the TOC container 847 $toc.append($tocList); 848 849 // Optional: Smooth scrolling 850 $toc.on('click', 'a', function (event) { 851 event.preventDefault(); 852 var targetId = $(this).attr('href'); 853 $('html, body').animate( 854 { scrollTop: $(targetId).offset().top }, 855 500 856 ); 857 }); 858 }); 859 </script>
859 860 861 862 863 864
864<script type="4406c2f53d7bfc4ef69efdfe-text/javascript"> 865 function googleTranslateElementInit() { 866 new google.translate.TranslateElement( 867 {pageLanguage: 'en'}, 868 'google_translate_element' 869 ); 870 } 871 </script>
871 872 873
873<script type="4406c2f53d7bfc4ef69efdfe-text/javascript" src= "https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"> 874 </script>
874 875 876 877 878 879<!-- BuySellAds -->
880<script type="4406c2f53d7bfc4ef69efdfe-text/javascript"> 881 (function(){ 882 if(typeof _bsa !== 'undefined' && _bsa) { 883 _bsa.init('fancybar', 'CE7I653I', 'placement:medevelcom'); 884 } 885 })(); 886</script>
886 887
888<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.3/jquery.min.js" integrity="sha512-STof4xm1wgkfm7heWqFJVn58Hm3EtS31XFaagaa8VMReCXAkQnJZ+jEy8PCC/iT18dFy95WcExNHFTqLyp72eQ==" crossorigin="anonymous" referrerpolicy="no-referrer" type="4406c2f53d7bfc4ef69efdfe-text/javascript"></script>
888 889
890<script type="4406c2f53d7bfc4ef69efdfe-text/javascript"> 891$(document).ready(function () { 892 $('a').each(function () { 893 var reg_exp = new RegExp('/' + window.location.host + '/'); 894 if (!reg_exp.test(this.href)) { 895 $(this).attr('target', '_blank'); 896 var linkArr = this.href.split('?'); 897 this.href = linkArr[0]+"" 898 } 899 }); 900}); 901</script>
901 902 903 904 905 906
906<script type="4406c2f53d7bfc4ef69efdfe-text/javascript"> 907 $(document).ready(function() { 908 var at = `<ins class="adsbygoogle" 909 style="display:block; text-align:center;" 910 data-ad-layout="in-article" 911 data-ad-format="fluid" 912 data-ad-client="ca-pub-2373713079704901" 913 data-ad-slot="7538035786"></ins>` 914 var ads = 915 '<ins class="adsbygoogle" style="display:block;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-2373713079704901" data-ad-slot="5773221188"></ins>'; 916 917 var adsx = 918 '<ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-2373713079704901" data-ad-slot="6735573125" data-ad-format="auto" data-full-width-responsive="true"></ins>'; 919 920 var flexed = `<ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" 921 data-ad-client="ca-pub-2373713079704901" data-ad-slot="6660068385"></ins>` 922 923 924 // fixed 925 var fixed = `<ins class="adsbygoogle" 926 style="display:inline-block;width:336px;height:320px" 927 data-ad-client="ca-pub-7543508590810245" 928 data-ad-slot="8379559148"></ins>` 929 930 931 // <!-- md-horz-small-2022 --> 932 var horz= `<ins class="adsbygoogle" 933 style="display:inline-block;width:728px;height:90px" 934 data-ad-client="ca-pub-7543508590810245" 935 data-ad-slot="7235496493"></ins>` 936 937 var infeed = `<ins class="adsbygoogle" 938 style="display:block" 939 data-ad-format="fluid" 940 data-ad-layout-key="-5q+cl-k-8o+md" 941 data-ad-client="ca-pub-7543508590810245" 942 data-ad-slot="6872981136"></ins>
943<script>` 944 945 946 // gh-feed 947 948 //$('.gh-main').before(fixed); 949 //last 950 // $('.gh-main').before('<div class="" style="width:100%;text-align:center; padding:Ù px;backgroundx:#f1f1f1;">'+adsx+'</div><br/>'); 951 //$('.gh-content > p:last').after(adsx); 952 // (adsbygoogle = window.adsbygoogle || []).push({}) 953 954 955 // gh-feed 956 957 //$('.gh-feed ').before(fixed); 958 //(adsbygoogle = window.adsbygoogle || []).push({}) 959 960 961 // Feed 962 963 964 965 $('.gh-feedx > article').each(function(i) { 966 967 if (i == 3 ) { 968 // //$(this).after('<div class="col-xs-12 shelf hidden-md hidden-lg">after 3rd div</div>'); 969 $(this).before(infeed); 970 // (adsbygoogle = window.adsbygoogle || []).push({}) 971 } 972 973 974 if (i == 6 || i == 10 ) { 975 976 $(this).after('<div class="" style="width:100%;text-align:center; padding:Ù px;backgroundx:#e2e2e2;"> <hr/> <br/>'+ adsx+'<hr/></div>'); 977 // (adsbygoogle = window.adsbygoogle || []).push({}) 978 } 979 980 981 if (i == 9 ) { 982 983 $(this).after('<div class="" style="width:100%;text-align:center; padding:Ù px;backgroundx:#e2e2e2;"> <hr/> <br/>'+ fixed+'<hr/></div>'); 984 // (adsbygoogle = window.adsbygoogle || []).push({}) 985 } 986 987 988 }) 989 990 991 // $('.gh-main').before('<div class="" style="width:100%;text-align:center;">'+horz+'</div>') 992 // (adsbygoogle = window.adsbygoogle || []).push({}) 993 994 995 // $('.gh-article-meta-content').after('<div id="google_translate_element"></div>') 996 997 998 999 1000 1001 //> p:eq(0) 1002 // $('.toc').before(at); 1003 // (adsbygoogle = window.adsbygoogle || []).push({}) 1004 // gh-article 1005 // gh-navigation 1006 //gh-article-image 1007 //gh-article-title 1008 // IMPORTANT 1009 //$('.gh-article-image').before('<br/><div class="" style="width:100%;text-align:center;padding:5px;">'+adsx+'</div>'); 1010 //(adsbygoogle = window.adsbygoogle || []).push({}) 1011 // $('.gh-content > p:nth-child(6n)').after('<div class="" style="width:100%;text-align:center;">'+ads+'</div>'); 1012 //(adsbygoogle = window.adsbygoogle || []).push({}) 1013 1014 // 1015 1016 1017 // LAST 1018 //$('.gh-content').after('<div class="" style="width:100%;text-align:center;">'+adsx+'</div>'); 1019 //(adsbygoogle = window.adsbygoogle || []).push({}) 1020 // 1021 // text-align:center; 1022 //$('.gh-content > h2:first').before('<div class="" style="width:100%;"> <br/>'+at+'</div>'); 1023 // $('.gh-content > h2:first').before('<div class="" style="width:100%;text-align:center; padding:Ù px;backgroundx:#e2e2e2;"> <hr/> <br/>'+ fixed+'<hr/></div>'); 1024 //$('.gh-content > p:eq(2)').after('<div class="" style="width:100%;text-align:center; padding:Ù px;backgroundx:#e2e2e2;"> <hr/> <br/>'+ fixed+'<hr/></div>'); 1025 // (adsbygoogle = window.adsbygoogle || []).push({}) 1026 // 1027 // text-align:center; 1028 1029 // $('.gh-content > h2:eq(1)').after('<div class="" style="width:100%;text-align:center; padding:0px;backgroundx:#f1f1f1;"><hr/><br/> '+ads+'<hr/></div>'); 1030 //(adsbygoogle = window.adsbygoogle || []).push({}) 1031 1032 // $('.gh-content > p:eq(4)').after('<div class="" style="width:100%;text-align:centerx; padding:0px;backgroundx:#f1f1f1;"><hr/><br/> <a href="/free-guest-post-opportunity-on-our-blog/">Share Your Expertise: Free Guest Post Opportunity on Our Blog</a><br/><hr/></div>') 1033 1034 1035 1036 1037 // recent 1038 1039 //LAST 1040 // $('.gh-content > h2:eq(2)').before('<div class="" style="width:100%;text-align:center; padding:Ù px;backgroundx:#f1f1f1;"><hr/><br/> '+at+'<hr/></div>'); 1041 1042 1043 //$('.gh-content > p:eq(6)').after('<div class="" style="width:100%;text-align:center; padding:6px;backgroundx:#e2e2e2;"> <hr/> <br/>'+ fixed+'<hr/></div>'); 1044 // (adsbygoogle = window.adsbygoogle || []).push({}) 1045 1046 // $('.gh-content > p:eq(9)').after('<div class="" style="width:100%;text-align:center; padding:6px;backgroundx:#e2e2e2;"> <hr/> <br/>'+ at+'<hr/></div>'); 1047 // (adsbygoogle = window.adsbygoogle || []).push({}) 1048 1049 1050 // $('.gh-content > p:eq(14)').after('<div class="" style="width:100%;text-align:center; padding:6px;backgroundx:#e2e2e2;"> <hr/> <br/>'+ ads+'<hr/></div>'); 1051 // (adsbygoogle = window.adsbygoogle || []).push({}) 1052 1053 1054 // 1055 // $('.gh-content > h2:eq(2)').before('<div class="" style="width:100%;text-align:center; padding:Ù px;backgroundx:#f1f1f1;"><hr/><br/> '+adsx+'<hr/></div>'); 1056 // (adsbygoogle = window.adsbygoogle || []).push({}) 1057 1058 //$('.post-content > h2:eq(2)').after(at); 1059 //flexed 1060 //fixed 1061 //(adsbygoogle = window.adsbygoogle || []).push({}) 1062 1063 // ALL** 1064 //.post-content > 1065 $('.gh-contentx > h2').each(function(i) { 1066 //18 1067 if(i >=4 && i < 9 ){ 1068 //$(this).before(fixed); 1069 //(adsbygoogle = window.adsbygoogle || []).push({}) 1070 // text-align:center; 1071 1072 // $(this).before('<div class="" style="width:100%;text-align:centerx; padding:1px;backgroundx:#f4f3f3;"> <hr/> <br/>
1072 '+fixed+'</div>'); 1073 // (adsbygoogle = window.adsbygoogle || []).push({}) 1074 1075 if(i % 2 == 1 ){ 1076 // LAST 1077 // $(this).after('<div class="" style="width:100%;text-align:center; padding:1px;backgroundx:#f4f3f3;"> <hr/> <br/> '+fixed+'</div>'); 1078 // (adsbygoogle = window.adsbygoogle || []).push({}) 1079 } 1080 1081 if( i % 2 == 0 ) { 1082 //$(this).before(fixed); 1083 //$(this).before('<div class="" style="width:100%;text-align:center;">'+fixed+'</div>'); 1084 // $(this).after('<div class="" style="width:100%;text-align:centerx; padding:2px;backgroundx:#f1f1f1;"> <hr/> <br/>'+horz+' <br/></div>'); 1085 //(adsbygoogle = window.adsbygoogle || []).push({}) 1086 } 1087 } 1088 1089 1090 1091 }); 1092 1093 1094 $('.gh-contentx > h3').each(function(i) { 1095 1096 // 1097 //$(this).before(ads); 1098 //(adsbygoogle = window.adsbygoogle || []).push({}) 1099 1100 //last 1101 if( i % 2 == 0 && i < 9 ){ 1102 //$(this).before(at); 1103 //(adsbygoogle = window.adsbygoogle || []).push({}) 1104 //text-align:center; 1105 1106 // if(i % 2 == 0){ 1107 1108 $(this).after('<div class="" style="width:100%;text-align:center; padding:0px;backgroundx:#f4f3f3;"> <hr/> <br/> '+fixed+'</div>'); 1109 // (adsbygoogle = window.adsbygoogle || []).push({}) 1110 // } 1111 1112 } 1113 1114 }); 1115 1116 1117 1118 1119 // in-article ads 1120 //$('.post-content > p:eq(2)').after(ads); 1121 //(adsbygoogle = window.adsbygoogle || []).push({}) 1122 1123 // $('.gh-content > h2:last').after(fixed); 1124 //$('.post-content > h2:eq(4)').after(fixed); 1125 // (adsbygoogle = window.adsbygoogle || []).push({}) 1126 1127 // $('.post-tags').after('<br/>'+at); 1128 //$('.post-content > h2:eq(4)').after(fixed); 1129 //gh-article 1130 //$('.gh-article').after('<br/>'+at); 1131 //(adsbygoogle = window.adsbygoogle || []).push({}) 1132 1133 1134 // $('.post-tags').before('<div class="after-content">'+fixed+'</div>'); 1135 //(adsbygoogle = window.adsbygoogle || []).push({}) 1136 1137 // After. 1138 // caspberbullma-last active 1139 // $('#end-content').before('<div class="" style="width:100%;text-align:center; padding:2px;backgroundx:#f1f1f1;"> '+adsx+' </div>'); 1140 // (adsbygoogle = window.adsbygoogle || []).push({}) 1141 1142 var h2Count = $('.gh-content p').length; 1143 // console.log({x}) 1144 1145 var lastElement = $('.gh-content').children().last(); // Get the last element inside the div 1146 var secondLastElement = $('.gh-content').children().eq(-2); // Get the second last element 1147 1148 1149 if (!secondLastElement.is('p')) { 1150 // Insert the new element before the second last h2 1151 1152 // $(secondLastElement).before('<div class="after-contentx">'+flexed+'</div>'); 1153 // (adsbygoogle = window.adsbygoogle || []).push({}) 1154 1155 } 1156 1157 1158 $('.post-tags').before('<div style="width:100%;text-align:center;margin:0px auto; padding:3px; margin:2px;"> <br/>'+ flexed+'</div>'); 1159 1160 // (adsbygoogle = window.adsbygoogle || []).push({}) 1161 1162 // body > div.viewport > div > aside > div 1163 1164 // $('aside').before('<div class="after-content">'+ads+'</div>'); 1165 // (adsbygoogle = window.adsbygoogle || []).push({}) 1166 1167 //$('aside').after('<div class="after-content">'+ads+'</div>'); 1168 //(adsbygoogle = window.adsbygoogle || []).push({}) 1169 1170 1171 //gh-sidebar-inner 1172 1173 // $('.gh-about').before('<div class="after-content">'+adsx+'</div>'); 1174 //(adsbygoogle = window.adsbygoogle || []).push({}) 1175 1176 }) 1177 </script>
1177 1178
1178<script data-goatcounter="https://medevel.goatcounter.com/count" async src="//gc.zgo.at/count.js" type="4406c2f53d7bfc4ef69efdfe-text/javascript"></script>
1178 1179 1180 1181 1182 1183 1184
1185<script type="4406c2f53d7bfc4ef69efdfe-text/javascript"> 1186 1187 1188 $(document).ready(function() { 1189 // 1190 //$('.gh-content > p:eq(2)').before('<div class="toc"></div>'); 1191 1192 if($(".toc-list").children().length > 1){ 1193 $('.toc-list').before('<h3> Article Structure </h3> <br/>') 1194 } 1195 1196 // 1197 var url = window.location.href 1198 if(url.split("/ar/").length == 2){ 1199 $('.gh-main').addClass('rtl') 1200 } 1201 // 1202 var digi = '<a style="margin:0px auto !important;text-align:center; padding:5px !important;" href="https://www.digitalocean.com/?refcode=f8b59497c8b2&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge"><img src="https://web-platforms.sfo2.cdn.digitaloceanspaces.com/WWW/Badge%203.svg" style="margin:0px auto !important;" width="380" height="120" alt="DigitalOcean Referral Badge" /></a>' 1203 1204 //$('#end-content').after('<div style="width:100%;text-align:center;margin:0px auto; padding:10px; margin:5px;backgroundx:#f4f4f4;"> <hr/> <br/><strong>This Website is Running on</strong> <br/>'+ digi+'<hr/></div>'); 1205 1206 //$('.gh-content > p:last').after('<div style="width:100%;text-align:center;margin:0px auto;"> <br/>'+ digi+'</div>'); 1207 // 1208 // gh-sidebar-inner 1209 //$('.gh-about').after('<div style="width:100%;text-align:center;margin:0px auto;"> <hr/> <br/>'+ digi+'<hr/></div>'); 1210 // 1211 // LAST 1212 //var ads = '<ins class="adsbygoogle" style="display:block;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-7543508590810245" data-ad-slot="5773221188"></ins>'; 1213 regex = /.*[0-9].*/; 1214 1215 //figure.kg-card > a.kg-bookmark-container > div.kg-bookmark-thumbnail > img 1216 1217 $('.kg-bookmark-thumbnail > img').each(function(i){ 1218 1219 // console.log('e',i) 1220 1221 //$(i).attr('height','100'); 1222 }) 1223 1224 }) 1225</script>
vendor: 144 bytes, lines 1225-1227
1225 1226 1227<script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="4406c2f53d7bfc4ef69efdfe-|49" defer></script>
1227<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"76347ce5fc454a19b8893a083449a781","r":1,"spa":2}' crossorigin="anonymous"></script>
1227 1228</body> 1229</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.