LaunchStack
Health Gecti
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 791 GitHub stars
Code Uyari
- process.env — Environment variable access in __tests__/api/adeu/adapter-errors.pbt.test.ts
Permissions Gecti
- Permissions — No dangerous permissions requested
This platform is an AI-powered document management and startup accelerator engine. It allows teams to upload, organize, and chat with their documents using semantic retrieval, while automatically predicting missing files and extracting page-level insights.
Security Assessment
The overall risk is rated as Medium. The application processes and analyzes uploaded documents, which frequently contain sensitive or proprietary information. It makes external network requests to utilize AI models, third-party API integrations (like Tavily), and authentication services (like Clerk). No hardcoded secrets were detected, and no dangerous system-level permissions are requested. A standard warning was noted for environment variable access, but this is isolated to a standard API test file and poses no threat.
Quality Assessment
The project is in excellent health and actively maintained, with its most recent updates pushed today. It uses the permissive MIT license, making it highly accessible for developers. The repository boasts a robust 791 GitHub stars, indicating strong community trust and active interest from other users.
Verdict
Safe to use.
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.
Launchstack - Professional Document Reader AI
Launchstack is a Next.js platform for role-based document management, AI-assisted Q&A, and predictive document analysis. It combines document upload, optional OCR, embeddings, and retrieval to help teams find gaps and act faster.
Core Features
- Clerk-based Employer/Employee authentication with role-aware middleware.
- Document upload pipeline with optional OCR for scanned PDFs.
- PostgreSQL + pgvector semantic retrieval for RAG workflows.
- AI chat and predictive document analysis over uploaded content.
- Agent guardrails with PII filtering, grounding checks, and confidence gating.
- Supervisor agent that validates outputs against domain-specific rubrics.
- Marketing pipeline with content generation for Reddit, X, LinkedIn, and Bluesky.
- Optional web-enriched analysis with Tavily.
- Optional reliability/observability via Inngest and LangSmith.
Predictive Analysis — Supported Document Types
Launchstack runs domain-specific analysis tailored to your document type:
| Type | What It Detects |
|---|---|
| Contract | Missing exhibits, schedules, addendums, and supporting agreements |
| Financial | Missing balance sheets, audit reports, income statements |
| Technical | Missing specifications, manuals, diagrams, deliverables |
| Compliance | Missing regulatory filings, certifications, policy documents |
| Educational | Missing syllabi, handouts, readings, linked resources |
| HR | Missing policies, forms, benefits materials, handbooks |
| Research | Missing cited papers, datasets, supplementary materials |
| General | Any document with cross-references and attachments |
Each analysis type also extracts insights (deadlines, action items, resources, caveats) and runs chain-of-verification on high-priority predictions.
Importing External Knowledge
Launchstack can ingest content exported from third-party tools. No API keys or OAuth setup required — export your data, upload the files, and the ingestion pipeline handles the rest.
Supported Export Formats
| Source | Export Method | Resulting Format | Launchstack Adapter |
|---|---|---|---|
| Notion | Settings > Export > Markdown & CSV | .md, .csv (ZIP) |
TextAdapter, SpreadsheetAdapter |
| Notion | Page > Export > HTML | .html |
HtmlAdapter |
| Google Docs | File > Download > Microsoft Word | .docx |
DocxAdapter |
| Google Sheets | File > Download > CSV or Excel | .csv, .xlsx |
SpreadsheetAdapter |
| Google Drive | Google Takeout (takeout.google.com) | .docx (ZIP) |
DocxAdapter |
| Slack | Workspace Settings > Import/Export > Export | .json (ZIP) |
JsonExportAdapter |
| GitHub | Code > Download ZIP | .md, .txt (ZIP) |
TextAdapter |
| GitHub | gh issue list --json ... |
.json |
JsonExportAdapter |
| GitHub | gh pr list --json ... |
.json |
JsonExportAdapter |
How to Export
Notion
- Open your Notion workspace.
- Click the ... menu on a page, or go to Settings & members > Export for a full workspace export.
- Select Markdown & CSV as the format and check Include subpages if needed.
- Download the ZIP and upload it directly to Launchstack.
Google Docs / Sheets
- Open the document in Google Docs or Sheets.
- Go to File > Download and choose Microsoft Word (.docx) or CSV / Excel (.xlsx).
- Upload the downloaded file. For bulk exports, use Google Takeout to export your Drive as a ZIP.
Slack
- Go to Workspace Settings > Import/Export Data > Export.
- Choose a date range and start the export.
- Download the ZIP and upload it to Launchstack. Each channel's messages will be ingested as a separate document.
GitHub
- Repo docs: Click Code > Download ZIP on any GitHub repository. Upload the ZIP — all Markdown and text files will be ingested.
- Issues: Install the GitHub CLI and run:
Upload the resultinggh issue list --state all --limit 1000 --json number,title,body,state,labels,author,createdAt,closedAt,comments > issues.jsonissues.jsonfile. - Pull requests: Run:
Upload the resultinggh pr list --state all --limit 1000 --json number,title,body,state,labels,author,createdAt,mergedAt,comments > prs.jsonprs.jsonfile.
All uploaded content flows through the standard ingestion pipeline (chunking, embedding, RAG indexing) and becomes searchable alongside your other documents.
Architecture
Launchstack follows a three-layer modular architecture:
block-beta
columns 9
SLABEL["Services\nLayer"]:1
MKT["Marketing Engine\n─────────────\nTrend Analysis\nContent Generation\nWeb Scraping Jobs"]:2
LEG["Legal Services\n─────────────\nTemplate Library\nAuto-Fill & Clauses\nLegal Vault"]:2
ONB["Employee Onboarding\n─────────────\nOnboarding Agent\nQuizzes & Checks\nProgress Tracking"]:2
DOCR["Document Reasoning\n─────────────\nPage Index & TOC\nRLM Agent\nKnowledge Graph"]:2
space:9
TLABEL["Tools\nLayer"]:1
RAG["RAG Pipeline\n(BM25 + Vector)"]:2
WEB["Web Search\n(Tavily, Firecrawl)"]:2
REW["Doc Rewrite\n(Summarize, Refine)"]:2
TMPL["Template Engine\n(Form → PDF)"]:2
space:1
ING["Doc Ingestion\n(OCR, Chunk, Embed)"]:4
ENT["Entity Extraction\n(NER, Graph RAG)"]:4
space:9
PLABEL["Physical\nLayer"]:1
DB["PostgreSQL + pgvector\n─────────────\nEmbeddings Index\nDocument Structure\nKnowledge Graph\nDomain Tables"]:2
HOST["Hosting & Compute\n─────────────\nNext.js 15\nInngest Jobs\nAgent Hosting\nML Sidecar"]:2
EXT["External Services\n─────────────\nOCR Providers\nFile Storage (S3)\nClerk Auth + RBAC"]:2
KBS["Knowledge Bases\n─────────────\nCompany KB\nLegal Templates\nOnboarding Docs"]:2
%% Service → Tool edges
MKT --> RAG
MKT --> WEB
MKT --> REW
LEG --> RAG
LEG --> REW
LEG --> TMPL
ONB --> RAG
ONB --> REW
DOCR --> RAG
DOCR --> WEB
DOCR --> REW
DOCR --> ING
DOCR --> ENT
%% Tool → Physical edges
RAG --> DB
RAG --> KBS
WEB --> HOST
REW --> HOST
TMPL --> EXT
TMPL --> KBS
ING --> DB
ING --> EXT
ING --> HOST
ENT --> DB
ENT --> HOST
classDef layer fill:#1a1a2e,color:#eee,stroke:none
classDef svc fill:#4A90D9,color:#fff,stroke:#2C5F8A,stroke-width:1px
classDef tool fill:#F5A623,color:#fff,stroke:#C47D0E,stroke-width:1px
classDef phys fill:#27AE60,color:#fff,stroke:#1E8449,stroke-width:1px
class SLABEL,TLABEL,PLABEL layer
class MKT,LEG,ONB,DOCR svc
class RAG,WEB,REW,TMPL,ING,ENT tool
class DB,HOST,EXT,KBS phys
The platform is organized into:
- Services Layer - Vertical business modules (Marketing, Legal, Onboarding, Document Reasoning)
- Tools Layer - Reusable AI capabilities (RAG, Web Search, Document Processing, Entity Extraction)
- Physical Layer - Infrastructure (PostgreSQL + pgvector, Next.js hosting, External services, Knowledge bases)
All services operate within domain-partitioned boundaries enforced by Clerk RBAC. RAG queries are scoped by domain + company_id to ensure data isolation.
Tech Stack
- Next.js 15 + TypeScript
- PostgreSQL + Drizzle ORM + pgvector
- Clerk authentication
- OpenAI + LangChain
- UploadThing + optional OCR providers
- Tailwind CSS
Prerequisites
- Node.js 18+
- pnpm
- Docker + Docker Compose (recommended for local DB/full stack)
- Git
Quick Start
1) Clone and install
git clone <repository-url>
cd pdr_ai_v2-2
pnpm install
2) Configure environment
Create .env from .env.example and fill required values:
DATABASE_URLNEXT_PUBLIC_CLERK_PUBLISHABLE_KEYCLERK_SECRET_KEYBLOB_READ_WRITE_TOKEN(Vercel Blob read/write token)OPENAI_API_KEYINNGEST_EVENT_KEY, as placeholder
Optional integrations:
NODE_ENV=development (for development, otherwise assumed to be production)UPLOADTHING_TOKENTAVILY_API_KEYINNGEST_EVENT_KEY,INNGEST_SIGNING_KEYAZURE_DOC_INTELLIGENCE_ENDPOINT,AZURE_DOC_INTELLIGENCE_KEYLANDING_AI_API_KEY,DATALAB_API_KEYLANGCHAIN_TRACING_V2,LANGCHAIN_API_KEY,LANGCHAIN_PROJECTDEBUG_PERF(1ortrue) to enable dev perf logs for middleware and key auth/dashboard APIsSIDECAR_URLNEO4J_URINEO4J_USERNAMENEO4J_PASSWORD
2.1) Configure Vercel Blob Storage
Vercel Blob is used for storing uploaded documents. Both public and private stores are supported -- the upload logic auto-detects which mode the store uses and adapts automatically.
- In the Vercel dashboard, go to Storage → Blob → Create Store.
- Choose either Public or Private access. Both work:
- Public stores produce URLs the browser can load directly (faster for previews).
- Private stores keep files behind authentication; the app proxies content through
/api/documents/[id]/contentand/api/files/[id]so previews still work.
- Generate a Read/Write token for the store and add it as
BLOB_READ_WRITE_TOKENin your environment (.envlocally, or Vercel Project Settings for deploys). - Redeploy so the token is available at build and runtime.
- Verify: sign in to the Employer Upload page, upload a small PDF, and confirm
/api/upload-localreturns avercel-storage.comURL without errors.
3) Start database and apply schema
pnpm db:push
4) Run app
pnpm run dev
Open http://localhost:3000.
Docker Deployment
make up spins up the entire stack behind a Caddy reverse proxy — no external cloud dependencies beyond API keys. Works for both local development and production.
make up # start everything (foreground)
make up-prod # start everything (detached, for servers)
make down # stop containers
make down-clean # stop + wipe volumes (fresh DB)
make logs # tail all container logs
Local vs production
Set DOMAIN in your .env:
| Environment | .env setting |
What happens |
|---|---|---|
| Local dev | DOMAIN=localhost (default) |
HTTPS with self-signed cert |
| Production | DOMAIN=yourdomain.com |
HTTPS with auto-provisioned Let's Encrypt cert |
All routes go through one domain — no port numbers to remember:
| URL | What it serves |
|---|---|
https://yourdomain.com/ |
Application |
https://yourdomain.com/s3/... |
File uploads/downloads (SeaweedFS) |
https://yourdomain.com/inngest/ |
Background job dashboard |
Services
| Container | Image | Role |
|---|---|---|
caddy |
caddy:2-alpine |
Reverse proxy, auto-HTTPS, only exposed service (ports 80/443) |
db |
pgvector/pgvector:pg16 |
PostgreSQL with vector extension |
migrate |
Dockerfile | Pushes Drizzle schema on startup, then exits |
seaweedfs |
chrislusf/seaweedfs |
S3-compatible file storage |
app |
Dockerfile | Production Next.js standalone server |
inngest-dev |
inngest/inngest |
Background job processing + dashboard |
Production checklist
Override defaults in .env before deploying:
DOMAIN=yourdomain.com
POSTGRES_PASSWORD=<strong-password>
S3_ACCESS_KEY=<strong-random-key>
S3_SECRET_KEY=<strong-random-secret>
Ensure ports 80 and 443 are open on your server. Caddy handles everything else — TLS provisioning, HTTP→HTTPS redirect, certificate renewal.
Documentation
- Deployment details (Docker, Vercel, VPS): docs/deployment.md
- Feature workflows and architecture: docs/feature-workflows.md
- Usage and API examples: docs/usage-examples.md
- Observability and metrics: docs/observability.md
- Manual testing (dev, post-PR): docs/manual-testing-guide.md
API Endpoints (high-level)
POST /api/uploadDocument- upload and process document (OCR optional)POST /api/LangChain- document-grounded Q&APOST /api/agents/predictive-document-analysis- detect gaps and recommendationsGET /api/metrics- Prometheus metrics stream
User Roles
- Employee: view assigned documents, use AI chat/analysis.
- Employer: upload/manage documents, categories, and employee access.
Useful Scripts
pnpm db:studio
pnpm db:push
pnpm check
pnpm lint
pnpm typecheck
pnpm build
pnpm start
Roadmap — Future Integrations
- Notion API-key connector: Paste your Notion Internal Integration token in settings, select pages to sync. No OAuth required. Contributions welcome.
- GitHub webhook sync: Automatically ingest new issues and PRs via repository webhooks.
- Google Drive watch: Automatic re-sync when Google Docs are updated, using Drive push notifications.
Troubleshooting
- Confirm Docker is running before DB startup.
- If build issues occur: remove
.nextand reinstall dependencies. - If OCR UI is missing: verify OCR provider keys are configured.
- If Docker image pull/build is corrupted: remove image and rebuild with
--no-cache.
Contributing
- Create a feature branch.
- Make changes and run
pnpm check. - Open a pull request with test notes.
📝 License
Private and proprietary.
📞 Support
Open an issue in this repository or contact the development team.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi