{"source":"https://contributable.vercel.app","licence":"CC BY 4.0","methodology":"https://contributable.vercel.app/methodology","v":2,"owner":"internetarchive","name":"openlibrary","updatedAt":"2026-10-11T05:43:02.419Z","coveredSince":"2025-10-04T16:51:48.782Z","facts":{"owner":"internetarchive","name":"openlibrary","description":"One webpage for every book ever published!","stars":6743,"forks":2048,"archived":false,"isFork":false,"license":"AGPL-3.0","defaultBranch":"master","pushedAt":"2026-10-10T19:07:38Z","createdAt":"2008-10-30T05:20:14Z","topics":["internet-archive","open-source","books","library-catalogue","hacktoberfest"],"languages":{"Python":4654330,"JavaScript":2029570,"HTML":677818,"CSS":515289,"Jinja":264258,"Vue":248109,"Shell":155303,"TypeScript":65941,"Dockerfile":5197,"Makefile":3209},"frameworks":["FastAPI","Playwright","Pydantic","Vite","Vitest","Vue"],"commits90d":555,"releases365d":30,"lastReleaseAt":"2026-10-06T18:11:29Z","gettingStarted":{"contributing":true,"codeOfConduct":true,"issueTemplates":true,"devcontainer":false,"cla":"none","channels":[],"policy":null}},"metrics":{"computedAt":"2026-10-11T05:43:02.419Z","outsidePulls":{"cohort":{"n":155,"merged":106,"closedUnmerged":40,"open":9,"mergeRate":0.726027397260274,"openShare":0.05806451612903226,"evidence":{"merged":[13601,13598,13597,13596,13595,13590,13589,13584,13583,13578,13577,13576,13574,13573,13563,13556,13554,13546,13540,13533],"closedUnmerged":[13575,13562,13558,13553,13547,13545,13528,13520,13519,13518,13511,13503,13502,13499,13464,13462,13460,13445,13406,13394],"open":[13507,13497,13475,13333,13290,13289,13235,13083,13025]}},"firstTimers":{"n":50,"merged":29,"closedUnmerged":18,"open":3,"mergeRate":0.6170212765957447,"openShare":0.06,"evidence":{"merged":[13598,13563,13554,13540,13533,13526,13525,13515,13512,13500,13498,13479,13473,13461,13458,13457,13444,13434,13426,13411],"closedUnmerged":[13575,13553,13499,13464,13406,13394,13204,13203,13195,13141,13089,13078,13066,13058,13053,13051,13042,12983],"open":[13475,13235,13025]}},"year":{"n":563,"merged":313,"closedUnmerged":210,"open":40,"mergeRate":0.5984703632887189,"openShare":0.07104795737122557,"evidence":{"merged":[13601,13598,13597,13596,13595,13590,13589,13584,13583,13578,13577,13576,13574,13573,13563,13556,13554,13546,13540,13533],"closedUnmerged":[13575,13562,13558,13553,13547,13545,13528,13520,13519,13518,13511,13503,13502,13499,13464,13462,13460,13445,13406,13394],"open":[13507,13497,13475,13333,13290,13289,13235,13083,13025,12839,12802,12565,12494,12369,12312,12310,12297,12296,12219,12180]}}},"pullFirstResponse":{"n":155,"answered":144,"waiting":11,"medianHours":29.189166666666665,"p75Hours":171.225,"within48h":0.580645161290323,"within7d":0.748387096774194,"curve":[{"hours":0.028333333333333332,"waiting":0.9935483870967742},{"hours":0.04027777777777778,"waiting":0.9741935483870968},{"hours":0.06444444444444444,"waiting":0.9548387096774194},{"hours":0.09083333333333334,"waiting":0.9354838709677419},{"hours":0.16777777777777778,"waiting":0.9161290322580644},{"hours":0.3308333333333333,"waiting":0.8967741935483869},{"hours":0.5536111111111112,"waiting":0.8774193548387096},{"hours":0.7661111111111111,"waiting":0.8580645161290321},{"hours":1.5980555555555556,"waiting":0.8387096774193546},{"hours":1.7372222222222222,"waiting":0.8193548387096772},{"hours":2.1780555555555554,"waiting":0.7999999999999997},{"hours":3.2288888888888887,"waiting":0.7806451612903222},{"hours":4.416388888888889,"waiting":0.754838709677419},{"hours":5.176388888888889,"waiting":0.7354838709677416},{"hours":6.471388888888889,"waiting":0.7161290322580641},{"hours":7.6066666666666665,"waiting":0.6967741935483869},{"hours":9.15,"waiting":0.6774193548387094},{"hours":9.421111111111111,"waiting":0.6580645161290319},{"hours":10.62888888888889,"waiting":0.6387096774193545},{"hours":11.856111111111112,"waiting":0.619354838709677},{"hours":13.848888888888888,"waiting":0.5999999999999995},{"hours":14.0675,"waiting":0.5806451612903221},{"hours":16.010555555555555,"waiting":0.5612903225806446},{"hours":17.74388888888889,"waiting":0.5419354838709671},{"hours":24.52611111111111,"waiting":0.5225806451612897},{"hours":25.026944444444446,"waiting":0.5032258064516122},{"hours":30.315555555555555,"waiting":0.4838709677419348},{"hours":34.48777777777778,"waiting":0.4645161290322574},{"hours":42.465833333333336,"waiting":0.4451612903225801},{"hours":46.24666666666667,"waiting":0.42580645161290276},{"hours":56.06138888888889,"waiting":0.4064516129032254},{"hours":69.84055555555555,"waiting":0.38709677419354804},{"hours":82.58694444444444,"waiting":0.36774193548387063},{"hours":87.27083333333333,"waiting":0.34838709677419316},{"hours":101.56055555555555,"waiting":0.32903225806451575},{"hours":122.10944444444445,"waiting":0.3096774193548383},{"hours":133.75333333333333,"waiting":0.28387096774193504},{"hours":166.58,"waiting":0.26451612903225763},{"hours":171.225,"waiting":0.2451612903225802},{"hours":184.09583333333333,"waiting":0.2258064516129028},{"hours":199.55805555555557,"waiting":0.20645161290322542},{"hours":251.29777777777778,"waiting":0.18709677419354803},{"hours":292.97777777777776,"waiting":0.16774193548387065},{"hours":468.82472222222225,"waiting":0.14838709677419326},{"hours":628.5213888888889,"waiting":0.12903225806451588},{"hours":654.6519444444444,"waiting":0.1096774193548385},{"hours":736.3177777777778,"waiting":0.09032258064516112},{"hours":1877.9877777777779,"waiting":0.061935483870967624}],"evidence":{"answered":[13601,13598,13597,13596,13595,13590,13589,13584,13583,13578,13577,13576,13575,13574,13573,13563,13562,13558,13556,13554],"waiting":[13460,13445,13299,13289,13235,13204,13203,13078,13056,13025,12990]}},"timeToMerge":{"n":155,"merged":106,"medianHours":161.81,"evidence":[13601,13598,13597,13596,13595,13590,13589,13584,13583,13578,13577,13576,13574,13573,13563,13556,13554,13546,13540,13533]},"issueFirstResponse":{"n":167,"answered":103,"waiting":64,"medianHours":62.6875,"p75Hours":null,"within48h":0.461077844311377,"within7d":0.5508982035928143,"curve":[{"hours":0.03111111111111111,"waiting":0.9940119760479041},{"hours":0.07388888888888889,"waiting":0.9820359281437125},{"hours":0.10111111111111111,"waiting":0.9700598802395209},{"hours":0.1486111111111111,"waiting":0.9520958083832335},{"hours":0.2313888888888889,"waiting":0.9401197604790418},{"hours":0.3055555555555556,"waiting":0.9281437125748502},{"hours":0.31916666666666665,"waiting":0.9161676646706586},{"hours":0.39916666666666667,"waiting":0.9041916167664671},{"hours":0.5252777777777777,"waiting":0.8922155688622754},{"hours":0.6775,"waiting":0.8742514970059879},{"hours":0.6852777777777778,"waiting":0.8622754491017962},{"hours":0.7386111111111111,"waiting":0.8502994011976047},{"hours":0.8155555555555556,"waiting":0.8383233532934131},{"hours":0.9666666666666667,"waiting":0.8263473053892216},{"hours":1.103888888888889,"waiting":0.8143712574850299},{"hours":1.653888888888889,"waiting":0.7964071856287425},{"hours":2.1847222222222222,"waiting":0.7844311377245508},{"hours":2.361388888888889,"waiting":0.7724550898203592},{"hours":2.762777777777778,"waiting":0.7604790419161674},{"hours":2.923611111111111,"waiting":0.748502994011976},{"hours":3.0566666666666666,"waiting":0.7365269461077842},{"hours":4.501944444444445,"waiting":0.7185628742514968},{"hours":5.149166666666667,"waiting":0.7065868263473053},{"hours":6.728611111111111,"waiting":0.6946107784431138},{"hours":9.515277777777778,"waiting":0.6826347305389223},{"hours":10.02,"waiting":0.6706586826347306},{"hours":10.531944444444445,"waiting":0.658682634730539},{"hours":16.057222222222222,"waiting":0.6407185628742517},{"hours":16.476111111111113,"waiting":0.62874251497006},{"hours":19.639722222222222,"waiting":0.6167664670658685},{"hours":22.3975,"waiting":0.6047904191616769},{"hours":23.370833333333334,"waiting":0.5928143712574852},{"hours":27.564722222222223,"waiting":0.5808383233532936},{"hours":34.259166666666665,"waiting":0.5628742514970062},{"hours":41.31333333333333,"waiting":0.5508982035928146},{"hours":47.93833333333333,"waiting":0.538922155688623},{"hours":52.48916666666667,"waiting":0.5269461077844314},{"hours":56.94611111111111,"waiting":0.5149700598802397},{"hours":59.07111111111111,"waiting":0.5029940119760481},{"hours":71.71027777777778,"waiting":0.48502994011976064},{"hours":85.19416666666666,"waiting":0.473053892215569},{"hours":100.20833333333333,"waiting":0.4610778443113774},{"hours":141.21055555555554,"waiting":0.4491017964071857},{"hours":224.58055555555555,"waiting":0.4371257485029941},{"hours":382.84777777777776,"waiting":0.42514970059880247},{"hours":445.9347222222222,"waiting":0.40718562874251507},{"hours":579.9005555555556,"waiting":0.39520958083832347},{"hours":849.3322222222222,"waiting":0.3831399700598804}],"evidence":{"answered":[13605,13594,13587,13586,13572,13571,13570,13569,13568,13567,13559,13544,13543,13542,13539,13538,13537,13536,13531,13524],"waiting":[13566,13560,13549,13541,13534,13485,13482,13480,13456,13453,13451,13449,13448,13447,13442,13437,13435,13433,13420,13416]}},"starter":{"counts":{"available":0,"claimed":0,"in-progress":13,"stale":0},"helpWantedAvailable":0,"issues":[{"n":13852,"title":"Fix leftover dead doc references: opds-system.md and .pam (#13835)","state":"in-progress","label":"beginner","createdAt":"2026-10-08T00:53:21Z","updatedAt":"2026-10-08T08:47:11Z"},{"n":13848,"title":"Restore the dropped sections in docs/frontend/design.md (#13835)","state":"in-progress","label":"beginner","createdAt":"2026-10-08T00:53:13Z","updatedAt":"2026-10-08T20:50:26Z"},{"n":13847,"title":"Restore the deleted tag-system pages into docs/tags/ (#13835)","state":"in-progress","label":"beginner","createdAt":"2026-10-08T00:53:11Z","updatedAt":"2026-10-08T14:23:29Z"},{"n":13844,"title":"Move JS formatting and linting to oxfmt and oxlint, keep eslint for Vue only","state":"in-progress","label":"beginner","createdAt":"2026-10-07T23:47:21Z","updatedAt":"2026-10-09T08:46:49Z"},{"n":13794,"title":"Skip the legacy infogami plugin load in the FastAPI container","state":"in-progress","label":"beginner","createdAt":"2026-10-03T12:33:10Z","updatedAt":"2026-10-10T15:39:01Z"},{"n":13648,"title":"Restrict field, What work is this an edition of? to super librarians and admins.","state":"in-progress","label":"beginner","createdAt":"2026-09-16T09:38:19Z","updatedAt":"2026-10-06T08:44:38Z"},{"n":13474,"title":"Name the conflicted PR on the Testing Environment red-dot hover","state":"in-progress","label":"beginner","createdAt":"2026-08-27T00:52:48Z","updatedAt":"2026-09-10T02:30:46Z"},{"n":11962,"title":"List languages in correct alphabetical order","state":"in-progress","label":"beginner","createdAt":"2026-02-28T16:54:36Z","updatedAt":"2026-10-10T08:41:19Z"},{"n":11072,"title":"Add trending score to the Book Page (if > threshold)","state":"in-progress","label":"beginner","createdAt":"2025-07-24T22:15:20Z","updatedAt":"2026-08-10T08:58:31Z"},{"n":9726,"title":"Community Batch Import Request: arabooks","state":"in-progress","label":"beginner","createdAt":"2024-08-11T05:48:28Z","updatedAt":"2026-09-28T23:00:28Z"},{"n":8551,"title":"Import https://open.umn.edu/opentextbooks Open Text books","state":"in-progress","label":"beginner","createdAt":"2023-11-21T17:45:51Z","updatedAt":"2024-03-22T10:01:19Z"},{"n":2656,"title":"Use --no-install-recommends in dockerfiles","state":"in-progress","label":"beginner","createdAt":"2019-11-19T23:14:43Z","updatedAt":"2026-03-24T08:46:40Z"},{"n":486,"title":"Edition's bookcover alt-text should pull author from work","state":"in-progress","label":"beginner","createdAt":"2017-04-28T20:46:41Z","updatedAt":"2025-12-03T08:41:18Z"}]},"responseWindow":{"hours":[1,3,1,9,1,4,5,1,1,0,0,0,1,0,0,1,1,7,9,25,16,7,7,8,8,9,5,11,3,5,0,1,4,1,1,0,2,0,1,5,11,6,14,12,14,4,14,10,4,2,0,3,3,4,6,2,0,1,2,1,3,0,3,2,4,12,12,3,6,8,16,12,7,3,6,0,3,1,4,4,3,2,2,4,1,0,2,2,9,9,9,12,5,16,7,10,2,1,1,1,4,2,1,8,4,7,3,4,1,4,1,4,9,7,2,6,1,3,2,5,6,2,0,0,1,0,2,0,0,4,0,2,0,0,0,0,0,0,0,1,0,2,1,0,0,0,1,3,4,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],"people":11,"replies":595},"activeMaintainers":19},"series":[{"week":"2025-10-12","opened":5,"merged":5,"answered7d":2,"activity":16},{"week":"2025-10-19","opened":0,"merged":0,"answered7d":0,"activity":6},{"week":"2025-10-26","opened":13,"merged":9,"answered7d":8,"activity":28},{"week":"2025-11-02","opened":15,"merged":2,"answered7d":10,"activity":52},{"week":"2025-11-09","opened":12,"merged":3,"answered7d":5,"activity":51},{"week":"2025-11-16","opened":8,"merged":4,"answered7d":3,"activity":40},{"week":"2025-11-23","opened":4,"merged":2,"answered7d":3,"activity":23},{"week":"2025-11-30","opened":10,"merged":3,"answered7d":7,"activity":63},{"week":"2025-12-07","opened":14,"merged":4,"answered7d":1,"activity":39},{"week":"2025-12-14","opened":6,"merged":0,"answered7d":2,"activity":29},{"week":"2025-12-21","opened":3,"merged":1,"answered7d":1,"activity":26},{"week":"2025-12-28","opened":7,"merged":3,"answered7d":6,"activity":29},{"week":"2026-01-04","opened":10,"merged":2,"answered7d":4,"activity":53},{"week":"2026-01-11","opened":3,"merged":1,"answered7d":1,"activity":14},{"week":"2026-01-18","opened":9,"merged":3,"answered7d":3,"activity":32},{"week":"2026-01-25","opened":2,"merged":0,"answered7d":0,"activity":92},{"week":"2026-02-01","opened":7,"merged":2,"answered7d":2,"activity":65},{"week":"2026-02-08","opened":5,"merged":4,"answered7d":4,"activity":72},{"week":"2026-02-15","opened":10,"merged":5,"answered7d":6,"activity":70},{"week":"2026-02-22","opened":12,"merged":5,"answered7d":7,"activity":84},{"week":"2026-03-01","opened":17,"merged":9,"answered7d":12,"activity":101},{"week":"2026-03-08","opened":18,"merged":8,"answered7d":13,"activity":98},{"week":"2026-03-15","opened":18,"merged":6,"answered7d":5,"activity":76},{"week":"2026-03-22","opened":19,"merged":8,"answered7d":14,"activity":103},{"week":"2026-03-29","opened":18,"merged":10,"answered7d":17,"activity":159},{"week":"2026-04-05","opened":24,"merged":16,"answered7d":22,"activity":145},{"week":"2026-04-12","opened":21,"merged":15,"answered7d":19,"activity":159},{"week":"2026-04-19","opened":3,"merged":1,"answered7d":3,"activity":55},{"week":"2026-04-26","opened":45,"merged":29,"answered7d":45,"activity":198},{"week":"2026-05-03","opened":16,"merged":12,"answered7d":15,"activity":246},{"week":"2026-05-10","opened":16,"merged":11,"answered7d":14,"activity":71},{"week":"2026-05-17","opened":11,"merged":10,"answered7d":11,"activity":95},{"week":"2026-05-24","opened":8,"merged":3,"answered7d":8,"activity":62},{"week":"2026-05-31","opened":11,"merged":6,"answered7d":11,"activity":83},{"week":"2026-06-07","opened":8,"merged":6,"answered7d":7,"activity":67},{"week":"2026-06-14","opened":13,"merged":9,"answered7d":11,"activity":107},{"week":"2026-06-21","opened":9,"merged":6,"answered7d":3,"activity":76},{"week":"2026-06-28","opened":19,"merged":11,"answered7d":13,"activity":107},{"week":"2026-07-05","opened":9,"merged":8,"answered7d":7,"activity":55},{"week":"2026-07-12","opened":2,"merged":2,"answered7d":2,"activity":28},{"week":"2026-07-19","opened":3,"merged":2,"answered7d":1,"activity":16},{"week":"2026-07-26","opened":5,"merged":2,"answered7d":1,"activity":40},{"week":"2026-08-02","opened":3,"merged":2,"answered7d":3,"activity":46},{"week":"2026-08-09","opened":8,"merged":4,"answered7d":4,"activity":68},{"week":"2026-08-16","opened":10,"merged":8,"answered7d":7,"activity":101},{"week":"2026-08-23","opened":33,"merged":25,"answered7d":29,"activity":127},{"week":"2026-08-30","opened":25,"merged":12,"answered7d":21,"activity":104},{"week":"2026-09-06","opened":18,"merged":17,"answered7d":16,"activity":79},{"week":"2026-09-13","opened":12,"merged":8,"answered7d":10,"activity":85},{"week":"2026-09-20","opened":14,"merged":4,"answered7d":8,"activity":55},{"week":"2026-09-27","opened":13,"merged":6,"answered7d":9,"activity":64},{"week":"2026-10-04","opened":15,"merged":3,"answered7d":5,"activity":102}],"trend":{"flag":"slowed-down","recentMedianHours":108.68166666666667,"previousMedianHours":14.968055555555555,"recentN":54,"previousN":86,"openedThisWeek":15,"openedLastWeek":13},"programs":[{"program":"gsoc","slug":"internet-archive","name":"Internet Archive","years":[2024,2025,2026]}]}