Discover open source projects to contribute to. Search research papers across every field.
A retro terminal-aesthetic platform built for students at Chandigarh University — and anyone who wants to find meaningful open source contributions or explore academic research.
Explore OSS — Search GitHub repositories filtered by language, topic, competition level, and activity. Each repo gets an opportunity score calculated from open issues, update recency, fork ratio, and star count. Results shown in a ranger-style dual-pane interface with ASCII stat bars and keyboard navigation.
Research Papers — Search across four free academic APIs simultaneously: CrossRef, Semantic Scholar, arXiv, and OpenAlex. No API keys required. Any topic, any field.
| Layer | Tech |
|---|---|
| Frontend | Next.js 14 · TypeScript · Tailwind CSS · Framer Motion |
| Backend | Node.js · Express |
| Database | Supabase (PostgreSQL) |
| APIs | GitHub Search API · OpenAlex · Semantic Scholar · arXiv · CrossRef |
| Font | DM Mono (monospace throughout) |
Retro Terminal (Amber) — CRT monitor aesthetic with phosphor glow, scan lines, and sharp amber-on-black typography. No rounded corners. Monospace everything.
Key UI elements:
- Canvas-based rotating ASCII pyramid on the home page
- Interactive 3D synapse node network (mouse-repulsion spring physics)
- Ranger-style dual-pane explorer for repos
- Boot sequence terminal animation on landing
synapse/
├── client/ # Next.js frontend
│ ├── src/
│ │ ├── app/
│ │ │ ├── page.tsx # Home — boot sequence + pyramid
│ │ │ ├── explore/ # OSS explorer (dual-pane)
│ │ │ └── research/ # Research paper search
│ │ ├── components/
│ │ │ ├── ui/
│ │ │ │ ├── AsciiPyramid.tsx # Rotating 3D ASCII pyramid
│ │ │ │ ├── SynapseNodes.tsx # Interactive node network
│ │ │ │ ├── Logo.tsx
│ │ │ │ └── Navbar.tsx
│ │ │ └── research/
│ │ │ └── PaperCard.tsx
│ │ └── lib/
│ │ └── api.ts # Axios client with Supabase JWT
│ └── tailwind.config.js # Amber/CRT color tokens
│
├── server/ # Express backend
│ └── src/
│ ├── index.js # Entry point, rate limiting
│ ├── routes/
│ │ ├── explore.js # GET /api/explore
│ │ └── research.js # GET /api/research
│ └── services/
│ ├── githubSearch.js # GitHub Search API + opportunity score
│ ├── openAlex.js
│ ├── semanticScholar.js
│ ├── arxiv.js
│ └── crossref.js
│
├── supabase/
│ └── schema.sql # PostgreSQL schema + RLS policies
│
└── .env # Not committed — see setup below
- Node.js 18+
- A Supabase project (free tier works)
- No other API keys needed — all external APIs are free and keyless
git clone https://github.com/SynapseNode0/Synapse.git
cd SynapseCreate a .env file in the root:
SUPABASE_URL=your_supabase_project_url
SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_KEY=your_supabase_service_role_key
GITHUB_TOKEN=optional_but_recommended
PORT=5000Copy the same file into client/ as .env.local:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
NEXT_PUBLIC_API_URL=http://localhost:5000Run supabase/schema.sql in your Supabase SQL editor to create the tables and RLS policies.
cd server
npm install
npm run dev # runs on http://localhost:5000Open a second terminal:
cd client
npm install
npm run dev # runs on http://localhost:3000Each GitHub repo gets a score (0–100) calculated server-side from the single search API response — no extra requests made:
| Signal | Weight |
|---|---|
| Open issues (capped at 100) | 30 pts |
| Days since last update | up to 25 pts |
| Fork/star ratio | up to 15 pts |
| Star count sweet spot (100–5k) | up to 15 pts |
| Topics count (>3) | 10 pts |
| Has homepage | 5 pts |
Issues and PRs welcome. The codebase is intentionally kept simple — no ORMs, no state management libraries, no component libraries.
MIT