PageSourceSearch

https://medevel.com/luksbox-app/

html medevel.com collected 2026-09-24 18:11:13 UTC 74,199 bytes, 1,229 lines download raw bytes

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 &amp; 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 &amp; 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;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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp;
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&#x3D;250&amp;r&#x3D;x&amp;d&#x3D;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 &amp; 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 &amp; 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 &amp; 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&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;webp&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDR8fFBoeXNpY2FsJTIwVGhlcmFwaXN0fGVufDB8fHx8MTc5MDA3NzIwOXww&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;160 160w,
637                            https://images.unsplash.com/photo-1645005512942-a17817fb7c11?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;webp&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDR8fFBoeXNpY2FsJTIwVGhlcmFwaXN0fGVufDB8fHx8MTc5MDA3NzIwOXww&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;320 320w,
638                            https://images.unsplash.com/photo-1645005512942-a17817fb7c11?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;webp&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDR8fFBoeXNpY2FsJTIwVGhlcmFwaXN0fGVufDB8fHx8MTc5MDA3NzIwOXww&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;600 600w,
639                            https://images.unsplash.com/photo-1645005512942-a17817fb7c11?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;webp&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDR8fFBoeXNpY2FsJTIwVGhlcmFwaXN0fGVufDB8fHx8MTc5MDA3NzIwOXww&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;960 960w,
640                            https://images.unsplash.com/photo-1645005512942-a17817fb7c11?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;webp&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDR8fFBoeXNpY2FsJTIwVGhlcmFwaXN0fGVufDB8fHx8MTc5MDA3NzIwOXww&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;1200 1200w,
641                            https://images.unsplash.com/photo-1645005512942-a17817fb7c11?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;webp&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDR8fFBoeXNpY2FsJTIwVGhlcmFwaXN0fGVufDB8fHx8MTc5MDA3NzIwOXww&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;2000 2000w"
642                    sizes="320px"
643                    src="https://images.unsplash.com/photo-1645005512942-a17817fb7c11?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDR8fFBoeXNpY2FsJTIwVGhlcmFwaXN0fGVufDB8fHx8MTc5MDA3NzIwOXww&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;600"
644                    alt="7 Signs It&#x27;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&#x27;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&#39;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&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;webp&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxDaHJvbmljJTIwUGFpbnxlbnwwfHx8fDE3OTAwNzcxMzN8MA&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;160 160w,
666                            https://images.unsplash.com/photo-1534343133720-0c20dba3a360?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;webp&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxDaHJvbmljJTIwUGFpbnxlbnwwfHx8fDE3OTAwNzcxMzN8MA&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;320 320w,
667                            https://images.unsplash.com/photo-1534343133720-0c20dba3a360?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;webp&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxDaHJvbmljJTIwUGFpbnxlbnwwfHx8fDE3OTAwNzcxMzN8MA&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;600 600w,
668                            https://images.unsplash.com/photo-1534343133720-0c20dba3a360?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;webp&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxDaHJvbmljJTIwUGFpbnxlbnwwfHx8fDE3OTAwNzcxMzN8MA&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;960 960w,
669                            https://images.unsplash.com/photo-1534343133720-0c20dba3a360?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;webp&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxDaHJvbmljJTIwUGFpbnxlbnwwfHx8fDE3OTAwNzcxMzN8MA&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;1200 1200w,
670                            https://images.unsplash.com/photo-1534343133720-0c20dba3a360?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;webp&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxDaHJvbmljJTIwUGFpbnxlbnwwfHx8fDE3OTAwNzcxMzN8MA&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;2000 2000w"
671                    sizes="320px"
672                    src="https://images.unsplash.com/photo-1534343133720-0c20dba3a360?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxDaHJvbmljJTIwUGFpbnxlbnwwfHx8fDE3OTAwNzcxMzN8MA&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;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&#39;t think about physical therapy until something goes wrong. A tweaked back, a sports injury, a scheduled knee replacement, or pain that just won&#39;t go away. By then, you&#39;re in a hurry, and it&#39;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&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;webp&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDh8fHNwb3J0JTIwaW5qdXJ5fGVufDB8fHx8MTc5MDA3NzAxNXww&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;160 160w,
695                            https://images.unsplash.com/photo-1741540037533-2a84caa3e5ac?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;webp&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDh8fHNwb3J0JTIwaW5qdXJ5fGVufDB8fHx8MTc5MDA3NzAxNXww&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;320 320w,
696                            https://images.unsplash.com/photo-1741540037533-2a84caa3e5ac?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;webp&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDh8fHNwb3J0JTIwaW5qdXJ5fGVufDB8fHx8MTc5MDA3NzAxNXww&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;600 600w,
697                            https://images.unsplash.com/photo-1741540037533-2a84caa3e5ac?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;webp&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDh8fHNwb3J0JTIwaW5qdXJ5fGVufDB8fHx8MTc5MDA3NzAxNXww&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;960 960w,
698                            https://images.unsplash.com/photo-1741540037533-2a84caa3e5ac?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;webp&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDh8fHNwb3J0JTIwaW5qdXJ5fGVufDB8fHx8MTc5MDA3NzAxNXww&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;1200 1200w,
699                            https://images.unsplash.com/photo-1741540037533-2a84caa3e5ac?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;webp&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDh8fHNwb3J0JTIwaW5qdXJ5fGVufDB8fHx8MTc5MDA3NzAxNXww&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;2000 2000w"
700                    sizes="320px"
701                    src="https://images.unsplash.com/photo-1741540037533-2a84caa3e5ac?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDh8fHNwb3J0JTIwaW5qdXJ5fGVufDB8fHx8MTc5MDA3NzAxNXww&amp;ixlib&#x3D;rb-4.1.0&amp;q&#x3D;80&amp;w&#x3D;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&#39;
708ve been cleared to move again, the pain has settled, and you&#39;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.