Squigglr — AI Humanization Platform
Turn robotic AI text into natural, emotional, and platform-ready content that actually sounds human. Squigglr is purpose-built to close the gap between AI-generated drafts and writing that resonates — adapted for specific platforms, audiences, and voices.
🔗 Live at squigglr.app
What Is Squigglr?
Most AI writing tools generate text that reads as generated — stiff phrasing, hollow structure, no personality. Squigglr sits on top of that output and rewrites it into content that feels authentic.
It combines a humanization engine, a full chat studio, long-term style memory, and built-in agent tools into a single interface. Whether you're polishing a LinkedIn post, drafting a Reddit comment, or generating email copy, Squigglr adapts the tone and structure to fit both the platform and your voice.

Features
AI Humanization Engine
The core of Squigglr. Paste any AI-generated text and transform it instantly — no prompt engineering, no manual editing.
- ▸One-click humanization — rewrites AI output into natural-sounding prose
- ▸8 writing styles — Casual, Professional, Emotional, Witty, Concise, Storytelling, Persuasive, Friendly
- ▸Emotion engine — injects authentic resonance into otherwise flat content
- ▸Platform intelligence — auto-adapts tone and structure for Reddit, LinkedIn, Twitter, and more
Chat Studio
A full-featured AI chat interface built for real workflows.
- ▸Persistent chat threads with smart sidebar organization (Today / Yesterday / Older)
- ▸Real-time streaming responses with mid-stream abort
- ▸Auto-generated chat titles with rename and search (Cmd+K)
- ▸Gateway view with curated suggestion prompts to get started fast

Model Management
- ▸5 free built-in models via OpenRouter — Owl Alpha, Nemotron, Laguna M.1, GPT-OSS, and more
- ▸Bring Your Own Key (BYOK) — connect your own OpenRouter API key
- ▸Custom model definitions — label and use any OpenRouter model
- ▸Per-model sampling controls — temperature, top-p, frequency and presence penalty tuning per model
Long-Term Style Memory
Squigglr remembers your voice across sessions using vector-powered semantic search (Mem0 + pgvector).
- ▸Save assistant responses as persistent memories
- ▸Automatic context retrieval during future conversations
- ▸Per-plan memory caps with a full memory management UI
Agent Tools
Built-in integrations accessible directly from the chat interface.
- ▸Web Search — real-time results via Tavily API
- ▸Image Generation — generate and store images via OpenRouter + Cloudflare R2
- ▸Email Drafting — AI-composed email cards ready to send
- ▸Memory Saving — save key context from any conversation as a long-term memory
Billing & Subscriptions
- ▸3 tiers — Free, Plus ($20/mo), Pro ($40/mo)
- ▸Monthly credit wallets powered by Dodo Payments
- ▸Nanosecond-level usage tracking and cost analytics
Tech Stack
| Layer | Technology |
|---|---|
| Frontend | Next.js 16 (App Router), React 19, TypeScript 5.9 |
| Styling | Tailwind CSS 4, Framer Motion, Radix UI, Lucide Icons |
| State & Data | TanStack React Query, Zod 4, react-hook-form |
| Backend | Express 5, TypeScript 6 |
| Database | PostgreSQL + Drizzle ORM, Redis |
| AI / LLM | Vercel AI SDK 6, OpenRouter, Mem0 (pgvector), Tavily |
| Auth | Better Auth — email/password + Google OAuth |
| Payments | Dodo Payments |
| Storage | Cloudflare R2 (S3-compatible) |
| Infrastructure | Node.js, Turborepo, npm workspaces |
| Resend | |
| Security | Helmet, CORS, express-rate-limit, CSP |
Architecture
The project is a Turborepo monorepo with two apps and a shared component library.
squigglr/
├── apps/
│ ├── web/ # Next.js 16 frontend (port 3000)
│ └── api/ # Express 5 REST API (port 5001)
├── packages/
│ ├── ui/ # Shared React component library
│ ├── eslint-config/
│ └── typescript-config/
└── turbo.json # Turborepo orchestration
The frontend and API are fully decoupled. The API handles all AI calls, auth, billing logic, and memory operations. The frontend communicates via REST and streams responses in real time using the Vercel AI SDK.
Key Design Decisions
Why OpenRouter? It gives users access to multiple frontier models under one API key, with easy BYOK support so power users can bring their own quota.
Why Mem0 + pgvector? Semantic search over past memories lets Squigglr retrieve context that's actually relevant — not just the most recent messages. This makes personalization work across sessions without polluting the context window.
Why Dodo Payments? Purpose-built for AI products with usage-based billing, credit wallets, and webhook infrastructure that integrates cleanly with a cost-tracking backend.