sankalp's blog

PR Analysis Report

Total Merged PRs: 23 Period: June 21 - August 19, 2025


Sahil Lavingia (Gumroad CEO) announced bounties for meaningful contributions to Antiwork Projects.

This is a report of my PRs merged to Gumroad, Helper and Gumboard - a total of 23 PRs and earned bounties of 10K+ USD

I generated this report with help of Claude Code and add my comments on challenges/observations at the beginning of each section.

Stats

Repository Total PRs Merged Closed (not merged) Open
antiwork/gumroad 27 9 18 0
antiwork/helper 22 12 10 0
antiwork/gumboard 11 2 9 0
TOTAL 60 23 37 0

Success Rate: 38.3% (23 merged out of 60 total)

High Impact & Complexity

Performance Optimizations (4 PRs)

These were my favourite contributions as they were elegant, highly impactful and implementation wise short. There were mostly 2 main challenges in these PRs -

  1. Figuring out hot paths, bottlenecks and inefficient code without having production data on local machine. I would use Gemini AI studio's 1M context capability to understand the codebase. I would narrow down some potential suspects via it.

Then I would utilize o3 and sonnet 4 a lot on Cursor to perform long chain searches on these suspects or other areas where I suspected optimisation was possible (usually it's easy to find hot paths). Then I would write scripts with help of Cursor to seed database, perform benchmarking, seeing if heap scan is changing to index scan or not.

  1. Convincing the reviewer that it was a valuable contribution by profiling, benchmarking and providing proof like EXPLAIN ANALYZE output

The reviewers were mostly senior or staff level engineers. My observation was they preferred high impact less complex optimisation solutions - for example adding indexes is usually the most bang for buck optimisation

#952 - Add database indexes for improving conversation message queries

#388 - Replace O(n) org membership checks with O(1) lookups + add index

#264 - Add composite indexes

[COMMENT] - This was my favourite frontend optimisation PR. There were duplicate timers firing for several components. I made a relative global timer so then only one timer existed.

#558 - Optimize HumanizedTime performance with single shared time hook


Medium-High Impact & Complexity

Feature Development (2 PRs)

#726 - Add saved replies selector to new conversation modal + e2e playwright tests

#549 - Add tooltip for sidebar icons when sidebar is collapsed

Testing Infrastructure (2 PRs)

#768 - Add e2e tests for widget

#757 - Fix chat widget screenshot bug + add screenshot e2e tests


Medium Impact & Complexity

Bug Fixes (3 PRs)

#565 - Auto-refresh messages after sending and reset UI state

#495 - Add custom validation back for username attribute in User model

#586 - Revert "Clean up old profile JSON schemas (#454)"

Configuration & Environment (1 PR)

#515 - Add .env.test dummy API keys to make more specs work on local


Low-Medium Impact (Tech Debt & Cleanup)

Code Cleanup - Backend (5 PRs)

#487 - Remove unused methods from User model

#486 - Remove unused CORS utilities and related specs

#485 - Remove unused Sidekiq workers and related specs

#474 - Remove unused service files

#438 - Remove unused legacy helpers & specs

#426 - Remove 4 dead methods in ruby backend

Code Cleanup - Frontend (3 PRs)

#541 - Remove unused UI components

#539 - Delete unused files in mailbox_slug to reduce tech debt

#538 - Change export to const for various components and types


Low Impact

Minor Fixes & Chores (2 PRs)

#607 - Dynamically set the title

#759 - Update SECURITY.md to use correct mail


Summary by Category

Category Count % of Total
Performance Optimizations 4 17.4%
Tech Debt & Cleanup 11 47.8%
Features & UX 3 13.0%
Bug Fixes 3 13.0%
Testing 2 8.7%

Summary by Repository

Repository PRs Focus Areas
antiwork/helper 12 Performance, Features, Testing, Frontend Cleanup
antiwork/gumroad 9 Tech Debt Cleanup, Bug Fixes, Backend Cleanup
antiwork/gumboard 2 High-impact Performance Optimizations

Key Highlights

  1. Performance Expert: 4 high-impact performance optimizations including algorithmic improvements (O(n) → O(1)) and strategic database indexing

  2. Removed tech debt - Eliminated significant technical debt with 11 cleanup PRs, removing unused code, workers, services, and components

  3. Added comprehensive E2E test coverage for widgets and conversation features

  4. Helped addressed regressions on gumroad promptly (#495) and improved code quality through refactoring (#538)

Impact Distribution

Most Impactful Contribution: The O(1) organization membership lookup optimization (#388) likely provides the most significant performance improvement at scale.