StackLoop is an AI-powered developer discovery platform designed to help developers discover, understand, learn from, and contribute to open-source projects with greater clarity and confidence.
Unlike traditional discovery tools such as GitHub Trending or Daily.dev, StackLoop combines repository intelligence, AI-generated summaries, personalized recommendations, learning paths, contribution opportunities, and repository insights into a single developer experience.
StackLoop exists to make open source more approachable, more discoverable, and more rewarding for developers at every stage of their journey. Our goal is to become a central platform where developers can move from discovery to understanding to contribution without friction.
- AI-generated repository summaries and insights
- Personalized project recommendations based on developer interests and goals
- Beginner-friendly explanations of complex repositories
- Guided learning paths for onboarding into new technologies and communities
- Contribution opportunities tailored to skill level and experience
- Repository health and contribution insights for maintainers and contributors
- A focused experience for discovering meaningful open-source projects
These describe the product StackLoop is being built to deliver. For what actually works today, see Current implementation status.
Open source can be difficult to navigate, especially for beginners. Many projects are hard to understand, poorly documented, and difficult to evaluate before contributing. StackLoop addresses that challenge by making repository discovery smarter, more contextual, and more actionable.
StackLoop is built for:
- Beginner developers looking for a clear entry point into open source
- Software engineers seeking better project discovery
- DevOps and AI engineers exploring relevant ecosystems
- Contributors who want to find the right project faster
- Maintainers who want to improve project visibility and engagement
A live demo will be available soon. In the meantime, the project is being developed with a focus on a polished developer experience and strong documentation standards.
- Next.js
- TypeScript
- Tailwind CSS
- Node.js
- TypeScript
- Express.js
- Prisma ORM
- Python
- FastAPI
- Large Language Models
- PostgreSQL
- Redis
- Docker
- Azure Container Apps
- GitHub Actions
StackLoop is composed of a modern web frontend, service-oriented backend APIs, an AI processing layer, and supporting data infrastructure.
- The frontend provides the user experience for browsing repositories, reading insights, and exploring recommendations.
- The API layer now includes modular authentication, repository collection, and Prisma-backed persistence services.
- The AI layer generates summaries, learning paths, and contribution guidance from repository context.
- PostgreSQL stores core application data, while Redis provides caching and performance optimization.
- Docker and Azure Container Apps support containerized deployment and scalable hosting.
- Developer-first experience
- Clear and explainable AI outputs
- Fast, intuitive repository discovery
- Extensible architecture for future capabilities
- Strong contributor and maintainer ergonomics
StackLoop is currently under active development. The following instructions are intended to help contributors get a local environment running quickly.
- Node.js 20 or later
- pnpm 10 or later (
npm install -g pnpm) - PostgreSQL 14 or later
Python, Docker, and Redis are listed in the architecture documents but are not yet needed: the AI service and container configuration have not been built.
git clone https://github.com/your-org/stackloop.git
cd stackloop
pnpm installThis repository uses pnpm workspaces. Installing with npm or yarn will not link the workspace correctly.
cp configs/env/.env.example .envThen fill in the required values. Every variable is documented inline in that file.
To obtain the GitHub credentials, register an OAuth application at
GitHub → Settings → Developer settings → OAuth Apps. Set the authorization callback URL to
exactly the value you use for GITHUB_REDIRECT_URI.
Generate a signing secret:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"The API validates its configuration on startup and exits with a list of every problem if anything is missing or unsafe, rather than starting with insecure defaults.
createdb stackloop
cd apps/api
pnpm exec prisma migrate deploy # apply the checked-in migration
pnpm exec prisma generate # generate the typed clientUse pnpm exec prisma migrate dev instead when you are changing the schema and want a new
migration generated.
pnpm --filter @stackloop/api devThe API listens on PORT (default 3001). Check it is up:
curl http://localhost:3001/healthpnpm test # all workspace tests
pnpm typecheck # TypeScript, no emit
pnpm build # compileThe single source of truth is configs/env/.env.example, which
documents each variable inline. Summary:
| Variable | Required | Default | Purpose |
|---|---|---|---|
NODE_ENV |
no | development |
development, test, or production |
PORT |
no | 3001 |
Port the API listens on |
WEB_APP_ORIGIN |
no | http://localhost:3000 |
Origin of the web app |
DATABASE_URL |
yes | — | PostgreSQL connection string |
GITHUB_CLIENT_ID |
yes | — | OAuth app client id |
GITHUB_CLIENT_SECRET |
yes | — | OAuth app client secret |
GITHUB_REDIRECT_URI |
yes | — | Must match the callback URL registered with GitHub |
GITHUB_TOKEN |
no | — | PAT for repository ingestion; raises the rate limit to 5000/hour |
GITHUB_API_BASE_URL |
no | https://api.github.com |
GitHub REST base URL |
JWT_SIGNING_SECRET |
yes | — | HS256 secret, minimum 32 characters |
JWT_ISSUER |
no | stackloop |
Token iss claim, validated on every request |
JWT_AUDIENCE |
no | stackloop-api |
Token aud claim, validated on every request |
ACCESS_TOKEN_TTL_SECONDS |
no | 900 |
Access token lifetime |
REFRESH_TOKEN_TTL_SECONDS |
no | 2592000 |
Refresh token lifetime |
OAUTH_STATE_TTL_SECONDS |
no | 600 |
How long an unfinished login stays valid |
In production the API additionally refuses to start if JWT_SIGNING_SECRET is a known
placeholder, or if GITHUB_REDIRECT_URI or WEB_APP_ORIGIN use plain http.
REDIS_URL and OPENAI_API_KEY appeared in earlier versions of this file but are not read by
any code yet. They will return with Phase 10 and Phase 5 respectively.
This is what the repository contains today. The larger target layout, including apps/web,
packages/*, services/ai, and infra/, is described in the
monorepo architecture spec.
.
├── apps/
│ └── api/ # Express API (TypeScript, ESM)
│ ├── prisma/
│ │ ├── schema.prisma # 23 models
│ │ └── migrations/ # Checked-in SQL migrations
│ ├── src/
│ │ ├── auth/ # OAuth, tokens, sessions, middleware
│ │ ├── config/ # Validated environment configuration
│ │ ├── database/ # Prisma client and repository abstractions
│ │ ├── middleware/ # Error handling
│ │ ├── repositories/ # GitHub ingestion
│ │ ├── app.ts # Application composition
│ │ └── server.ts # Process entrypoint
│ └── tests/
├── configs/env/ # Environment templates
├── docs/ # Product, architecture, and delivery documents
├── .github/ # Issue and PR templates, CODEOWNERS
├── pnpm-workspace.yaml
└── turbo.json
| Method | Path | Auth | Purpose |
|---|---|---|---|
GET |
/health |
none | Liveness check |
GET |
/auth/github/login |
none | Begin GitHub OAuth |
GET |
/auth/github/callback |
none | Complete OAuth, create session |
POST |
/auth/refresh |
refresh token | Rotate tokens |
POST |
/auth/logout |
required | Revoke the caller's session |
GET |
/auth/me |
required | Current user |
POST |
/repositories/sync |
admin | Ingest one repository |
POST |
/repositories/sync/batch |
admin | Ingest up to 50 repositories |
Full request and response shapes, error codes, cookie flags, and rate limits are documented in the Authentication Endpoints reference.
StackLoop is in Phase 4 (Core Backend Development). The Phase Tracker is the authoritative status of every deliverable.
Implemented and tested:
- GitHub OAuth with server-side, single-use, expiring authorization state and S256 PKCE
- HS256 access and refresh tokens with verified signatures and enforced
exp,iss, andaud - PostgreSQL-backed sessions and refresh tokens, with rotation on every use and session revocation when a spent token is replayed
- Authentication, role-based authorization, CSRF, and rate-limiting middleware on the routes
- Repository ingestion from the GitHub API, persisted through Prisma
- Prisma schema and a checked-in initial migration
Still outstanding in this phase:
- The migration has not been applied to a live PostgreSQL instance, so the database-backed paths are verified by their contracts and tests rather than against a running database.
- The summary and search-index job queues are stubs; they report
queued: false.
Not started: the web frontend, the AI service, Redis, container configuration, and CI workflows.
- Check the Phase Tracker to confirm your change belongs to the phase that is currently open.
- Create a feature branch from main.
- Make focused changes with clear intent.
- Write or update tests, including the failure paths and not only the happy path.
- Run the checks locally.
- Open a pull request with a clear summary and the evidence you used to verify it.
git checkout -b feature/your-feature
pnpm test
pnpm typecheck
git commit -m "feat: add repository insight summary"
git push origin feature/your-featureNo linter is configured yet, so pnpm lint currently does nothing. Adding one is a Phase 9
(Quality Assurance) deliverable.
Full guidance, including branch naming and commit conventions, is in CONTRIBUTING.md.
StackLoop is delivered in sixteen sequential phases. A phase begins only once the previous phase's exit criterion has been met and recorded in the Phase Tracker, which is the authoritative status of every deliverable.
| Phase | Name | Exit criterion | Status |
|---|---|---|---|
| 0 | Foundation & Product Strategy | Vision and MVP scope locked, architecture approved | Complete |
| 1 | Brand & Repository Setup | Repo public, professional, contributor-ready | Complete |
| 2 | UI/UX Design | All major screens approved | Complete |
| 3 | Technical Architecture | Architecture finalized, implementation-ready | Complete |
| 4 | Core Backend Development | Core backend services functional (real, not mock) | In progress |
| 5 | AI & Discovery Engine | Repos receive AI-generated insights | Not started |
| 6 | Frontend Development | Frontend fully integrates with backend APIs | Not started |
| 7 | Personalization | Users receive customized content | Not started |
| 8 | Open Source Features | Maintainers manage projects, contributors participate | Not started |
| 9 | Quality Assurance | No critical defects, quality gates pass | Not started |
| 10 | DevOps & Deployment | Production deployment stable | Not started |
| 11 | Documentation | A new dev can set up and contribute from docs alone | Not started |
| 12 | Beta Launch | Stable beta with validated feedback | Not started |
| 13 | Public Launch | Public launch completed | Not started |
| 14 | Community Growth | Consistent engagement and external contributions | Not started |
| 15 | Growth & Scale | Matured beyond MVP into a real ecosystem | Not started |
The product capabilities this roadmap delivers — summaries, difficulty ratings, recommendations, learning paths, and contribution matching — are scoped in the Product Requirements Document, which also records what is deliberately out of MVP scope.
Contributions are welcome. Whether you are fixing a bug, improving documentation, or proposing a new idea, we appreciate thoughtful and well-scoped contributions.
Start with CONTRIBUTING.md for setup, branch naming, commit conventions, and the review process, and CODE_OF_CONDUCT.md for community expectations.
Two things specific to this project are worth knowing before you start:
- Work stays within the open phase. Check the Phase Tracker first. If your idea belongs to a later phase, open an issue so it can be scheduled rather than merged early.
- New features need a PRD update first, and architecture changes that depart
from the specifications in
docs/need an ADR.
Good first issues are labelled good first issue. To report a security vulnerability, follow
SECURITY.md rather than opening a public issue.
Join the StackLoop community to share feedback, ask questions, and help shape the platform.
- GitHub Discussions
- Issues and feature requests
- Community updates and announcements
Documentation is an essential part of the StackLoop project. As the platform evolves, the documentation will expand to cover:
- Architecture and system design
- Contributor onboarding
- API references
- Deployment guides
- Product and usage documentation
- Product Requirements Document
- Phase Tracker — the source of truth for what is built and what is planned
- Architecture Decision Records
- Information Architecture Specification
- UX Flow Specification
- Low-Fidelity Wireframe Specification
- UI and Design System Specification
- Authentication Endpoints Reference
- Monorepo Architecture Specification
- System Architecture Specification
- Database Schema Specification
- REST API Specification
- Authentication and Authorization Specification
- Production Infrastructure Specification
- CI/CD Pipeline Specification
- Docker Architecture Specification
- Data Flow Architecture Specification
StackLoop is licensed under the Apache License 2.0.
See the LICENSE file for more details.
StackLoop is inspired by the broader open-source ecosystem and the many developers who contribute to software every day. We are grateful to the communities, tools, and platforms that continue to make open source possible.
