altcha-org

altcha: Self-Hosted CAPTCHA Alternative with Proof of Work

ALTCHA is a TypeScript web component for self-hosted, privacy-first protection against spam and abuse, using proof of work instead of visual puzzles. It avoids tracking and fingerprinting, with accessibility features and server integrations for multiple languages.

ActiveTypeScriptMITSecurityPrivacySelf Hosted
Stars
2.9k
Forks
143
Last commit
17 days ago
Contributors
1
Releases, 12 months
21

Our take

Activeregular commits and releases

Health score

44/100

How it is scored
Activity
64
Community
4
Issues
64
Pull requests
no data
  • Releases more often than 75% of the projects we track
  • Fewer contributors than 91% of the projects we track

ALTCHA is an actively maintained, self-hosted CAPTCHA alternative with a broad integration ecosystem, though its development is concentrated in one contributor.

Good fit if

  • You want privacy-first, self-hosted spam protection based on proof of work.
  • Your frontend can use Web Components and the Web Crypto API, and you can implement server-side challenge verification.
  • Accessibility and support for multiple server languages are important to your integration.

Look elsewhere if

  • You need a solution that does not require operating or integrating a verification server.
  • You must support Internet Explorer 11 or browsers without Web Crypto API support.
  • Your team requires a project with a broader contributor base, since most of the code comes from one person.
All health signals
Last commit2026-10-22 (17 days ago)
Commits, last 90 days21
Releases, last 12 months21 (latest v3.5.0, 2026-10-22)
Contributors1
Issues closed, last 90 days8 (typically closed in 2 days)
Project age2 years

Checked on 2026-11-08 with the GitHub API.

Overview

ALTCHA is a self-hosted security solution built around a proof-of-work (PoW) mechanism. Its TypeScript web component protects websites, APIs, and online services from spam and abuse without relying on third-party CAPTCHA services, tracking cookies, or browser fingerprinting.

Visitors can complete verification through background computation rather than traditional visual puzzles. Teams add the widget to forms and connect it to a server-side integration that issues and verifies challenges. The project emphasizes GDPR compliance and accessibility, including WCAG 2.2 AA and European Accessibility Act compliance.

Key Features

  • Uses background proof of work to verify visitors without standard visual puzzles.
  • Supports PBKDF2 and SHA algorithms by default, with optional Argon2 and Scrypt workers.
  • Provides image and audio code-challenge fallbacks through ALTCHA Sentinel or a custom server implementation.
  • Ships as a Web Component that can be installed from npm and added to forms.
  • Offers multiple widget layouts, configuration options, events, and more than 50 languages.
  • Supports server integrations in TypeScript, Dart, PHP, Go, Python, Java, Ruby, Elixir, Rust, and C++.
  • Can send verification payloads as form fields or cookies, and supports a strict-CSP bundle option.

Use Cases

  • A website team wants to protect contact or signup forms without sending visitor data to an external CAPTCHA provider.
  • An API operator needs a challenge-and-verification flow to reduce automated spam or abuse.
  • An accessibility-focused service needs alternatives to visual puzzles, including audio and code challenges.
  • A team running its own infrastructure wants to choose proof-of-work settings and integrate verification with its existing server stack.

What you need

Detected in the repository

  • Node.js (from package.json)
  • A test suite and automated checks on GitHub Actions

License in plain words

MITpermissive

  • Commercial use: yes
  • Modify and redistribute: yes
  • You must keep: the copyright and license notice
  • Share your changes: no

A summary, not legal advice: the LICENSE file is what applies.

Getting Started

Install the widget from npm and import it in your application:

npm install altcha
import 'altcha';

Add an <altcha-widget> to a form and configure it with a challenge endpoint. See the README and integration documentation for configuration and server setup.

Considerations

  • The project is active, with regular commits and releases, and issues are typically handled quickly. However, development is concentrated in a single contributor, which can make continuity dependent on that maintainer.
  • Widget support depends on Web Components and the Web Crypto API. Internet Explorer 11 and older are explicitly unsupported.
  • The widget alone is not the full verification system. You need a compatible server integration, and image or audio code challenges require ALTCHA Sentinel or a custom implementation.
  • Argon2 and Scrypt require separate worker imports and registration. They are not bundled in the default widget setup.
  • ALTCHA describes its privacy and accessibility compliance in the README. Teams should assess those claims against their own legal and accessibility requirements.

Found this useful?

Share it with someone who would like altcha.