
EnglishEdit AI: WordPress AI Tooling
Two custom WordPress plugins that power the editing and transcription features on EnglishEdit.ai, integrating OpenAI's language and speech APIs into real content workflows.
EnglishEdit AI: Building the AI Layer for a Writing Tool
EnglishEdit.ai helps non-native English speakers write more clearly and confidently. I was brought in to build the AI tooling that runs underneath β two custom WordPress plugins that connect the platform to OpenAI's APIs and integrate with the site's existing user system.
Text Rewriting Plugin
The editing plugin gives users a set of parameters before they submit text: how aggressively to edit (light, moderate, or heavy), who they're writing for (general, business, academic, email, casual), which English variant to use, and what they're trying to accomplish.
Each combination feeds into a prompt I built dynamically in PHP, constructed from mapped instruction strings. The prompt gets sent to OpenAI's completions API, and the result is compared against the original using a character-level diff library β so instead of just replacing the text, users see exactly what changed, highlighted inline. That diff view was one of the more satisfying parts to build; it makes the AI's suggestions feel reviewable rather than opaque.
The plugin also logs every request to a custom database table β original text, rewritten text, token count, timestamp β with a scheduled cleanup job that purges records older than 30 days. There's an admin dashboard where the client can monitor usage across users.
Audio Transcription Plugin
The transcription plugin lets users upload meeting recordings and receive formatted transcripts. It uses OpenAI's Whisper model for speech-to-text, with an optional translation step for non-English audio.
The main technical challenge was the Whisper API's 25MB file size limit. For larger recordings, the plugin reads the file in chunks, sends each through Whisper separately, and reassembles the text. After raw transcription, the result goes through a second API call β GPT-4 with a configurable speaker prompt β so instead of an unlabeled wall of text, users get a readable transcript with speaker attribution. The speaker prompt is configurable from the WordPress admin, which let the client tune the formatting without touching code.
The plugin integrates with the site's existing credit system, deducting usage based on audio duration before processing. Users can save transcripts directly as WordPress posts.
Approach
Both plugins follow standard WordPress conventions: the Settings API for configuration, AJAX handlers with nonce verification, and shortcodes for embedding on pages. The frontend is jQuery. The AI work is mostly prompt engineering and API integration β knowing which model to use for what, how to structure instructions, and where to handle the edges.
APIs: OpenAI (GPT-3.5-turbo-instruct, Whisper, GPT-4)
Libraries: orhanerday/openai-php, jfcherng/php-diff
Platform: WordPress (PHP, jQuery)
More Projects
Explore other projects in my portfolio