Turn what you build into signal people follow. DevPulse AI is a research-first content and growth operating system for software engineers—grounded in real project evidence, selective about what earns a publishing window, and human-controlled at the final boundary.
Live product · Product proof · Signal engine · Architecture · Quick start
Most content tools begin with a blank prompt. DevPulse begins upstream—with shipped work, verified repository changes, relevant engineering research, and the decisions that make a technical point of view worth following.
- Project-first memory — approved facts from owned repositories become traceable source evidence.
- Research before writing — lane-specific collectors find only material relevant to the assigned editorial goal.
- Quality must be earned — grounding, novelty, repetition, cooldown, and platform-fit gates can intentionally skip a weak slot.
- One idea, native formats — X and LinkedIn receive distinct platform-aware drafts instead of duplicated copy.
- Human at the boundary — DevPulse recommends, prepares, and measures; the user always publishes manually.
- Outcomes close the loop — checkpoints, experiments, attribution, and weekly reviews turn metrics into approval-gated strategy.
The product connects durable project memory with a deterministic decision layer. Repository facts remain traceable; quality, novelty, and cadence determine whether a draft deserves attention.
| Workspace | What it does |
|---|---|
| Command Center | Summarizes review queues, ready packs, recent activity, and runtime state |
| Publishing | Ranks X and LinkedIn independently, recommends timing, and explains intentional holds |
| Research Radar | Shows fresh sources, relevance scores, research runs, and collection errors |
| Project Memory | Syncs owned repositories read-only and turns meaningful changes into reviewable fact cards |
| Content Library | Stores platform-native drafts, evidence, scores, visuals, approval state, and outcomes |
| Visual Studio | Renders grounded branded PNG cards and LinkedIn carousel PDFs |
| Experiments | Tests hooks, endings, formats, and calls to action without applying winners automatically |
| Distribution | Organizes manual publishing cycles, conversations, relationships, and grounded replies |
| Analytics + Attribution | Records checkpointed performance, safe imports, follower observations, links, and conversions |
| Operations | Exposes dependency health, stage telemetry, cron freshness, and checkpoint-safe recovery |
DevPulse separates observation from inference. Performance snapshots are age-normalized, sparse samples produce collection recommendations rather than strategy changes, and weekly decisions remain reviewable before they influence future publishing.
flowchart LR
R["Owned repositories"] --> F["Pending fact ledger"]
F -->|"human approved"| E["Evidence pool"]
S["Relevant external sources"] --> P["Lane-specific source policy"]
P --> E
E --> C["Candidate ranking"]
C --> W["DeepSeek draft + score loop"]
W --> G["Grounding + novelty + duplicate gates"]
G -->|"fails"| K["Intentionally skip slot"]
G -->|"passes"| X["X-native pack"]
G -->|"passes"| L["LinkedIn-native pack"]
X --> H["Human review and manual publishing"]
L --> H
H --> M["1h / 24h / 72h / 7d measurement"]
M --> D["Approval-gated growth decision"]
D --> C
- Project sync is read-only and compares incremental GitHub state before scanning deeper evidence.
- Deterministic significance filters remove dependency churn, generated output, formatting-only changes, and low-signal commits.
- Dynamic project facts begin as
pending; only approved facts become generation sources. - External research is restricted by editorial lane and product relevance before an LLM sees it.
- Weak candidates are rejected instead of consuming a content quota.
- Generation snapshots preserve the sources, strategy, scores, and visual brief behind a draft.
flowchart TB
UI["Next.js 16 + React 19"] --> API["Next.js route handlers"]
API --> AUTH["Better Auth"]
API --> ORM["Prisma domain and persistence layer"]
ORM --> DB["Supabase PostgreSQL"]
API --> AI["DeepSeek via OpenAI-compatible client"]
API --> SRC["GitHub · RSS · arXiv · Hugging Face · HN · Reddit"]
API --> VIS["Sharp + pdf-lib visual renderer"]
API --> SHOT["Playwright source capture"]
VIS --> R2["Cloudflare R2"]
SHOT --> R2
CRON["External 15-minute scheduler"] --> API
API --> OPS["Operational runs + stage events + recovery checkpoints"]
| Engineering concern | Implementation |
|---|---|
| Grounded AI | Source policy, reviewed fact ledger, structured prompts, scoring, rewrites, and claim audits |
| Adaptive orchestration | Due-slot evaluation, intentional skips, async generation, persisted checkpoints, and safe retries |
| Data quality | Age-bounded measurement cohorts, idempotent CSV imports, coverage gates, and deterministic alerts |
| Security | Better Auth, protected cron, server-only secrets, safe errors, restrictive headers, and no social write APIs |
| Media pipeline | Branded PNGs, carousel PDFs, Playwright captures, and durable R2 storage |
| Production operations | Dependency probes, stage timing, recovery chains, readiness endpoints, retention, and smoke tests |
| Full-stack scope | Product UI, route handlers, persistence, authentication, AI orchestration, scheduled work, analytics, and deployment |
DevPulse deliberately does not call X or LinkedIn write APIs.
draft → pending_review → approved → scheduled → ready → posted_manually
The system can recommend a post, generate platform-native copy, render media, suggest timing, and prepare grounded replies. Copying, attaching, publishing, replying, and confirming performance remain explicit user actions.
DevPulse AI/
├── apps/web/
│ ├── src/app/ # Product pages and server route handlers
│ ├── src/components/ # Workspaces, dashboards, forms, and design system
│ ├── src/lib/ # AI, research, scheduling, publishing, and analytics
│ ├── prisma/ # Relational domain model
│ └── scripts/ # Cron runner and deployment smoke checks
├── docs/ # Product and engineering decision records
├── information-sources.md
└── project-scope.md
apps/web/src/lib/ai— generation, scoring, prompts, and phased pipelinesapps/web/src/lib/research— ingestion, source policy, diversity, and persistenceapps/web/src/lib/projects— GitHub sync, freshness, fact evidence, and significanceapps/web/src/lib/publishing— adaptive selection and platform policyapps/web/src/lib/operations— health, readiness, telemetry, and recoveryapps/web/prisma/schema.prisma— application data modeldocs/APP-USER-GUIDE.md— complete product walkthrough
- Node.js 20+
- PostgreSQL or Supabase
- npm
git clone https://github.com/captain-jack-sparrow909/DevPulse-AI.git
cd "DevPulse-AI"
cd apps/web
cp .env.example .env
npm install
npx playwright install chromium
npx prisma db push
npm run devOpen http://localhost:3000.
DEEPSEEK_API_KEY is optional for development: research remains available and the writing pipeline falls back to grounded demo templates. See apps/web/.env.example for Postgres, authentication, research-source, cron, and R2 configuration.
From the repository root:
npm test
npm run lint
npm run buildAfter deployment:
cd apps/web
npm run smoke -- https://your-production-domain.exampleThe production readiness endpoint checks the database and required configuration without returning credentials, prompts, post content, or connector errors. Deeper authenticated probes live in the Operations workspace.
- Application: Vercel
- Database: Supabase PostgreSQL through Prisma
- Authentication: Better Auth
- AI: configurable DeepSeek model behind server routes
- Media: Cloudflare R2
- Scheduling: an external 15-minute cron calling the protected slot endpoint
- Content strategy
- Project intelligence
- Adaptive publishing
- Measurement quality
- Production operations
- Production hardening
Built by Jabir Khan for engineers whose best content is already hiding inside the systems they ship.


