forked from mCaptcha/website
22 lines
No EOL
19 KiB
HTML
22 lines
No EOL
19 KiB
HTML
<!doctype html><html lang=en-us><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="ie=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-regular.woff2 type=font/woff2 crossorigin><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-700.woff2 type=font/woff2 crossorigin><link rel=stylesheet href=/main.9ddaa6af950e849ff2051cc42c60c0ded42415cd3a4a592da0be661735a255d02f1cf35801a740787195b1d6d090dc6ed9150e7ff6c899234d8fae166a93b2aa.css integrity="sha512-ndqmr5UOhJ/yBRzELGDA3tQkFc06SlktoL5mFzWiVdAvHPNYAadAeHGVsdbQkNxu2RUOf/bImSNNj64WapOyqg==" crossorigin=anonymous><noscript><style>img.lazyload{display:none}</style></noscript><meta name=robots content="index, follow"><meta name=googlebot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><meta name=bingbot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><title>December, 2021: Monthly Report - mCaptcha</title><meta name=description content="New features, improved accessibility and software integrations"><link rel=canonical href=/blog/december-2021-monthly-report/><meta name=twitter:card content="summary_large_image"><meta name=twitter:image content="/blog/december-2021-monthly-report/icon.png"><meta name=twitter:title content="December, 2021: Monthly Report"><meta name=twitter:description content="New features, improved accessibility and software integrations"><meta name=twitter:site content="@"><meta name=twitter:creator content="@"><meta property="og:title" content="December, 2021: Monthly Report"><meta property="og:description" content="New features, improved accessibility and software integrations"><meta property="og:type" content="article"><meta property="og:url" content="/blog/december-2021-monthly-report/"><meta property="og:image" content="/blog/december-2021-monthly-report/icon.png"><meta property="article:published_time" content="2021-12-23T00:00:00+00:00"><meta property="article:modified_time" content="2022-06-14T15:39:59+05:30"><meta property="og:site_name" content="mCaptcha"><meta property="article:publisher" content="https://www.facebook.com/"><meta property="article:author" content="https://www.facebook.com/"><meta property="og:locale" content="en_US"><script type=application/ld+json>{"@context":"http://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"\/"},{"@type":"ListItem","position":2,"name":"Blogdecember 2021 Monthly Report","item":"\/blogdecember-2021-monthly-report\/"}]}</script><meta name=theme-color content="#fff"><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=manifest href=/site.webmanifest></head><body class="blog single"><div class="header-bar fixed-top"></div><header class="navbar fixed-top navbar-expand-md navbar-light"><div class=container><input class="menu-btn order-0" type=checkbox id=menu-btn>
|
|
<label class="menu-icon d-md-none" for=menu-btn><span class=navicon></span></label><a class="navbar-brand order-1 order-md-0 me-auto" href=/>mCaptcha</a>
|
|
<button id=mode class="btn btn-link order-2 order-md-4" type=button aria-label="Toggle mode">
|
|
<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class="nav-item active"><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/docs/prologue/introduction/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row flex-xl-nowrap"><nav class="docs-toc d-none d-xl-block col-xl-3" aria-label="Secondary navigation"><div class=page-links><h3>On this page</h3><nav id=TableOfContents><ul><li><a href=#1-full-librejs-compliance>1. Full LibreJS Compliance</a></li><li><a href=#2-javascript-polyfill>2. JavaScript PolyFill</a></li><li><a href=#3-integration-libraries-for-vanilla-js-react-and-svelte>3. Integration libraries for Vanilla JS, React and Svelte:</a></li></ul></nav></div></nav><main class="docs-content col-lg-11 col-xl-9 mx-xl-auto"><article><div class=blog-header><h1>December, 2021: Monthly Report</h1><p><small>Posted December 23, 2021 by <a class="stretched-link position-relative" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a> ‐ <strong>2 min read</strong></small><p><p><small>Last Edited June 14, 2022</small><p></div><p class=lead>We are mCaptcha. We build kickass CAPTCHA systems that give (DDoS) attackers a run for their money. And we do all of this without tracking your users. Oh and did I mention our UX is great?</p><p>Hello and welcome to the first edition of the monthly report!</p><p>I believe free software like mCaptcha is critical to a healthy internet
|
|
but being a one-person show, there’s hardly any accountability in the
|
|
way software is built. I hope, through monthly reports, I can explain
|
|
the logic and intentions behind decisions taken in the development
|
|
process.</p><p>This month, the following things were accomplished:</p><h2 id=1-full-librejs-compliance>1. Full LibreJS Compliance</h2><p>The CAPTCHA widget and the admin dashboard are 100% LibreJS compliant!</p><figure><img class="img-fluid lazyload blur-up" data-sizes=auto src=/blog/december-2021-monthly-report/librejs-dashboard_hu856cef05000f9a4e09e1cd208f2ef170_101197_20x0_resize_q75_box.jpg data-srcset="/blog/december-2021-monthly-report/librejs-dashboard_hu856cef05000f9a4e09e1cd208f2ef170_101197_900x0_resize_q75_box.jpg 900w,/blog/december-2021-monthly-report/librejs-dashboard_hu856cef05000f9a4e09e1cd208f2ef170_101197_800x0_resize_q75_box.jpg 800w,/blog/december-2021-monthly-report/librejs-dashboard_hu856cef05000f9a4e09e1cd208f2ef170_101197_700x0_resize_q75_box.jpg 700w,/blog/december-2021-monthly-report/librejs-dashboard_hu856cef05000f9a4e09e1cd208f2ef170_101197_600x0_resize_q75_box.jpg 600w,/blog/december-2021-monthly-report/librejs-dashboard_hu856cef05000f9a4e09e1cd208f2ef170_101197_500x0_resize_q75_box.jpg 500w" width=915 height=908 alt="Screenshot of mCaptcha admin dashboard with GNU LibreJS extension's report in frame.LibreJS reports that all scripts in this webpage are accepted(and hence free software) and are licensed under the AGPL license."><noscript><img class=img-fluid sizes=100vw srcset="/blog/december-2021-monthly-report/librejs-dashboard_hu856cef05000f9a4e09e1cd208f2ef170_101197_900x0_resize_q75_box.jpg 900w,/blog/december-2021-monthly-report/librejs-dashboard_hu856cef05000f9a4e09e1cd208f2ef170_101197_800x0_resize_q75_box.jpg 800w,/blog/december-2021-monthly-report/librejs-dashboard_hu856cef05000f9a4e09e1cd208f2ef170_101197_700x0_resize_q75_box.jpg 700w,/blog/december-2021-monthly-report/librejs-dashboard_hu856cef05000f9a4e09e1cd208f2ef170_101197_600x0_resize_q75_box.jpg 600w,/blog/december-2021-monthly-report/librejs-dashboard_hu856cef05000f9a4e09e1cd208f2ef170_101197_500x0_resize_q75_box.jpg 500w" src=/blog/december-2021-monthly-report/librejs-dashboard.jpg width=915 height=908 alt="Screenshot of mCaptcha admin dashboard with GNU LibreJS extension's report in frame.LibreJS reports that all scripts in this webpage are accepted(and hence free software) and are licensed under the AGPL license."></noscript><figcaption class=figure-caption>LibreJS report of the dashboard webpage</figcaption></figure><figure><img class="img-fluid lazyload blur-up" data-sizes=auto src=/blog/december-2021-monthly-report/librejs-widget_hu9a63940a47bb530d2d35b12edf31107a_83817_20x0_resize_q75_box.jpg data-srcset="/blog/december-2021-monthly-report/librejs-widget_hu9a63940a47bb530d2d35b12edf31107a_83817_800x0_resize_q75_box.jpg 800w,/blog/december-2021-monthly-report/librejs-widget_hu9a63940a47bb530d2d35b12edf31107a_83817_700x0_resize_q75_box.jpg 700w,/blog/december-2021-monthly-report/librejs-widget_hu9a63940a47bb530d2d35b12edf31107a_83817_600x0_resize_q75_box.jpg 600w,/blog/december-2021-monthly-report/librejs-widget_hu9a63940a47bb530d2d35b12edf31107a_83817_500x0_resize_q75_box.jpg 500w" width=904 height=913 alt="Screenshot of mCaptcha client-side widget(I'm-not-a-robot widget) with GNU LibreJS extension's report in frame. LibreJS reports that all scripts in this webpage are accepted(and hence free software) and are licensed under the X11(aka MIT license). It should also detect the Apache licensing but I probably botched it up."><noscript><img class=img-fluid sizes=100vw srcset="/blog/december-2021-monthly-report/librejs-widget_hu9a63940a47bb530d2d35b12edf31107a_83817_800x0_resize_q75_box.jpg 800w,/blog/december-2021-monthly-report/librejs-widget_hu9a63940a47bb530d2d35b12edf31107a_83817_700x0_resize_q75_box.jpg 700w,/blog/december-2021-monthly-report/librejs-widget_hu9a63940a47bb530d2d35b12edf31107a_83817_600x0_resize_q75_box.jpg 600w,/blog/december-2021-monthly-report/librejs-widget_hu9a63940a47bb530d2d35b12edf31107a_83817_500x0_resize_q75_box.jpg 500w" src=/blog/december-2021-monthly-report/librejs-widget.jpg width=904 height=913 alt="Screenshot of mCaptcha client-side widget(I'm-not-a-robot widget) with GNU LibreJS extension's report in frame. LibreJS reports that all scripts in this webpage are accepted(and hence free software) and are licensed under the X11(aka MIT license). It should also detect the Apache licensing but I probably botched it up."></noscript><figcaption class=figure-caption>LibreJS report of the CAPTCHA widget webpage</figcaption></figure><h2 id=2-javascript-polyfill>2. JavaScript PolyFill</h2><p>mCaptcha relied on a WebAssembly(WASM) port of the proof-of-work
|
|
algorithm used in mCaptcha. This meanth browsers without WASM support
|
|
couldn’t process CAPTCHAs. This month, <a href=https://github.com/mCaptcha/pow_sha256-polyfill>a pure JavaScript(TypeScript,
|
|
technically) implementation</a> was released to
|
|
overcome this limitation.</p><h2 id=3-integration-libraries-for-vanilla-js-react-and-svelte>3. Integration libraries for Vanilla JS, React and Svelte:</h2><p>To make migration from existing CAPTCHA deployments to mCaptha,
|
|
integration libraries for <a href=https://www.npmjs.com/package/@mcaptcha/vanilla-glue>Vanilla
|
|
JS</a>, <a href=https://www.npmjs.com/package/@mcaptcha/react-glue>React
|
|
Js</a> and
|
|
<a href=https://www.npmjs.com/package/@mcaptcha/svelte-glue>Svelte</a> with
|
|
similar APIs very similar to that of Google’s reCAPTCHA and Cloudflare’s
|
|
hCaptcha.</p><ul><li>Source code: <a href=https://github.com/mCaptcha/glue>mCaptcha/glue</a></li></ul><h1 id=4-beginner-friendly-captcha-configuration-options>4. Beginner friendly CAPTCHA configuration options.</h1><p>The original configuration panel offers a comprehensive but daunting
|
|
task for folks that are justgetting started with mCaptcha.</p><figure><img class="img-fluid lazyload blur-up" data-sizes=auto src=/blog/december-2021-monthly-report/captcha-advanced-config_hu83b247380bbc427ee7cad0c8f4eadaf3_44711_20x0_resize_q75_box.jpg data-srcset="/blog/december-2021-monthly-report/captcha-advanced-config_hu83b247380bbc427ee7cad0c8f4eadaf3_44711_900x0_resize_q75_box.jpg 900w,/blog/december-2021-monthly-report/captcha-advanced-config_hu83b247380bbc427ee7cad0c8f4eadaf3_44711_800x0_resize_q75_box.jpg 800w,/blog/december-2021-monthly-report/captcha-advanced-config_hu83b247380bbc427ee7cad0c8f4eadaf3_44711_700x0_resize_q75_box.jpg 700w,/blog/december-2021-monthly-report/captcha-advanced-config_hu83b247380bbc427ee7cad0c8f4eadaf3_44711_600x0_resize_q75_box.jpg 600w,/blog/december-2021-monthly-report/captcha-advanced-config_hu83b247380bbc427ee7cad0c8f4eadaf3_44711_500x0_resize_q75_box.jpg 500w" width=819 height=741 alt="Screenshot of mCaptcha admin dashboard CAPTCHA creation form with advance configuration options"><noscript><img class=img-fluid sizes=100vw srcset="/blog/december-2021-monthly-report/captcha-advanced-config_hu83b247380bbc427ee7cad0c8f4eadaf3_44711_900x0_resize_q75_box.jpg 900w,/blog/december-2021-monthly-report/captcha-advanced-config_hu83b247380bbc427ee7cad0c8f4eadaf3_44711_800x0_resize_q75_box.jpg 800w,/blog/december-2021-monthly-report/captcha-advanced-config_hu83b247380bbc427ee7cad0c8f4eadaf3_44711_700x0_resize_q75_box.jpg 700w,/blog/december-2021-monthly-report/captcha-advanced-config_hu83b247380bbc427ee7cad0c8f4eadaf3_44711_600x0_resize_q75_box.jpg 600w,/blog/december-2021-monthly-report/captcha-advanced-config_hu83b247380bbc427ee7cad0c8f4eadaf3_44711_500x0_resize_q75_box.jpg 500w" src=/blog/december-2021-monthly-report/captcha-advanced-config.jpg width=819 height=741 alt="Screenshot of mCaptcha admin dashboard CAPTCHA creation form with advance configuration options"></noscript><figcaption class=figure-caption>CAPTCHA creation with advance configuration options</figcaption></figure><p>A new CAPTCHA creation format is rolled out which generates a
|
|
configuration from familiar metrics like average, peak and traffic that
|
|
took the user’s website down.</p><figure><img class="img-fluid lazyload blur-up" data-sizes=auto src=/blog/december-2021-monthly-report/captcha-easy-config_hue77a6c4a0bac5cb1e9727416c4edcb91_41711_20x0_resize_q75_box.jpg data-srcset="/blog/december-2021-monthly-report/captcha-easy-config_hue77a6c4a0bac5cb1e9727416c4edcb91_41711_900x0_resize_q75_box.jpg 900w,/blog/december-2021-monthly-report/captcha-easy-config_hue77a6c4a0bac5cb1e9727416c4edcb91_41711_800x0_resize_q75_box.jpg 800w,/blog/december-2021-monthly-report/captcha-easy-config_hue77a6c4a0bac5cb1e9727416c4edcb91_41711_700x0_resize_q75_box.jpg 700w,/blog/december-2021-monthly-report/captcha-easy-config_hue77a6c4a0bac5cb1e9727416c4edcb91_41711_600x0_resize_q75_box.jpg 600w,/blog/december-2021-monthly-report/captcha-easy-config_hue77a6c4a0bac5cb1e9727416c4edcb91_41711_500x0_resize_q75_box.jpg 500w" width=776 height=556 alt="Screenshot of mCaptcha admin dashboard CAPTCHA creation form with easy configuration options"><noscript><img class=img-fluid sizes=100vw srcset="/blog/december-2021-monthly-report/captcha-easy-config_hue77a6c4a0bac5cb1e9727416c4edcb91_41711_900x0_resize_q75_box.jpg 900w,/blog/december-2021-monthly-report/captcha-easy-config_hue77a6c4a0bac5cb1e9727416c4edcb91_41711_800x0_resize_q75_box.jpg 800w,/blog/december-2021-monthly-report/captcha-easy-config_hue77a6c4a0bac5cb1e9727416c4edcb91_41711_700x0_resize_q75_box.jpg 700w,/blog/december-2021-monthly-report/captcha-easy-config_hue77a6c4a0bac5cb1e9727416c4edcb91_41711_600x0_resize_q75_box.jpg 600w,/blog/december-2021-monthly-report/captcha-easy-config_hue77a6c4a0bac5cb1e9727416c4edcb91_41711_500x0_resize_q75_box.jpg 500w" src=/blog/december-2021-monthly-report/captcha-easy-config.jpg width=776 height=556 alt="Screenshot of mCaptcha admin dashboard CAPTCHA creation form with easy configuration options"></noscript><figcaption class=figure-caption>CAPTCHA creation with easy configuration options</figcaption></figure><p>Of course, the advance option is available and can always be swished to
|
|
at any moment!</p></article><div class="docs-navigation d-flex justify-content-between"><a href=/blog/may-2022-monthly-report/><div class="card my-1"><div class="card-body py-2">← May, 2022: Monthly Report</div></div></a><a class=ms-auto href=/blog/survey/><div class="card my-1"><div class="card-body py-2">Survey →</div></div></a></div><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/blog/12-21-monthly-report/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.14d90a1bf5eef7d2b17902afe7b9ef7f8050a0619390568503a8254f864e31029e63bec047cd6efd6d23a2470d3458899332e923065cef88508028b49ab0b873.js integrity="sha512-FNkKG/Xu99KxeQKv57nvf4BQoGGTkFaFA6glT4ZOMQKeY77AR81u/W0jokcNNFiJkzLpIwZc74hQgCi0mrC4cw==" crossorigin=anonymous defer></script></body></html> |