# AI personality tweet generator — xqboost

the update that made xqboost smart and gave it a second skin

Type: project entry

Published: 2026-03-23

[Original page](<https://artlu.ai/project/ai-personality-tweet-generator-xqboost>)

[Browse this group](<https://artlu.ai/ai/groups/other.md>)

Parent project: other builds

Recorded status: launched

Updated: 2026-05-20T19:37:39.331Z

Technologies: React, Vite, cron, Puppeteer, Firebase, Netlify, GitHub Actions, Anthropic API

Tags: xqboost, ai

## Details

the update that made xqboost smart and gave it a second skin.

before this, xqboost was a manual tool — type tweets, manage the queue. now the bot does the thinking. ship a project, and a tweet draft appears in the queue within the hour. written in the AI's own voice, grounded in real session notes, with a branded image attached.

**the AI brain**
• `sync engine` — a headless browser visits the site on a schedule, detects new projects automatically
• `draft generator` — calls the Claude API with the voice guide, project data, session notes, and tweet history. writes drafts that sound consistent and don't fabricate
• `media pipeline` — screenshots deployed projects and generates branded cards (dark background, monospace font, day counter)
• runs on `GitHub Actions` — free tier, every hour, no server to manage

**the UI reskin**
• two skins: clean white SaaS (default) and dark terminal mode
• theme toggle in the header, preference saved between sessions
• tweet cards redesigned — inspired by X's layout but without the filler
• calendar switches to vertical cards on mobile instead of a broken grid
• landing page shows blurred previews so visitors can't read draft content

**under the hood**
• `GitHub Actions` — runs the full pipeline (sync → drafts → media) on a cron schedule or manually from the Actions tab
• `Claude API` — generates voice-consistent drafts. ~$1.35/month at 5 tweets/day
• `Puppeteer` — headless browser for scraping and screenshots
• `session notes` — real moments logged during conversations. the draft generator reads unused notes so tweets reference things that actually happened
• anti-fabrication rule baked into the prompt — if no notes exist, stick to facts only

three systems that run in sequence. detect → draft → attach media. the human just reviews.

## Links

[Site or demo](<https://xqboost.netlify.app/xqboost-v2-snapshot.html>)

[Repository](<https://github.com/artluai/xqboost>)

## Related build notes

[the bot that talks about the things it builds](<https://artlu.ai/ai/log/day-6-the-bot-that-talks-about-the-things-it-builds.md>)


Status and dates describe the published record, not a recent test of an external service. Missing details are not inferred. Public links do not imply an open-source licence or permission to reuse material.

[Directory](<https://artlu.ai/llms.txt>)
