Find unassigned GitHub issues without pull requests - streamline your path to open-source contribution.
Live Application: https://issueflow.pages.dev
Repository: https://github.com/ascender1729/IssueFlow
IssueFlow helps developers discover contribution-ready GitHub issues by automatically filtering repositories for issues that are:
The tool provides three authentication modes to match your workflow and offers a clean, responsive interface optimized for quick searches.
With GitHub Token or OAuth:
Without Authentication:
Personal Access Token (Primary Method)
Unauthenticated Mode (No Setup Required)
GitHub OAuth Device Flow (Optional)
Interactive Help System
Real-Time Feedback
Responsive Design
GraphQL API (Authenticated Users)
REST API Fallback (Unauthenticated)
Intelligent Caching
# Clone the repository
git clone https://github.com/ascender1729/IssueFlow.git
cd IssueFlow
# Install dependencies
npm install
# Start development server
npm run dev
The application will be available at http://localhost:4321
# Create production build
npm run build
# Preview production build
npm run preview
Output will be in the /dist directory.
https://github.com/facebook/react)Limitations: PR filtering is unavailable. Rate limit is 60 requests/hour.
public_repo scopeghp_)Benefits: 5000 requests/hour, full PR filtering, faster GraphQL API.
Privacy: Tokens are stored locally in browser localStorage only, never sent to any server except GitHub's official API.
GitHub OAuth Device Flow is available but requires setting up a GitHub OAuth app first.
PUBLIC_GITHUB_CLIENT_ID environment variable (see OAUTH_SETUP.md)Note: Most users should use Option 2 (Personal Access Token) as it requires no configuration.
Framework: Astro 5.x
Interactive Components: Svelte 5
Styling: UnoCSS
API Integration:
Build Tool: Vite (via Astro)
Language: TypeScript
IssueFlow/
├── src/
│ ├── components/
│ │ ├── GitHubAuth.svelte # OAuth device flow component
│ │ └── ResultsList.svelte # Main search and results UI
│ ├── layouts/
│ │ └── Layout.astro # Base page layout
│ ├── lib/
│ │ ├── github-graphql.ts # GraphQL API client with REST fallback
│ │ └── github-oauth.ts # OAuth device flow implementation
│ └── pages/
│ └── index.astro # Main application page
├── public/ # Static assets (favicon, images)
├── astro.config.mjs # Astro configuration
├── uno.config.ts # UnoCSS configuration
├── package.json # Dependencies and scripts
├── tsconfig.json # TypeScript configuration
├── README.md # This file
├── CONTRIBUTING.md # Contribution guidelines
├── CHANGELOG.md # Version history
├── DEPLOYMENT.md # Deployment instructions
├── OAUTH_SETUP.md # OAuth configuration guide
├── HACKTOBERFEST.md # Hacktoberfest information
└── LICENSE # MIT License
GraphQL API (Primary)
query FindAvailableIssues($owner: String!, $repo: String!, $cursor: String) {
repository(owner: $owner, name: $repo) {
issues(first: 100, after: $cursor, states: OPEN, filterBy: {assignee: null}) {
nodes {
number, title, url, createdAt, updatedAt
comments { totalCount }
labels(first: 10) { nodes { name, color, description } }
timelineItems(first: 100, itemTypes: [CROSS_REFERENCED_EVENT, CONNECTED_EVENT]) {
nodes {
... on CrossReferencedEvent { source { ... on PullRequest { number, state, url } } }
... on ConnectedEvent { source { ... on PullRequest { number, state, url } } }
}
}
}
}
}
rateLimit { limit, remaining, resetAt }
}
REST API (Fallback)
GET /repos/{owner}/{repo}/issues?state=open&assignee=none&per_page=100
Why Cloudflare Pages:
Deployment Steps:
Astronpm run builddisthttps://your-project.pages.dev# Install Vercel CLI
npm install -g vercel
# Deploy
vercel
# Install Netlify CLI
npm install -g netlify-cli
# Deploy
netlify deploy --prod
Build Settings:
npm run builddistSee DEPLOYMENT.md for detailed deployment instructions.
Target Lighthouse Scores:
Core Web Vitals:
Contributions are welcome! IssueFlow is a Hacktoberfest-friendly project.
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)good first issue - Beginner-friendly issueshacktoberfest - Hacktoberfest-eligible issueshelp wanted - Issues seeking contributorsPrivacy-First Design:
Security Measures:
See CHANGELOG.md for version history and release notes.
This project is licensed under the MIT License - see the LICENSE file for details.
Created and maintained by ascender1729
Built with modern web technologies and best practices for performance, accessibility, and user experience.
Star this repository if you find it helpful!