AI Humanizer Pro rewrites robotic, AI-generated text into natural writing that reads like a real person β and slips past AI detectors. It ships as a decoupled full-stack app:
- β‘ FastAPI ASGI backend (API-only) β auth, API keys, usage analytics, OTP reset, admin console API, and the NLTK-powered humanizer.
- π¨ Next.js 14 + Three.js frontend β an SEO-optimized, scroll-driven 3D landing page plus the humanizer tool, dashboard, docs, and a full admin console.
| Feature | Description | |
|---|---|---|
| πͺ | Deep humanization | Restructures phrasing, perplexity & rhythm so output reads human, not machine |
| π‘οΈ | Detector-resistant | Lowers AI-probability scores while preserving your meaning |
| ποΈ | Tone control | Standard Β· Professional Β· Casual Β· Academic voices |
| β‘ | Instant results | Async, non-blocking backend with a live before/after diff |
| π | Developer API | Generate keys and humanize via a single REST endpoint |
| π | Usage analytics | Per-user request, latency & success-rate dashboard |
| π§βπΌ | Admin console | Users, API keys & a full activity log |
| π | 3D landing page | Scroll-driven Three.js scene + Framer Motion reveals |
| π | SEO-first | Metadata, OpenGraph, JSON-LD, sitemap & robots |
flowchart LR
U([π§ Browser]) -->|pages| N["β² Next.js 14<br/>App Router"]
N -->|backend proxy| F["β‘ FastAPI<br/>ASGI Β· Uvicorn"]
N -.->|WebGL| T["π Three.js<br/>scroll scene"]
F --> DB[("ποΈ SQLite<br/>WAL")]
F --> M["π§ SMTP<br/>OTP email"]
F --> NL["π NLTK<br/>WordNet"]
classDef front fill:#6366f1,stroke:#fff,color:#fff;
classDef back fill:#009688,stroke:#fff,color:#fff;
classDef store fill:#a855f7,stroke:#fff,color:#fff;
class N,T front;
class F,M,NL back;
class DB store;
The Next.js dev server proxies every
/backend/*request to FastAPI, keeping the session cookie same-origin (no CORS, noSameSitegymnastics).
ai-humanizer-pro/
βββ app.py # FastAPI API (auth, keys, usage, admin, humanizer)
βββ gunicorn.conf.py # Uvicorn worker config for production
βββ requirements.txt # Python deps
βββ humanizer.db # SQLite (gitignored)
βββ frontend/ # Next.js 14 + Three.js
βββ next.config.js # /backend/* β FastAPI proxy
βββ tailwind.config.js
βββ src/
βββ app/ # routes: /, /humanizer, /dashboard, /docs, /admin β¦
βββ components/ # three/, landing/, admin/, auth/, ui/, layout/
βββ context/ # AuthContext
βββ lib/ # api client, site config
Prerequisites: Python 3.11+ and Node.js 18+ (tested on 22).
python -m venv .venv
# Windows: .venv\Scripts\activate | macOS/Linux: source .venv/bin/activate
pip install -r requirements.txt
python app.py # β http://127.0.0.1:5001cd frontend
npm install
npm run dev # β http://localhost:3000Open http://localhost:3000 π
Backend
| Variable | Default | Purpose |
|---|---|---|
SECRET_KEY |
random per start | Signs the session cookie β set in prod |
ADMIN_EMAIL |
admin@aih.local |
Admin console login |
ADMIN_PASSWORD |
ChangeAdminPassword123! |
Change in prod |
SENDER_EMAIL |
β | SMTP sender for OTP email |
SENDER_PASSWORD |
β | SMTP app password |
SMTP_SERVER / SMTP_PORT |
smtp.gmail.com / 587 |
Mail server |
PORT / WEB_CONCURRENCY |
10000 / 1 |
Set by host (Render) |
Frontend
| Variable | Default | Purpose |
|---|---|---|
BACKEND_URL |
http://127.0.0.1:5001 |
Proxy target for /backend/* |
NEXT_PUBLIC_SITE_URL |
http://localhost:3000 |
Canonical URL for SEO |
POST /humanize β authenticate with a session cookie or an X-API-Key header.
π¦ Request
{
"text": "Your AI generated text here",
"tone": "professional",
"deep_mode": true
}π§ͺ Examples
curl -X POST https://noai.devprithwiraj.in/humanize \
-H "Content-Type: application/json" \
-H "X-API-Key: hmnz_your_api_key_here" \
-d '{"text":"...","tone":"professional","deep_mode":true}'const res = await fetch("https://noai.devprithwiraj.in/humanize", {
method: "POST",
headers: { "Content-Type": "application/json", "X-API-Key": "hmnz_..." },
body: JSON.stringify({ text: "...", tone: "professional", deep_mode: true }),
});
const data = await res.json();
console.log(data.humanized);sequenceDiagram
participant C as Client
participant F as FastAPI
participant N as NLTK
C->>F: POST /humanize (X-API-Key)
F->>F: verify key / session
F->>N: rephrase + perplexity spike
N-->>F: humanized text
F->>F: diff metrics + log usage
F-->>C: { humanized, ai_probability, diff_html, ... }
| Route | Description | SEO |
|---|---|---|
/ |
3D scroll landing page | β |
/humanizer |
The humanizer tool | π |
/dashboard |
Usage + API keys | π |
/docs |
API documentation | β |
/login Β· /signup Β· /forgot-password |
Auth + OTP reset | π |
/admin Β· /admin/login |
Admin console | π |
One service β website + API on a single URL (Docker):
- Render β New + β Blueprint (uses
render.yaml+Dockerfile), or set the service's Runtime = Docker (./Dockerfile). - The image builds the Next.js static export and serves it with FastAPI β no separate frontend host.
- Set
ADMIN_EMAIL,ADMIN_PASSWORD,SENDER_EMAIL,SENDER_PASSWORDin the dashboard (SECRET_KEYis auto-generated). Health check:/healthz.
π΄ Note: SQLite on ephemeral hosts resets on redeploy β use managed Postgres or a persistent disk for durable data.
- FastAPI API-only backend
- Next.js + Three.js frontend
- Admin console in Next.js
- SEO (metadata, JSON-LD, sitemap)
- Migrate SQLite β Postgres
- Rate limiting & quotas
- Stripe billing tiers
Prithwiraj π noai.devprithwiraj.in

