https://github.com/Deodat-Lawson/LaunchStack
AI-powered StartUp Accelerator Engine built with Next.js, LangChain, PostgreSQL + pgvector. Upload, organize, and chat with documents. Includes predictive missing-document detection, role-based workflows, and page-level insight extraction.
https://github.com/Deodat-Lawson/LaunchStack
claude docker knowlege-graph langchain mcp n8n neo4j nextjs ollama open-source openai pgvector postgresql rag self-hosted typescript workflow-automation
Last synced: about 7 hours ago
JSON representation
AI-powered StartUp Accelerator Engine built with Next.js, LangChain, PostgreSQL + pgvector. Upload, organize, and chat with documents. Includes predictive missing-document detection, role-based workflows, and page-level insight extraction.
- Host: GitHub
- URL: https://github.com/Deodat-Lawson/LaunchStack
- Owner: Deodat-Lawson
- License: apache-2.0
- Created: 2025-01-01T22:56:11.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-05-01T03:36:28.000Z (about 2 months ago)
- Last Synced: 2026-05-01T05:15:23.546Z (about 2 months ago)
- Topics: claude, docker, knowlege-graph, langchain, mcp, n8n, neo4j, nextjs, ollama, open-source, openai, pgvector, postgresql, rag, self-hosted, typescript, workflow-automation
- Language: TypeScript
- Homepage: https://www.pdrai.online/
- Size: 63.6 MB
- Stars: 807
- Watchers: 66
- Forks: 114
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# Launchstack
**The TypeScript engine for AI-native Next.js apps.** Ingestion, OCR, RAG, knowledge graph, LLM abstractions, and background jobs — ports-based, framework-agnostic, and designed to be wired into the Next.js app you already have.
[](https://www.npmjs.com/package/@launchstack/core)
[](LICENSE)
[](https://github.com/launchstack/launchstack/actions/workflows/CI.yml)
[](https://www.typescriptlang.org/)
[Quickstart](#quickstart) · [Packages](#whats-in-the-box) · [Architecture](#architecture) · [Reference app](#reference-app) · [Contributing](CONTRIBUTING.md) · [Discussions](https://github.com/launchstack/launchstack/discussions)
---
## Quickstart
```bash
pnpm add @launchstack/core
```
```ts
import { createEngine } from "@launchstack/core";
const engine = createEngine({
db: { url: process.env.DATABASE_URL! },
llm: { openai: { apiKey: process.env.OPENAI_API_KEY! } },
embeddings: { indexName: "openai-3-small" },
ocr: { defaultProvider: "DOCLING" },
providers: {},
storage: myStoragePort, // you implement StoragePort (S3, local, etc.)
jobs: { dispatcher: inngest }, // or any JobDispatcherPort
});
// Use any subsystem
const { db } = engine;
const results = await engine.rag?.port.search({ query: "What's in my docs?" });
await engine.close(); // graceful shutdown
```
Core reads **zero environment variables** at runtime — you supply the config, which makes the engine portable across Next.js, CLIs, workers, and MCP servers.
---
## What's in the box
| Package | Status | What it does |
|---|---|---|
| [`@launchstack/core`](packages/core) | **published** | The engine. DB, LLM, embeddings, OCR, RAG, graph, crypto, guardrails, ingestion. Framework-agnostic. |
| [`@launchstack/features/*`](packages/features) | internal | Vertical features built on top of core: `adeu`, `client-prospector`, `company-metadata`, `doc-ingestion`, `legal-templates`, `marketing-pipeline`, `repo-explainer`, `trend-search`, `voice` |
| [`@launchstack/features/mcp`](packages/features/src/mcp) *(planned)* | roadmap | MCP server factory — expose core capabilities as tools |
| [`@launchstack/features/workflow-generation`](packages/features/src/workflow-generation) *(planned)* | roadmap | LLM-authored workflow DSL |
| [`@launchstack/features/rules-extraction`](packages/features/src/rules-extraction) *(planned)* | roadmap | Regulatory rule extraction |
| [`@launchstack/features/connectors`](packages/features/src/connectors) *(planned)* | roadmap | Third-party connector integrations |
| [`apps/web`](apps/web) | — | The Next.js reference app — how we wire everything together |
Features import core via subpath imports (`@launchstack/core/db`, `@launchstack/core/ocr/processor`, etc.). The reference app imports features and supplies the ports (storage, jobs, credits, RAG) that connect to real infrastructure.
---
## Architecture
Core exposes four **ports** that the host wires up. Features depend only on these ports; they never reach into the app or the framework.
```
┌───────────── apps/web (Next.js host) ────────────┐
│ env.ts → engine.ts → createEngine(config) │
│ │ │
│ └─ wires: StoragePort (S3) │
│ JobDispatcherPort (Inngest)
│ CreditsPort (DB) │
│ RagPort (hybrid search) │
└──────────────────┬────────────────────────────────┘
│
┌──────────────────▼────────────────────┐
│ @launchstack/features/* │
│ (adeu, marketing-pipeline, ...) │
│ import via @launchstack/core/ │
└──────────────────┬────────────────────┘
│
┌──────────────────▼────────────────────┐
│ @launchstack/core │
│ db · llm · embeddings · ocr · rag · │
│ graph · guardrails · ingestion │
└───────────────────────────────────────┘
```
- **Core** reads no env, knows no framework. All config comes through `CoreConfig`.
- **Features** can read `process.env`, but cannot import from the host app.
- **Host** owns env, auth, routing, and implements the ports.
- ESLint enforces these boundaries — see [`eslint.config.js`](eslint.config.js).
---
## Reference app
[`apps/web`](apps/web) is a production-grade Next.js app built on the engine. It demonstrates:
- Clerk employer/employee auth with role-aware middleware
- Document upload + optional OCR (Marker, Docling, Azure, Landing.AI, Datalab)
- PostgreSQL + pgvector semantic retrieval for RAG
- AI chat with agent guardrails (PII filter, grounding, confidence gate)
- Predictive document analysis across 8 document types (contract, financial, technical, compliance, educational, HR, research, general)
- Marketing pipeline for Reddit, X, LinkedIn, Bluesky
- Inngest-backed background jobs
- Optional LangSmith tracing
**Run it locally:**
```bash
git clone https://github.com/launchstack/launchstack.git
cd launchstack
pnpm install
cp .env.example .env # fill in required keys
pnpm db:push # sync Drizzle schema
pnpm dev # Next.js + Inngest on :3000 and :8288
```
Or spin the full stack (Postgres + SeaweedFS + sidecars) with Docker:
```bash
# macOS / Linux
make up # lite (~400MB RAM)
make up-ocr # with Docling for Office docs (~1.2GB RAM)
```
```powershell
# Windows (PowerShell or cmd — requires Docker Desktop)
docker compose --env-file .env up --build # lite (~400MB RAM)
docker compose --env-file .env --profile ocr -f docker-compose.yml -f docker-compose.ocr.yml up --build -d # with Docling (~1.2GB RAM)
```
> Or install `make` on Windows via [Chocolatey](https://chocolatey.org/) (`choco install make`) or [Scoop](https://scoop.sh/) (`scoop install make`) to use the `make up` shortcuts.
**Stop the stack:**
```bash
# macOS / Linux
make down # stop containers (keeps volumes — DB + S3 data persists)
make down-clean # stop + wipe volumes (fresh DB on next up)
```
```powershell
# Windows
docker compose --env-file .env down # stop containers (keeps volumes)
docker compose --env-file .env down -v --remove-orphans # stop + wipe volumes (fresh DB)
```
See [`CONTRIBUTING.md`](CONTRIBUTING.md) for the full dev guide.
### Supported document sources
The ingestion pipeline reads exports from common tools without requiring OAuth — just drop the files in:
| Source | Export | Adapter |
|---|---|---|
| Notion | Markdown & CSV / HTML | TextAdapter, HtmlAdapter |
| Google Docs / Sheets | DOCX / CSV / XLSX | DocxAdapter, SpreadsheetAdapter |
| Google Drive | Takeout ZIP | DocxAdapter |
| Slack | Workspace export JSON | JsonExportAdapter |
| GitHub | Code ZIP, `gh issue/pr list --json` | TextAdapter, JsonExportAdapter |
Plus first-class PDF, DOCX, PPTX, XLSX, MD, HTML, TXT, and image adapters.
---
## Using core standalone
`@launchstack/core` is a plain TypeScript library published to npm — **you don't need the monorepo to use it**. Drop it into any Node-20+ project that has a Postgres database and implement a `StoragePort`. The reference app is one way to wire it up; it isn't the only way.
See [`packages/core/README.md`](packages/core/README.md) for the full API surface and port interfaces.
---
## Community & support
- **Discussions** — [github.com/launchstack/launchstack/discussions](https://github.com/launchstack/launchstack/discussions)
- **Issues** — [github.com/launchstack/launchstack/issues](https://github.com/launchstack/launchstack/issues)
- **Security** — email per [SECURITY.md](SECURITY.md)
---
## Contributing
We welcome PRs — start with [CONTRIBUTING.md](CONTRIBUTING.md). A few things to know up front:
- One issue per PR
- Changes to `packages/core/` need a [Changeset](https://github.com/changesets/changesets) (`pnpm changeset`)
- ESLint enforces core/features/host import boundaries; don't work around them
## License
Licensed under the [Apache License 2.0](LICENSE). By contributing you agree your contributions will be released under the same license.