# automated posting to X — xqboost

auto-posts approved tweets to X via API on a schedule — morning slot for archive backlog, evening slot for current builds

Type: project entry

Published: 2026-03-24

[Original page](<https://artlu.ai/project/automated-posting-to-x-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: Node.js, OAuth, X API, Firestore, Firebase, GitHub Actions

## Details

auto-post pipeline for xqboost that connects the tweet queue to X's API.

the system that makes xqboost a real publishing tool instead of a draft manager. approved tweets get posted automatically on a schedule — no manual copy-paste needed.

**how it works**
- GitHub Action runs twice daily — 9am (morning slot) and 9pm (evening slot)
- morning slot posts `archive` tweets, catching up the backlog of past projects
- evening slot posts `current` tweets about today's builds
- random 0-90 minute delay on each run to avoid bot detection patterns
- `post-tweet.js` signs requests with `OAuth 1.0a` and posts to X API v2

**pipeline rules**
- checks `settings/autopost` in Firestore — if disabled, exits immediately
- picks tweets based on slot type, with manual `postOrder` override support
- on success: marks tweet as `posted`, saves X post URL back to Firestore
- on failure: marks as `failed` with error message, won't retry

**generator improvements**
- queue cap of 10 pending tweets — generator stops when queue is full
- one announcement per source — dismissed tweets count as "covered"
- max 3 drafts per run to prevent flooding
- `t.co`-aware character counting (URLs = 23 chars)

the pipeline that turns a queue into a feed.

## Links

[Site or demo](<https://xqboost.netlify.app/?t=1711252800>)

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

## Related build notes

[automated posting to X — xqboost pt3](<https://artlu.ai/ai/log/day-7-automated-posting-to-x-xqboost-pt3.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>)
