Discover organizations based on tech stack, domains, competition level, GitHub activity, and beginner-friendly issues β all in one place.
GSoC 2026 Org Finder is a fast, modern, and beginner-friendly platform for exploring Google Summer of Code organizations based on tech stack, domains, interests, and contribution goals.
Instead of manually browsing through 184+ organizations, users can:
- π Search by technology, domain, or keyword
- π·οΈ Filter by languages, categories, and competition level
- βοΈ Compare organizations side-by-side
- π’ Discover beginner-friendly Good First Issues
- π Track live GitHub activity and project insights
Built with a responsive and lightweight architecture, the platform delivers a seamless experience across desktop and mobile devices.
No sign-up. No setup. Just explore, compare, and begin your open-source journey π
| Section | Description |
|---|---|
| β¨ What is this? | Overview of the project |
| π― Features | Core functionalities and highlights |
| π Flowchart | Visual representation of project workflow |
| π Project Structure | Repository folder structure |
| π URL Validation | URL validation system and checks |
| π Deploy Your Own | Deployment and setup guide |
| π Troubleshooting | Common issues and fixes |
| π€ Contributing | Contribution guidelines and workflow |
| π₯ GSSoC Mentors | Mentors supporting the project |
| π Key Dates | Important GSoC 2026 timeline |
| π‘ Tips for Users | Helpful usage tips and shortcuts |
| π License | Project license information |
| β¨ Feature | π Description |
|---|---|
| π Smart Search | Search across 184+ organizations |
| π·οΈ Advanced Filters | Filter by domains and languages |
| βοΈ Organization Compare | Compare up to 3 organizations |
| π’ Good First Issues | Find beginner-friendly issues |
| β¨οΈ Keyboard Navigation | Full accessibility support |
| π Dark Mode | Clean dark/light interface |
| π± Fully Responsive | Works on all screen sizes |
Easily explore organizations using powerful and beginner-friendly filtering tools designed to simplify the GSoC organization discovery process.
| Feature | Description |
|---|---|
| π Full-text Search | Search organizations by name, tech stack, or topic |
| π·οΈ Language Filters | Filter using multiple programming languages |
| π Competition Filter | Explore high, medium, or low competition orgs |
| π’ Activity Badges | Identify actively maintained organizations |
| β‘ Quick Category Chips | Instantly filter by domains and interests |
| π± Beginner Recommendations | Discover newcomer-friendly organizations |
| Feature | Description |
|---|---|
| π Live GitHub Stats | View Stars, Forks, Issues, and Last Commit data |
| π’ Good First Issues | Track beginner-friendly issues on every org card |
| ποΈ Activity Badge | Shows Active, Moderate, or Low repository activity |
| π Smart Repo Links | Redirects to project repos or GitHub org pages |
| π Project Insights | Analyze repository health and activity |
| β‘ Fast Fetching | Lightweight and optimized GitHub integration |
flowchart TD
A([π’ Organization Card])
A --> B[π Tech Stack]
A --> C[π
GSoC Timeline]
A --> D[π Competition Metrics]
A --> E[π’ Good First Issues]
A --> F[π‘ Ideas Page]
A --> G[βοΈ Compare System]
D --> H[β Stars & Forks]
D --> I[π₯ Activity Badge]
style A fill:#d4af37,color:#000,stroke:#2c2420,stroke-width:3px
style B fill:#1f2937,color:#fff
style C fill:#5d4037,color:#fff
style D fill:#0f766e,color:#fff
style E fill:#166534,color:#fff
style F fill:#7c3aed,color:#fff
style G fill:#b45309,color:#fff
style H fill:#374151,color:#fff
style I fill:#991b1b,color:#fff
Easily compare up to 3 organizations side-by-side to identify the best fit for your skills and contribution goals.
| Metric | Comparison |
|---|---|
| π Competition | High, medium, or low competition |
| π GSoC Experience | Years participating in GSoC |
| β GitHub Stats | Stars, forks, and activity |
| π’ Good First Issues | Beginner-friendly opportunities |
| π» Tech Stack | Languages and domains |
| π₯ Repository Health | Activity and maintenance status |
β‘ Fast keyboard-first browsing |
π 100% private browser storage |
πΎ Preferences saved automatically |
β‘ Optimized for all screen sizes |
| Domain | Examples |
|---|---|
| Science & Medicine | OpenAstronomy, DeepChem, MDAnalysis, ArduPilot, CERN-HSF |
| Programming Languages | LLVM, GCC, Haskell.org, The Rust Foundation, Swift, Python SF |
| Data | MariaDB, PostgreSQL, DBpedia, OpenStreetMap, MetaBrainz |
| Web | Django, Drupal, Wagtail, Wikimedia, webpack |
| Security | Metasploit, OWASP, Rizin, AFLplusplus, The Honeynet Project |
| Operating Systems | Debian, FreeBSD, GNOME, NetBSD, Haiku, KDE |
| Media | FFmpeg, Blender, Synfig, Jitsi, VideoLAN |
| Infrastructure | Kubeflow, KubeVirt, QEMU, Meshery, CNCF |
| Dev Tools | MIT App Inventor, OpenVINO, Gemini CLI, API Dash |
| Other | AnkiDroid, Joplin, Zulip, CCExtractor, Neovim |
| Layer | What |
|---|---|
| Frontend | Vanilla HTML/CSS/JS β zero frameworks, zero build step |
| Hosting | Vercel (static) |
| API | Vercel Edge Function (/api/github.js) |
| Data source | Manually curated from summerofcode.withgoogle.com |
| Analytics | Browser localStorage only β no external tracking |
gsoc-2026-org-finder/
βββ index.html # Main frontend HTML
βββ api/github.js # Vercel Edge Function β GitHub API proxy
βββ src/
β βββ assets/og-image.jpeg # Social preview image
β βββ js/app.js # Application logic
β βββ js/org.js # Organization data source
β βββ styles.css # Styling
βββ agent/
β βββ scripts/ # Automation and helper scripts
β βββ tenet_agent/ # TENET PR review agent
βββ data/issues.json
βββ README.md
No node_modules. No build step. No bundler. Just deploy.
The project includes a validation script to ensure all organization ideas URLs are safe and properly formatted:
node agent/scripts/validate-ideas-urls.jsThis script checks:
- β URL format validity
- β Protocol restrictions (http/https only)
β οΈ Placeholder/generic URLs that need updating- π Summary statistics and protocol distribution
Run this before committing changes to src/js/org.js to catch invalid URLs early.
To ensure the GSoC Org Finder is extremely secure, accessible, resilient, and maintainable, the codebase has been hardened with a robust vanilla architecture:
All frontend scripting, bookmarking, complexity filtering, modal controls, and dynamic templates have been migrated to a 100% programmatic model:
- Zero Inline Handlers: All scattered
onclickandonerrorattributes in both static HTML (index.html) and dynamic template strings (app.js,recommendation-ui.js) are completely eliminated. - Global Capturing Image Error Interceptor: A centralized recapturing
errorlistener registered ondocumentseamlessly intercepts failed image load events and triggers styled initial-based fallbacks. - Centralized Event Delegation: Dynamic interactive collections (like trending cards, selected language badges, and mentor contact cards) cleanly route clicks via unified delegated listeners on their parent elements (
#trendingScroll,#selectedLangsStrip,#mentorsContainer).
- HTML Escaping: All dynamic insertions of user-supplied or external API content are safely wrapped via a rigid
escapeHtml()text filter to block HTML markup injections. - Protocol-Restricted Hrefs: External anchor elements (like organization repository pages or ideas boards) are strictly validated via
sanitizeHrefUrl()andvalidateIdeasUrl()to enforce only safe absolute protocols (http:andhttps:), explicitly rejecting active protocol wrappers (javascript:,data:,vbscript:).
All overlays (orgModal, compareModal, and helpModal) implement full semantic accessibility matching the WAI-ARIA standard:
- Modals are marked up using
role="dialog",aria-modal="true", and mapped with specific label headers viaaria-labelledby. - Open/close interactions trigger strict focus restoration (returning focus to the activating button upon closing).
- Modals implement dynamic focus trapping ensuring
Tab/Shift+Taboperations cycle exclusively within dialog controls.
- Static Manifest: A robust cache list (
sw.js) collects and version-controls all essential UI assets, scripts, stylesheets, and custom Google Fonts. - Dual Caching Interceptors: Intercepted requests deploy Stale-While-Revalidate patterns for static assets (for zero-latency responsiveness) and Network-First strategies for Edge proxy stats and JSON issue lists (for high data reliability).
A modular test bed under /tests utilizes Node.js's built-in node:test framework and mock DOM stubs, covering:
tests/sanitization.test.js: Validates escaping and URL sanitizers.tests/skills.test.js: Validates language aliases and technical context matching for single-letter tags.tests/recommendation.test.js: Validates recommender scores and veteran status bonuses.tests/filtering.test.js: Validates tag matching.tests/modal.test.js: Upgraded interactive test suite validating focus traps, focus restorations, and API fetching.tests/browser.test.js: Simulated browser DOM smoke test dry-running page load event bindings.tests/cache.test.js: Service Worker offline caching strategy fetch intercept test.
Run the test suite locally:
npm testgit clone https://github.com/your-username/gsoc-2026-org-finder.git
cd gsoc-2026-org-finderIn your Vercel dashboard β Project Settings β Environment Variables:
GITHUB_TOKEN = ghp_your_token_here
Generate a token at github.com/settings/tokens β only public_repo scope needed.
vercel --prodOr connect the repo to Vercel and it deploys automatically on every push.
open index.html # macOS β works without API (GitHub stats won't load)For full functionality locally, run vercel dev to start the Edge Function.
GitHub stats not loading?
- Set
GITHUB_TOKENenvironment variable - Check rate limits:
curl -H "Authorization: token YOUR_TOKEN" https://api.github.com/rate_limit
Ideas link not working?
- Run
node agent/scripts/validate-ideas-urls.jsto check all URLs
Issues page empty?
- GitHub API might be rate-limited; wait 1 hour and refresh
Found a missing org, wrong category, or incorrect tags? PRs are very welcome!
Read the guide for your contribution track before getting started:
| Track | Guide |
|---|---|
| GSSoC'26 Contributors | GSSoC Contributor Guide |
| GSSoC'26 Mentors | GSSoC Mentor Guide |
| NSoC'26 Contributors | NSoC Guide |
| General Contributors | General Contributor Guide |
For the full contributing reference (architecture, rules, PR workflow), see CONTRIBUTING.md.
This repo uses a maintainer-verified assignment system:
- Find an issue and comment
/assign gssocor/assign nsoc - Your request is queued (not immediately assigned)
- A maintainer verifies the issue and runs
/approve-assignment - You get notified and can begin work
Do not start working before you are assigned.
- Fork the repo
- Edit the
ORGSarray inindex.html - Open a pull request using the appropriate template
Each org entry looks like this:
{
name: "Organization Name",
cat: "science", // science | programming | data | web | os | security | media | infra | dev | other
years: 5, // number of GSoC years participated
firstYear: 2021, // first year they participated
competition: "moderate", // hot | moderate | chill
github: "owner/repo", // main repo (or just "owner" for umbrella orgs)
ideas: "https://github.com/org/repo/wiki/Ideas", // project ideas page URL (optional)
tags: ["python", "c++", "machine learning"],
desc: "Short description of what the org does.",
fit: ["Python devs", "ML researchers"]
}Ideas URL Requirements:
- Must use
http://orhttps://protocol (or protocol will be added automatically) - Should link to the organization's specific project ideas page
- Generic GSoC organization pages are acceptable as placeholders but should be updated when possible
- Run
node agent/scripts/validate-ideas-urls.jsto check all URLs before submitting
Competition levels (subjective, based on org popularity + slot count):
hotβ high applicant volume, very competitive (Django, LLVM, Git, KDEβ¦)moderateβ good balance of applicants and slotschillβ fewer applicants, easier to stand out
All PRs pass through a 3-stage pipeline:
| Stage | What | Who |
|---|---|---|
| Stage 1 | DCO, format, AI/slop, diff size | Automated |
| Stage 2 | Code review, quality | Mentor |
| Stage 3 | Final merge decision | Project Admin |
Stage 2 unlocks only after Stage 1 passes. The pipeline status comment on your PR updates only when the stage actually changes (no spam).
| Date | Milestone |
|---|---|
| February 2026 | Organizations announced |
| March 16, 2026 | Student applications open |
| March 31, 2026 | Application deadline |
| April 30 2026 | Accepted students announced |
| May β November 2026 | Coding period |
The Edge Function proxies GitHub API calls so your token never hits the client.
| Endpoint | Description |
|---|---|
GET /api/github?repo=owner/repo |
Repo stats: stars, forks, issues, last commit, activity, GFI count |
GET /api/github?repo=owner/repo&gfi=1 |
Good First Issue count only (faster, cached separately) |
GET /api/github?repo=owner/repo&gfi=1&issues=1 |
Full list of up to 30 open Good First Issues |
All responses are cached in-memory for 1 hour on the Edge runtime.
@S3DFX-CYBER β Project Admin (PA) for GSSoC'26 and NSoC'26. Responsible for final merge decisions, mentor coordination, repository maintenance, and ensuring contribution quality across all programs.
These mentors help guide and review contributions for the GSSoC program:
- New to GSoC? Start with "Newcomers First" filter + sort by Good First Issues
- Experienced? Check "Veterans" filter + sort by Competition for challenges
- Building a comparison? Use keyboard shortcut
Cto quickly add orgs - Mobile browsing? Try portrait mode β everything scrolls smoothly
Apache 2.0 β made for GSoC beginners, by people who've been there. Share it with anyone applying! Applications open March 16, 2026. π
























































































































































































