Skip to content

StackLoop

StackLoop banner

License Version Status Docs

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.

Vision

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.

Features

  • 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.

Why StackLoop?

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

Demo

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.

Tech Stack

Frontend

  • Next.js
  • TypeScript
  • Tailwind CSS

Backend

  • Node.js
  • TypeScript
  • Express.js
  • Prisma ORM

AI Layer

  • Python
  • FastAPI
  • Large Language Models

Data & Infrastructure

  • PostgreSQL
  • Redis
  • Docker
  • Azure Container Apps
  • GitHub Actions

Architecture Overview

StackLoop is composed of a modern web frontend, service-oriented backend APIs, an AI processing layer, and supporting data infrastructure.

High-Level Architecture

  • 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.

Design Principles

  • Developer-first experience
  • Clear and explainable AI outputs
  • Fast, intuitive repository discovery
  • Extensible architecture for future capabilities
  • Strong contributor and maintainer ergonomics

Getting Started

StackLoop is currently under active development. The following instructions are intended to help contributors get a local environment running quickly.

Local Installation

Prerequisites

  • 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.

Clone and install

git clone https://github.com/your-org/stackloop.git
cd stackloop
pnpm install

This repository uses pnpm workspaces. Installing with npm or yarn will not link the workspace correctly.

Configure the environment

cp configs/env/.env.example .env

Then 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.

Set up the database

createdb stackloop

cd apps/api
pnpm exec prisma migrate deploy   # apply the checked-in migration
pnpm exec prisma generate         # generate the typed client

Use pnpm exec prisma migrate dev instead when you are changing the schema and want a new migration generated.

Run the API

pnpm --filter @stackloop/api dev

The API listens on PORT (default 3001). Check it is up:

curl http://localhost:3001/health

Run the checks

pnpm test        # all workspace tests
pnpm typecheck   # TypeScript, no emit
pnpm build       # compile

Environment Variables

The 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.

Project Structure

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

Current API surface

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.

Current implementation status

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, and aud
  • 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.

Development Workflow

  1. Check the Phase Tracker to confirm your change belongs to the phase that is currently open.
  2. Create a feature branch from main.
  3. Make focused changes with clear intent.
  4. Write or update tests, including the failure paths and not only the happy path.
  5. Run the checks locally.
  6. 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-feature

No 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.

Roadmap

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.

Contributing

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.

Community

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

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 and Delivery Documents

Product Design Documents

License

StackLoop is licensed under the Apache License 2.0.

See the LICENSE file for more details.

Acknowledgements

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.

About

Discover open-source projects tailored to your goals.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages