Bumps the npm_and_yarn group with 15 updates in the /frontend directory: | Package | From | To | | --- | --- | --- | | [axios](https://github.com/axios/axios) | `1.12.0` | `1.13.5` | | [js-yaml](https://github.com/nodeca/js-yaml) | `3.14.1` | `3.14.2` | | [picomatch](https://github.com/micromatch/picomatch) | `2.3.1` | `2.3.2` | | [ajv](https://github.com/ajv-validator/ajv) | `6.12.6` | `6.14.0` | | [diff](https://github.com/kpdecker/jsdiff) | `5.2.0` | `5.2.2` | | [minimatch](https://github.com/isaacs/minimatch) | `3.1.2` | `3.1.5` | | [flatted](https://github.com/WebReflection/flatted) | `3.3.3` | `3.4.2` | | [jsonpath](https://github.com/dchester/jsonpath) | `1.1.1` | `1.3.0` | | [lodash](https://github.com/lodash/lodash) | `4.17.21` | `4.17.23` | | [mdast-util-to-hast](https://github.com/syntax-tree/mdast-util-to-hast) | `13.2.0` | `13.2.1` | | [node-forge](https://github.com/digitalbazaar/forge) | `1.3.1` | `1.4.0` | | [qs](https://github.com/ljharb/qs) | `6.13.0` | `6.14.2` | | [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) | `6.20.1` | `6.30.3` | | [rollup](https://github.com/rollup/rollup) | `2.79.2` | `2.80.0` | | [webpack](https://github.com/webpack/webpack) | `5.101.3` | `5.105.4` | Updates `axios` from 1.12.0 to 1.13.5 - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](https://github.com/axios/axios/compare/v1.12.0...v1.13.5) Updates `js-yaml` from 3.14.1 to 3.14.2 - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/nodeca/js-yaml/compare/3.14.1...3.14.2) Updates `picomatch` from 2.3.1 to 2.3.2 - [Release notes](https://github.com/micromatch/picomatch/releases) - [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md) - [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2) Updates `ajv` from 6.12.6 to 6.14.0 - [Release notes](https://github.com/ajv-validator/ajv/releases) - [Commits](https://github.com/ajv-validator/ajv/compare/v6.12.6...v6.14.0) Updates `diff` from 5.2.0 to 5.2.2 - [Changelog](https://github.com/kpdecker/jsdiff/blob/master/release-notes.md) - [Commits](https://github.com/kpdecker/jsdiff/compare/v5.2.0...v5.2.2) Updates `minimatch` from 3.1.2 to 3.1.5 - [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md) - [Commits](https://github.com/isaacs/minimatch/compare/v3.1.2...v3.1.5) Updates `flatted` from 3.3.3 to 3.4.2 - [Commits](https://github.com/WebReflection/flatted/compare/v3.3.3...v3.4.2) Updates `jsonpath` from 1.1.1 to 1.3.0 - [Commits](https://github.com/dchester/jsonpath/commits) Updates `lodash` from 4.17.21 to 4.17.23 - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.17.23) Updates `mdast-util-to-hast` from 13.2.0 to 13.2.1 - [Release notes](https://github.com/syntax-tree/mdast-util-to-hast/releases) - [Commits](https://github.com/syntax-tree/mdast-util-to-hast/compare/13.2.0...13.2.1) Updates `node-forge` from 1.3.1 to 1.4.0 - [Changelog](https://github.com/digitalbazaar/forge/blob/main/CHANGELOG.md) - [Commits](https://github.com/digitalbazaar/forge/compare/v1.3.1...v1.4.0) Updates `qs` from 6.13.0 to 6.14.2 - [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md) - [Commits](https://github.com/ljharb/qs/compare/v6.13.0...v6.14.2) Updates `react-router` from 6.20.1 to 6.30.3 - [Release notes](https://github.com/remix-run/react-router/releases) - [Changelog](https://github.com/remix-run/react-router/blob/react-router@6.30.3/packages/react-router/CHANGELOG.md) - [Commits](https://github.com/remix-run/react-router/commits/react-router@6.30.3/packages/react-router) Updates `rollup` from 2.79.2 to 2.80.0 - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/v2.80.0/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v2.79.2...v2.80.0) Updates `underscore` from 1.12.1 to 1.13.6 - [Commits](https://github.com/jashkenas/underscore/compare/1.12.1...1.13.6) Updates `webpack` from 5.101.3 to 5.105.4 - [Release notes](https://github.com/webpack/webpack/releases) - [Changelog](https://github.com/webpack/webpack/blob/main/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack/compare/v5.101.3...v5.105.4) --- updated-dependencies: - dependency-name: axios dependency-version: 1.13.5 dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: js-yaml dependency-version: 3.14.2 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: picomatch dependency-version: 2.3.2 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: ajv dependency-version: 6.14.0 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: diff dependency-version: 5.2.2 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: minimatch dependency-version: 3.1.5 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: flatted dependency-version: 3.4.2 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: jsonpath dependency-version: 1.3.0 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: lodash dependency-version: 4.17.23 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: mdast-util-to-hast dependency-version: 13.2.1 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: node-forge dependency-version: 1.4.0 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: qs dependency-version: 6.14.2 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: react-router dependency-version: 6.30.3 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: rollup dependency-version: 2.80.0 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: underscore dependency-version: 1.13.6 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: webpack dependency-version: 5.105.4 dependency-type: indirect dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] <support@github.com>
🚀 ALwrity — AI-Powered Digital Marketing Platform
Core claim: ALwrity is a contextual content OS: it understands your brand, website, competitors, and channels, then uses that understanding to drive every story, video, podcast, and campaign, with memory and analytics in one place.
🌐 Live Demo • 📚 Docs Site • 📖 Wiki • 💬 Discussions • 🐛 Issues
What ALwrity is
- Contextual content OS: Ingests your website, competitors, and channels to build a reusable brand brain.
- Multi-surface by design: Blogs, stories, YouTube, podcasts, and video all read from the same understanding.
- Agent-driven flows: Orchestrated research, planning, writing, and optimization instead of one-off prompts.
- Production-ready: JWT/OAuth2 auth, usage tracking, limits, monitoring, and cost awareness built-in.
Why ALwrity exists
ALwrity exists for people who care more about context than prompts.
Most tools either drown you in knobs or reset to a blank page every time.
We wanted a system that:
- Remembers what your brand stands for and who you’re speaking to.
- Grounds content in real data (SEO, competitors, web) before it writes.
- Reuses that understanding across every surface instead of duplicating effort.
Why it matters for creators & marketers
- One brain, many surfaces: The same insights power blog posts, stories, YouTube scripts, podcast outlines, and video scenes.
- Less tool-juggling: Guided flows replace “copy data between 5 SaaS tools and a spreadsheet”.
- Safer, more factual content: Grounding and citations reduce hallucinations and rewrites.
- On-brand by default: Personas and brand voice settings keep outputs consistent across channels.
- Operational visibility: Scheduler “tasks needing intervention”, alerts, and logs highlight issues before your audience does.
What’s functional now
- AI Blog Writer (Phases): Research → Outline → Content → SEO → Publish, with guarded navigation and local persistence (
frontend/src/hooks/usePhaseNavigation.ts). - Story Writer: Premise → Outline → Chapters → Export, with phase navigation (
frontend/src/hooks/useStoryWriterPhaseNavigation.ts). - YouTube Creator Studio: Plan → scenes → avatar → render workflow for YouTube videos (
frontend/src/components/YouTubeCreator). - Podcast Maker / Test Persona: Turn voice + avatar into short videos using the shared video pipeline.
- Video Studio: Multi-module video creation, editing, and transformation (
frontend/src/components/VideoStudio). - SEO Dashboard: Analysis, metadata, and Google Search Console insights (see docs under
docs-site/docs/features/seo-dashboard). - LinkedIn (Factual, Google‑Grounded): Real Google grounding + citations + quality metrics for posts/articles/carousels/scripts (see
frontend/docs/linkedin_factual_google_grounded_url_content.md). - Persona System: Core personas and platform adaptations via APIs (
backend/api/persona.py). - Facebook Persona Service: Gemini structured JSON for Facebook‑specific persona optimization (
backend/services/persona/facebook/facebook_persona_service.py). - Personalization & Brand Voice: Validation and configuration of writing style, tone, structure (
backend/services/component_logic/personalization_logic.py).
See details in the Wiki: Docs Home
Quick Start
- Clone & install
git clone https://github.com/AJaySi/AI-Writer.git
cd AI-Writer/backend && pip install -r requirements.txt
cd ../frontend && npm install
- Run locally
# Backend
cd backend && python start_alwrity_backend.py
# Frontend
cd frontend && npm start
- Open and create
- Frontend: http://localhost:3000
- API docs (local): http://localhost:8000/api/docs
- Complete onboarding → generate content → publish
Integrations & Security
- Integrations: Google Search Console (SEO Dashboard), LinkedIn (factual/grounded content).
- AI Models: OpenAI, Google Gemini/Imagen, Hugging Face, Anthropic, Mistral.
- Security: JWT auth, OAuth2, rate limiting, monitoring/logging.
- Reliability: Grounding + retrieval and citation tracking for factual generation.
Tech Stack
| Area | Technologies |
|---|---|
| Backend | FastAPI, Python 3.10+, SQLAlchemy |
| Frontend | React 18+, TypeScript, Material‑UI, CopilotKit |
| AI/Research | OpenAI, Gemini/Imagen, Hugging Face, Anthropic, Mistral; Exa, Tavily, Serper (auto provider selection: Gemini default, HF fallback) |
| Data | SQLite (PostgreSQL‑ready) |
| Integrations | Google Search Console, LinkedIn |
| Ops | Loguru monitoring, rate limiting, JWT/OAuth2 |
LLM Providers: Gemini & Hugging Face
- Auto‑selection: The backend auto‑selects the provider based on
GPT_PROVIDERand available keys.- Default: Gemini (if
GEMINI_API_KEYpresent) - Fallback: Hugging Face (if
HF_TOKENpresent)
- Default: Gemini (if
- Configure:
GEMINI_API_KEY=...(text + structured JSON; image via Imagen)HF_TOKEN=...(text via Inference API; image via supported HF models)- Optional:
GPT_PROVIDER=geminiorGPT_PROVIDER=hf_response_api
- Text generation:
- Gemini: optimized for structured outputs and fast general generation
- HF: broad model access via the Inference Providers
- Image generation:
- Gemini/Imagen and Hugging Face providers are supported with a unified interface
For module details, see backend/services/llm_providers/README.md.
Documentation
- Docs Site (MkDocs): https://ajaysi.github.io/ALwrity/
- Blog Writer (phases and UI):
docs-site/docs/features/blog-writer/overview.md - SEO Dashboard overview:
docs-site/docs/features/seo-dashboard/overview.md - SEO Dashboard GSC integration:
docs-site/docs/features/seo-dashboard/gsc-integration.md - LinkedIn factual, Google-grounded content:
frontend/docs/linkedin_factual_google_grounded_url_content.md - Persona Development (docs-site):
docs-site/docs/features/content-strategy/personas.md
For additional pages, browse the docs-site/docs/ folder.
Personas (Brief)
ALwrity generates a core writing persona from onboarding data, then adapts it per platform (e.g., Facebook, LinkedIn). Personas guide tone, structure, and content preferences across tools.
- Core Persona & API:
backend/api/persona.py - Facebook Persona Service (Gemini structured JSON):
backend/services/persona/facebook/facebook_persona_service.py - Personalization/Brand Voice logic:
backend/services/component_logic/personalization_logic.py - Docs (GitHub paths):
- Personas (docs-site): https://github.com/AJaySi/AI-Writer/blob/main/docs-site/docs/features/content-strategy/personas.md
- LinkedIn Grounded Content plan: https://github.com/AJaySi/AI-Writer/blob/main/frontend/docs/linkedin_factual_google_grounded_url_content.md
At a glance:
- Data → Persona: Onboarding + website analysis → core persona
- Platform adaptations: Platform-specific JSON with validations/optimizations
- Usage: Informs tone, content length, structure, and platform best practices
Community
- Docs & Wiki: https://github.com/AJaySi/AI-Writer/wiki
- Discussions: https://github.com/AJaySi/AI-Writer/discussions
- Issues: https://github.com/AJaySi/AI-Writer/issues
- Website: https://www.alwrity.com
License
MIT — see LICENSE.
Made with ❤️ by the ALwrity team


