SurfSense
Python MediumMODSetter/SurfSense
13,688 stars
1,253 forks
111 open issues
Active Apr 2026
Beginner-Friendly Issues 111
Issues tagged for new contributors
[FEATURE] : Seed general user data for demo/testing purposes
#1160 · Apr 7, 2026
Replace `window.location.href` with `router.push` for in-app navigation
#1154 · Apr 6, 2026
good first issue performance frontend
Remove unnecessary `"use client"` from pure data/utility modules
#1153 · Apr 6, 2026
good first issue frontend
Add `autoComplete` attributes to auth form inputs
#1152 · Apr 6, 2026
good first issue frontend
Add debounce to logs table column filter input
#1151 · Apr 6, 2026
good first issue performance frontend
Remove `forceMount` from UserDropdown `DropdownMenuContent`
#1150 · Apr 6, 2026
good first issue performance frontend
Store DOM refs instead of repeated `querySelector` calls in thread.tsx
#1149 · Apr 6, 2026
good first issue performance frontend
Animate `transform` instead of `width` for sidebar slide-out panel transitions
#1148 · Apr 6, 2026
good first issue performance frontend
Replace `transition-all` with specific property transitions across the codebase
#1147 · Apr 6, 2026
good first issue performance frontend
Dynamic import mobile panels in new-chat page
#1146 · Apr 6, 2026
good first issue performance frontend
good first issue performance frontend
Remove dead `drizzle-orm` import from markdown-viewer.tsx
#1144 · Apr 6, 2026
good first issue frontend
Dynamically import locale JSON files instead of bundling all 5 locales
#1143 · Apr 6, 2026
good first issue performance frontend
Lazy-load connector config and connect-form components
#1142 · Apr 6, 2026
good first issue performance frontend
Lazy-load settings dialog tab content with `next/dynamic`
#1141 · Apr 6, 2026
good first issue performance frontend
Lazy-load tool UI components in assistant-message.tsx instead of static imports
#1140 · Apr 6, 2026
good first issue performance frontend
RFC: Verified knowledge surfacing via cryptographic provenance
#1138 · Apr 5, 2026
[Security] CodeTrust Security Review — 3 findings including IDOR vulnerabilities
#1134 · Apr 4, 2026
Throttle scroll handlers that drive `setState` on every scroll event
#1103 · Apr 3, 2026
good first issue performance frontend
Add AbortController to fetch calls in useEffect for proper request cancellation
#1102 · Apr 3, 2026
good first issue frontend
Normalize thread list query keys to avoid duplicate HTTP requests
#1101 · Apr 3, 2026
good first issue performance frontend
Memoize `formatRelativeTime` per thread item in thread-list
#1100 · Apr 3, 2026
good first issue performance frontend
Memoize `JSON.stringify` calls in tool-fallback render path
#1099 · Apr 3, 2026
good first issue performance frontend
Remove `key={String(open)}` that forces full remount on mobile navbar toggle
#1098 · Apr 3, 2026
good first issue performance frontend
Memoize `opts` object in ZeroProvider to prevent unnecessary reconnects
#1097 · Apr 3, 2026
good first issue performance frontend
good first issue performance frontend
bug good first issue frontend
Clear stagger toast timers on unmount in AnnouncementToastProvider
#1094 · Apr 3, 2026
bug good first issue frontend
Add `cancelAnimationFrame` cleanup in animated-tabs `useEffect`
#1093 · Apr 3, 2026
bug good first issue frontend
bug good first issue frontend
bug good first issue frontend
Clear upload progress `setInterval` on unmount in DocumentUploadTab
#1090 · Apr 3, 2026
bug good first issue frontend
Add `sizes` prop to `next/image` with `fill` layout to avoid oversized downloads
#1089 · Apr 3, 2026
good first issue performance frontend
Add `priority` prop to LCP hero images on auth pages
#1088 · Apr 3, 2026
good first issue performance frontend
Replace raw `<img>` tags with `next/image` in marketing and content components
#1087 · Apr 3, 2026
good first issue performance frontend
[FEATURE] Add Multi-Select Functionality to Document Manager
#1086 · Apr 2, 2026
[BUG] installer: zero-cache failed to start / Insufficient upstream connections
#1060 · Mar 31, 2026
bug
Use `startTransition` for search/filter operations on large lists
#1056 · Mar 31, 2026
good first issue performance frontend
good first issue frontend
Add `content-visibility: auto` to long scrollable lists for faster initial render
#1054 · Mar 31, 2026
good first issue performance frontend
Add `{ passive: true }` to scroll and touch event listeners
#1053 · Mar 31, 2026
good first issue performance frontend
Remove unnecessary `useMemo` wrapping simple boolean expressions
#1052 · Mar 31, 2026
good first issue frontend
good first issue frontend
Remove unused `useAtomValue(currentUserAtom)` in connector popup
#1050 · Mar 31, 2026
good first issue frontend
Hoist RegExp creation out of loop in comment composer
#1049 · Mar 31, 2026
good first issue frontend
Convert `disabledTools` array to Set for O(1) membership checks in thread component
#1048 · Mar 31, 2026
good first issue performance frontend
Build index Maps for repeated `.find()` lookups in chat and document hooks
#1047 · Mar 31, 2026
good first issue performance frontend
Use `toSorted()` instead of mutating `.sort()` on shared/cached arrays
#1046 · Mar 31, 2026
bug good first issue frontend
Gate TanStack Query Devtools to development only
#1045 · Mar 31, 2026
good first issue performance frontend
Defer PostHog loading from the critical bundle path
#1044 · Mar 31, 2026
good first issue performance frontend
Replace `radix-ui` barrel imports with `@radix-ui/react-*` scoped imports
#1043 · Mar 31, 2026
good first issue performance frontend
Add `optimizePackageImports` to `next.config.ts` for heavy barrel-file libraries
#1042 · Mar 31, 2026
good first issue performance frontend
Disable Rename Button Until Chat Name Changes
#1037 · Mar 30, 2026
Use `key` prop to reset LLM role manager form state instead of useEffect sync
#1018 · Mar 27, 2026
good first issue frontend
Move onboarding animation state into event handlers instead of useEffect
#1017 · Mar 27, 2026
good first issue frontend
Move `pendingNewChat` navigation logic from useEffect to event handler
#1016 · Mar 27, 2026
good first issue frontend
Lazy-load syntax highlighter in markdown text renderer
#1015 · Mar 27, 2026
good first issue performance frontend
Dynamically import PlateEditor for slide-out panels
#1014 · Mar 27, 2026
good first issue performance frontend
Add React.memo to ChunkCard in source detail panel
#1012 · Mar 27, 2026
good first issue frontend
Dynamically import Remotion + Babel for video presentation tool UI
#1013 · Mar 27, 2026
good first issue performance frontend
Use `key={connector.id}` to reset connector config forms instead of useEffect sync
#1010 · Mar 27, 2026
good first issue frontend
Add React.memo to ThreadListItemComponent to prevent unnecessary re-renders
#1011 · Mar 27, 2026
good first issue frontend
Use lazy state initialization for complex initial objects in tool UIs
#1009 · Mar 27, 2026
good first issue frontend
good first issue frontend
good first issue frontend
bug good first issue frontend
good first issue frontend
Derive `hasChanges` during render instead of computing it in useEffect
#1004 · Mar 27, 2026
good first issue frontend
Add missing `loading.tsx` for key dashboard routes
#952 · Mar 24, 2026
good first issue UX
Use functional state updates in hero carousel to reduce callback churn
#951 · Mar 24, 2026
good first issue best practice
Fix missing `setTimeout` cleanup in onboarding tour retry logic
#950 · Mar 24, 2026
bug good first issue
Validate redirect URL in auth flow to prevent open redirect
#949 · Mar 24, 2026
good first issue security
Add `maxLength` constraints to auth and settings form inputs
#948 · Mar 24, 2026
good first issue UX
Convert public chat page to Server Component with `params` prop
#947 · Mar 24, 2026
good first issue performance
Fix `useEffect` dependency in `DocumentTypeChip` truncation check
#946 · Mar 24, 2026
bug good first issue
Fix stale event reference in register page toast retry action
#945 · Mar 24, 2026
bug good first issue
Clean up unused `useRouter` and `searchSpaceId` in `SidebarHeader.tsx`
#944 · Mar 24, 2026
good first issue code quality
good first issue UX
Replace `key={index}` with stable keys in pricing component
#942 · Mar 24, 2026
good first issue best practice
good first issue code quality
Fix missing `setTimeout` cleanup in hero section collision effect
#940 · Mar 24, 2026
bug good first issue
Add `noopener` to `window.open` call in `AnnouncementToastProvider`
#939 · Mar 24, 2026
good first issue security
Add `rel="noopener noreferrer"` to `target="_blank"` link in `link-toolbar.tsx`
#938 · Mar 24, 2026
good first issue security
Replace `router.push` with `<Link>` for static navigation in `UserDropdown`
#937 · Mar 24, 2026
good first issue best practice
Convert search space redirect page to server-side `redirect()`
#936 · Mar 24, 2026
good first issue performance
good first issue performance
Fix missing `clearTimeout` in copy button useEffect in `code-block-node.tsx`
#934 · Mar 24, 2026
bug good first issue
bug good first issue
Fix nested interactive elements (button inside button) in roles manager
#921 · Mar 24, 2026
bug good first issue accessibility
Add error toast to invite creation failure in team page
#920 · Mar 24, 2026
good first issue UX
Add `AbortController` to fetch call in audio component
#919 · Mar 24, 2026
good first issue performance
Fix misleading loading state in GitHub stars badge
#918 · Mar 24, 2026
good first issue UX
Style the global error page to match the app design
#917 · Mar 24, 2026
good first issue UI
Add route-level metadata to pricing, contact, and changelog pages
#916 · Mar 24, 2026
good first issue SEO
Add `focus-visible` ring to share visibility option buttons
#915 · Mar 24, 2026
good first issue accessibility
Add dialog semantics and Escape key handling to expanded media overlay
#914 · Mar 24, 2026
good first issue accessibility
Add keyboard accessibility to clickable media cards on homepage
#913 · Mar 24, 2026
good first issue accessibility
Replace `any` types with proper types in contact form component
#912 · Mar 24, 2026
good first issue TypeScript
Add error state handling in general settings manager
#911 · Mar 24, 2026
good first issue UX
Add loading states for roles and invites queries in team page
#910 · Mar 24, 2026
good first issue UX
Add toast feedback for public link creation and deletion
#909 · Mar 24, 2026
good first issue UX
Add `aria-label` and `aria-pressed` to the web search toggle in chat composer
#908 · Mar 24, 2026
good first issue accessibility
Replace hardcoded colors with theme tokens in login form
#907 · Mar 24, 2026
good first issue design system
Add placeholder text to login and register form inputs
#906 · Mar 24, 2026
good first issue UX
Add error handling to empty catch blocks in `use-messages-electric.ts`
#905 · Mar 24, 2026
good first issue code quality
Remove unguarded `console.log` statements from production code
#904 · Mar 24, 2026
good first issue code quality
Replace raw `<img>` tags with Next.js `<Image>` in user avatars
#903 · Mar 24, 2026
good first issue performance
Add `aria-label` to icon-only buttons in audio player
#902 · Mar 24, 2026
good first issue accessibility
feat: Add shelf exclusion filter to BookStack connector
#892 · Mar 20, 2026
fix: BookStack and Obsidian connectors missing from periodic scheduler task_map
#891 · Mar 20, 2026
[FEATURE] support Mind Maps
#888 · Mar 18, 2026
enhancement