WordPress plugin intelligence profile

OpenPorte Spam Protection

Stop spam without CAPTCHAs: a Proof-of-Work anti-spam check for your forms and logins. Open-source, self-hosted, privacy-first.

WP PlugIndex snapshot

Current directory snapshot

Tested up to WordPress 7.1
Current version1.30.1
WordPress coverageTested up to WordPress 7.1
Minimum stackWP 5.6 · PHP 8.0
Directory statusactive
Last directory update31 Oct 20261d ago
Active installations500Adoption metric — not a quality score
WordPress.org rating5.0 / 5 from 5 ratings
Official packageDirect from WordPress.org

Repository metrics are context, not quality scores. Active installations measure adoption and can strongly reflect a plugin’s age and historical popularity. Ratings, recent updates and “Tested up to” metadata also do not guarantee modern code, error-free operation, security, feature completeness or suitability for a particular site. Why active installs don’t tell the whole story →

WP PlugIndex currently records OpenPorte Spam Protection version 1.30.1 as active, updated 1d ago and tested up to WordPress 7.1.

Overview

About this plugin

OpenPorte is a free and open-source anti-spam plugin that protects WordPress

forms from spam using a lightweight Proof-of-Work challenge instead of CAPTCHAs.

The goal is to make spam expensive for bots while keeping the experience almost

invisible for legitimate visitors and respecting their privacy.

For site owners, OpenPorte offers an easy to configure and deploy modern

spam protection under their control.

For the site users, it offers an accessible, transparent and privacy-friendly

alternative to CAPTCHAs.

OpenPorte is built around the open-source ALTCHA widget.

Some highlights:

  • CAPTCHA-free spam protection
  • Fully open source (GPL)
  • Self-hosted – no mandatory external service
  • Designed to be accessible and privacy-friendly: no cookies and no tracking, which keeps GDPR compliance simple
  • Compatible with existing ALTCHA integrations
  • Easy migration for users of ALTCHA Spam Protection v1 (≤ 1.26.3)

For the list of contributors, refer to our GitHub project: Contributors.

AI-assisted development

AI-assisted project. Architecture, security decisions, and final review are

mine; AI tools (Claude, Mistral, and others) help with drafting code, tests,

translations, and documentation — without them, one person couldn’t keep

this fork alive.

Background

The original ALTCHA Spam Protection WordPress plugin (v1) was open source

(GPLv2). Its authors have since released a version 2/3 which is no longer

open source. They no longer maintain the open source project and recommend

that users migrate to v2/v3. org

for their offering.

OpenPorte started as a fork and continues the v1 line as free software

(GPLv2 or later) for users who want to stay on a fully open-source,

self-hosted solution. It is a faithful fork: existing v1 installations

can switch to OpenPorte and keep their settings (see Upgrading).

Compatibility

OpenPorte is backward-compatible with ALTCHA Spam Protection v1 plugin:

  • Your existing settings are migrated automatically on activation.
  • The [altcha] shortcode keeps working (alongside the new [openporte] ).
  • The altcha_* filters and actions keep firing as deprecated aliases.
  • Custom API Mode has been verified against GateCHA,

an open source server implementing the creation and verification of ALTCHA challenges.

See the Deprecations section for the full list of compatibility aliases and

what they map to.

Upgrading

From the original ALTCHA v1 plugin

Deactivate the old ALTCHA plugin, then install and activate OpenPorte. Your

existing configuration is detected and copied into the OpenPorte settings on

first activation; the original ALTCHA settings are left untouched, so you can

roll back to ALTCHA v1 without losing anything. Do not run both plugins at the

same time.

From ALTCHA v2/v3

If your site was already moved to ALTCHA v2/v3 (for example by the automatic

0 update), your original v1 settings are normally still in the database:

the v2/v3 upgrade neither migrates nor removes them. Deactivate ALTCHA, then

install and activate OpenPorte — it finds and imports the v1 settings, even

when the v1 plugin itself has long been deleted. Settings made in v2/v3 are

not read.

Self-hosted transport (1.30.0) and downgrading

0 changes nothing: every site keeps serving challenges

through the REST API until you select Ajax under Settings → OpenPorte.

0, switch

back to REST API first and purge your page and CDN caches. If you have already

downgraded, purge those caches now: older release have no Ajax endpoint, so a

page cached with the Ajax challenge URL cannot load a challenge.

Deprecations

The following ALTCHA-era identifiers are kept as aliases for backward

compatibility and are scheduled for removal in a future release:

  • The [altcha] shortcode — use [openporte].
  • The altcha/v1 REST namespace — use openporte/v1.
  • The altcha_* filters and actions — now firing through WordPress’ deprecated

hook mechanism; use the openporte_* equivalents.

  • The AltchaPlugin class and the ALTCHA_VERSION / ALTCHA_WIDGET_VERSION

constants — use OpenPortePlugin and the OPENPORTE_* constants.

  • Integrations targeting paid-only third-party plugins; affected users should

migrate to the official ALTCHA v2/v3 plugin.

  • The “Custom HTML” integration (auto-configuration of hand-written

tags) — place the [openporte] shortcode instead. You can

re-enable it for now under Settings → OpenPorte → Integrations.

Privacy

No cookies, no tracking

OpenPorte prioritizes user privacy by avoiding the use of cookies and fingerprinting techniques.

No external service

This plugin remains fully contained within your WordPress installation, eliminating any reliance on external services.

Modes of Operation

OpenPorte verifies submissions in one of two modes, selected in the settings

(API Mode):

  • Self-hosted (default) — a proof-of-work challenge is issued and verified by

your own WordPress site, served through the REST API (default) or

php (see Self-hosted transport ). Fully self-contained, with no

external service and no additional setup beyond enabling the integrations you

need.

  • Custom — point the Challenge URL at your own ALTCHA-compatible backend (for

example a self-hosted ALTCHA Sentinel, or GateCHA ).

Submissions are verified with your site’s shared secret.

org regional SaaS classifier offered by earlier versions has

been removed; both remaining modes are free and self-hostable.

Self-hosted transport (REST API or Ajax)

In Self-hosted mode the widget fetches each challenge from your own site. The

Self-hosted transport setting (Settings → OpenPorte, below API Mode) chooses

which endpoint serves it:

  • REST API (default): /wp-json/openporte/v1/challenge, or

rest_route=/openporte/v1/challenge with plain permalinks.

  • Ajax: /wp-admin/admin-ajax.php?action=openporte_challenge.

Both serve the same challenge, are verified the same way, and stay available

whichever one is selected. The deprecated /wp-json/altcha/v1/challenge alias

is still served too. In Custom API mode all of them refuse with an error

instead: your backend issues the challenges there.

Keep REST API unless a security plugin blocks the REST API for logged-out

visitors; then either allow /openporte/v1/challenge in that plugin, or switch

to Ajax. php is blocked for visitors instead, stay on REST API.

The same applies when a page cache or CDN stores the REST API’s responses

(opening the challenge URL twice, logged out, shows the same challenge): exclude

/openporte/v1/challenge from it, or switch to Ajax. 1 the challenge

endpoints already opt out of LiteSpeed Cache and of caching plugins that honour

DONOTCACHEPAGE.

OpenPorte does not test this automatically: a check from the server cannot see

firewall, CDN or browser-side rules. See the FAQ for how to check by hand.

On multisite, each site has its own transport setting; a site where it was

never saved uses the REST API.

Supported Integrations

  • CoBlocks
  • Contact Form 7
  • Elementor Pro Forms (deprecated — paid plugin, see Deprecations)
  • Formidable Forms
  • Forminator
  • GravityForms
  • HTML Forms
  • wpDiscuz
  • WPForms
  • WordPress Login, Register, Password reset
  • WordPress Comments
  • WooCommerce
  • Many other plugins and your own content (via the [openporte] shortcode, or the deprecated [altcha] alias)

Source Code

All source code for the plugin, and the ALTCHA widget is available on GitHub. In the repository, you’ll also find versions of non-minified JavaScript and CSS assets:

  • Plugin: https://github.com/openporte/openporte
  • ALTCHA Widget: https://github.com/altcha-org/altcha
WordPress.org metadata

Plugin tags

Topics listed for this plugin in the WordPress.org directory.

  • anti spam
  • captcha
  • gdpr
  • protect
  • security
Compatibility & maintenance

Compatibility & maintenance

Tested with WP 7.1

Marked as tested with the current WordPress 7.1 release.

Current WordPress releaseWordPress 7.1
WordPress.org Tested up to7.1
Minimum requirementsWordPress 5.6 · PHP 8.0
Update activity31 Oct 20261d ago

“Tested up to” is directory metadata supplied by the plugin author. WP PlugIndex does not turn an older declaration into a claim that the plugin is incompatible.

Changes recorded by WP PlugIndex

Recent tracked changes

Version1.30.01.30.1
WordPress compatibility7.1.37.1.4
Version1.29.11.30.0
WordPress compatibility7.17.1.3
Version1.29.01.29.1
Version1.28.11.29.0
WordPress compatibility7.0.47.1
Tracking & source

WP PlugIndex tracks public WordPress.org directory metadata and records selected version, compatibility and availability changes as they are detected.

Plugin watchlist

Watch this plugin

Sign in to your WP PlugIndex account or create a free account. Free accounts can watch up to 5 plugins and see what changed.

Watch limit

Watchlist limit reached

You have reached your current active watch limit.