<!-- https://slash.tik.unej.ac.id/compare · 2026-10-29 -->

# How Slash compares.

> How Slash compares with Caddy, Nginx and Apache httpd, and how SPMPlus compares with Nginx Proxy Manager.

As of October 2026, open-source editions. Logos and trademarks belong to their owners.

## Slash, Caddy, Nginx and Apache httpd

|  | Slash | Caddy | Nginx | Apache httpd |
| --- | --- | --- | --- | --- |
| Category | Web server, reverse proxy and Kubernetes Ingress controller | Web server and reverse proxy | Web server, reverse proxy, load balancer | Web server |
| Language | Rust | Go | C | C |
| Memory safe | Yes (no `unsafe` in its own code) | Yes | No | No |
| Automatic HTTPS | Built in: HTTP-01, TLS-ALPN-01, DNS-01 (Cloudflare), ARI | Built in; DNS-01 for many providers via plugins | certbot or an extra ACME module | `mod_md` |
| HTTP/3 | Built in, on | Built in, on | Available, must be enabled | — |
| WebSocket, gRPC | Yes | Yes | Yes | Yes (`mod_proxy`) |
| Load balancing | Round-robin with active and passive health checks | Many policies with health checks | Round-robin, least_conn, hash; active health checks only in NGINX Plus | `mod_proxy_balancer` |
| Static files | Index, SPA fallback, pre-compressed files, range requests; dotfiles and escaping symlinks refused | `file_server` | `root`, `try_files` | `DocumentRoot`, `.htaccess` |
| PHP / FastCGI | Yes (php-fpm); `wordpress` and `laravel` presets with safe rules built in | Yes (`php_fastcgi`) | Yes (`fastcgi_pass` with manual configuration) | Yes (`mod_php`, php-fpm) |
| TCP/UDP proxy | Yes: TCP, UDP, TLS passthrough (SNI), PROXY protocol | `layer4` plugin | Yes (`stream`) | — |
| Kubernetes Ingress | Yes: `slash-ingress` (Ingress v1, Helm chart), reads ingress-nginx annotations | Community project | ingress-nginx, NGINX Ingress Controller | — |
| Rate limiting | Built in, per route | Plugin | Built in (`limit_req`) | Extra modules |
| Security headers | Per-host preset, on by default | Written in the Caddyfile | Written in the config | Written in the config |
| WAF | Built in: AssaultCuirass (OWASP CRS v4, Rust engine, linear-time regex) | Plugin (Coraza) | ModSecurity module | ModSecurity module |
| Configuration | Slashfile, or the SPMPlus web panel | Caddyfile / JSON with an admin API | `nginx.conf` | `httpd.conf`, `.htaccess` |
| Reload | Validated, swapped atomically | Graceful | `nginx -s reload` | `graceful` |
| Official web panel | Yes (SPMPlus) | Third party | Third party | Third party |

Like Nginx and Caddy, Slash uses central configuration in place of `.htaccess`: the `wordpress` and `laravel` presets already carry the rewrite rules usually written there.

The same WordPress site in Caddy and in Slash:

Caddyfile:

```
blog.example.com {
    root * /var/www/blog
    php_fastcgi localhost:9000
    file_server
}
```

Slashfile:

```
blog.example.com    wordpress /var/www/blog
```

## SPMPlus and Nginx Proxy Manager

|  | SPMPlus | Nginx Proxy Manager |
| --- | --- | --- |
| Reverse proxy | Slash (Rust) | Nginx (OpenResty) |
| Panel backend | Rust (Axum) with SQLite | Node.js with SQLite or MySQL/MariaDB |
| Architecture | Proxy and panel separate; the proxy keeps running when the panel is down | Panel and Nginx in one container |
| Docker images | Two distroless images, read-only, non-root | One image, root by default |
| Native install | Yes (static binary with systemd) | Not official |
| Applying changes | Full validation, diff preview, atomic swap, version history | Writes Nginx config files, then reloads |
| Let’s Encrypt | HTTP-01, TLS-ALPN-01, DNS-01 (Cloudflare) | HTTP-01, DNS-01 for many providers |
| HTTP/3 | Yes | — |
| Compression | zstd, Brotli, gzip | gzip |
| Access lists (IP and basic auth) | Yes | Yes |
| Rate limiting | Per route, from the panel | Manual Nginx config |
| Security headers | Per-host preset | HSTS and “Block common exploits”; the rest manual |
| TCP/UDP streams | Yes, plus TLS passthrough (SNI) | Yes |
| Accounts | Multiple admins, passkeys and TOTP | Multiple users with per-feature permissions |
| Metrics | Dashboard and Prometheus | — |

SPMPlus is built for HTTP/3, secure defaults, configuration changes validated before they reach the proxy, and a small memory footprint.

[Get started](https://slash.tik.unej.ac.id/start)
