Built in the open
We don't just use open source — we maintain it.
Every public pull request our engineers have opened across the projects we build on — merged and in-flight. Evidence, not a claim: it's pulled straight from GitHub and can't be faked.
By the numbers
93
repositories
221
merged PRs
328
total PRs
8
engineers
277 open-source contributions in the last year
AugSepOctNovDecJanFebMarAprMayJunJulAug
MonWedFri
LessMore
Pull requests
open-mercato/open-mercato74 merged · 98 total
fix(events/worker): dispatch queued events through the DI event busfix(sales): show line-level discounts in the document items tablefix(sales): order document lines by line_number, not a random uuidfix(crud): terminate fetch-all pagination loops on short pages, fail closed at the page ceiling (#4552 Phase 1)fix(sales): render line description in the admin items tableShow 93 moreShow less
docs(github): add Full Stack House to the certified partner registryfix(api): return 503 on DB connection exhaustion instead of 401/500fix(sales): persist customFields supplied on order and quote createdocs(specs): capped list count — rebuild the CRUD list COUNT so a bound actually bindsdocs(specs): DataTable column aggregations (totals footer) specvia #4806fix(cache): reap orphaned tag members when a Redis value key has expiredvia #4797fix(auth): key the nav sidebar cache on the module surface and give it a TTLvia #4797fix(sales): reject order payment totals on create instead of discarding themvia #4796docs(specs): propose `mercato upgrade` — lock-guarded reconcile for existing deploymentsfeat(feature_toggles): let frontend toggle hooks declare a defaultValueperf(query_index): make the search_tokens availability probe cheap and single-sourcedvia #4790fix(data-sync): resume stalled backfills without letting two workers share a runvia #4793fix(query_index): list every indexed entity and stop reporting false out-of-syncperf(query_index): only probe search_tokens when the query actually searchesdocs(architecture): add configuration decision guidevia #4741fix(query_index): stop reindex batches from silently dropping recordsvia #4598fix(docs): index docs served at the site root so Cmd+K search worksvia #4560docs: correct fabricated and stale query layer documentationvia #4558fix(progress): make job state transitions race-safe for horizontal scalingvia #4539perf(sales): cache dictionary-entry value lookups on order createvia #4504docs(search): clarify three-store architecture, fix stale naming, add evolution specfix(sales): hide compose-message action on order/quote pages when messages module is disabledfix(core): handle "All organizations" scope across audited org-scoped endpointsfeat(telemetry): vendor-neutral OTLP observability (@open-mercato/telemetry)via #4475refactor(attachments): rename "Storage" nav group to "Media"feat: disable ACL features system-wide via module overridesvia #4462feat(auth): add demo autologin via env varsfeat(sales): allow disabling sales channels via feature togglefix(directory): fail loud on stale org selection instead of orphaning writesfeat(commands): first-class bulk-import side-effect suppressionfix(ai): route vendor-prefixed model ids to OpenAI-compatible gateways (OpenRouter)via #4029fix(data_sync): back adapter registry with globalThis to survive bundler duplicationvia #4025docs(create-app): close template-sync gap that let PR #3799 ship unsyncedfix(query_index): batch search token rebuild silently loses all tokens on large batchesfeat(catalog): allow disabling EU unit price presentation per tenantfeat(currencies): move currency management into Settingsfeat(ui): allow hiding backend footer status barvia #3767feat(i18n): allow forcing a locale via OM_FORCE_LOCALEfix(auth): validate password policy on reset page before submitfeat(app): route home through /start with dismissible start pagefix(catalog): order Products before Categories in sidebarfeat(data_sync): paginate run-detail error logsfeat(workflows): WAIT activity + WAIT_FOR_TIMER step (supersedes #1472)feat(workflows): implement WAIT activity typevia #2193feat(workflows): code-based workflow definitions with customize/reset (carry-forward of #1738, supersedes #1796)via #1959feat(workflows): code-based workflow definitions with customize/resetvia #1959docs(spec): telemetry package with pluggable OTEL backenddocs(spec): push notifications and devices modulesfix(ratelimit): disable rate limiting under OM_INTEGRATION_TESTfeat(ui): make AppShell and PortalShell logo configurablefeat(shared): accept { cause } option in CrudHttpError constructorvia #1694feat(workflows): UI-driven e2e tests + trigger cache invalidationfix(auth): hide UI and gate APIs when backing module is disabledvia #1641fix(ui): hide messages topbar icon when backing module is disabledfix(workflows): prevent column truncation on definitions listfix(auth): use forwarded headers for redirect URLs behind reverse proxiesvia #1521fix(cli): auto-copy .env.example when .env is missing in devfix(auth): honor redirect query param on login pagefix(workflows): use filterIds for org scoping in all GET handlersvia #1487fix(workflows): halt workflow on activity failure by defaultfeat(workflows): link workflow instance ID in list tablefix(search): hide navbar search when search module is disabledfix: gitignore test-results and playwright-report globallyfix(dev): splash stuck on "preparing" when warmup login returns 401feat(db): Support custom PostgreSQL schema via DATABASE_URL (Vibe Kanban)feat(auth): add header-based token refresh for mobile/API clientsfeat(cli): auto-detect Docker socket from active contextfix(queue): parse Redis URL before passing to BullMQfeat(ci): add GitHub Actions annotations for test and lint errorsfeat(data_sync): generic, adapter-declared run parametersfeat(sales): filter the documents list by several sales channelsdocs(specs): address-level contact details and tax identifiersfeat: devices registry + end-to-end mobile push notifications (FCM/APNs/Expo via communication_channels)docs(sales): spec the line discount_amount contract (#5019)feat(telemetry): add opt-in browser RUM with a same-origin OTLP proxyfeat(telemetry): add root/links span options and trace data_sync batchesfix(progress,data_sync): keep long-running sync progress cards truthfulperf(sales): index tag assignments by document_id and stop rewriting unchanged tag setsfix(notifications,auth): fail closed when a request has no resolved tenantdocs(specs): list views at scale — filter/search/count/pagination architecture at 1M+ rows (RFC)feat(ui): native DataTable column footers via tfootfeat(ui): native inline row-expand in DataTable (rowDetail)feat(devices): per-tenant user device registry modulesecurity(auth): enforce nulled ACL feature overrides as a runtime deny-listfix(ui): remove stray 'ded' token breaking AdvancedFilterPanel buildfix(ui): remove stray 'ded' token breaking AdvancedFilterPanel type checktest(ratelimit): failing repro for per-route rate-limit leakage under OM_INTEGRATION_TESTdocs(spec): social_auth module — better-auth-backed multi-provider SSOfix(auth): honor redirect query param on login pagefix(auth): prevent repeated /api/auth/profile fetchesfix: Fix yarn lint and add lint step to CI (Vibe Kanban)feat(db): add DB_SCHEMA environment variable supportfeat(auth): add header-based token refresh for mobile/API clientsthewca/worldcubeassociation.org33 merged · 37 total
Fix doubled bookmark issueAdd more information to sanity check 65 (delegates_without_gsuite_email)Fix statistics display in all delegates tableImplement medium priority changes related to Lead DelegateImplement various changes related to Lead DelegateShow 32 moreShow less
Add WEAT to probations change emailsAdd helpful queries to WRT panelAlways use results_submitted_at in competitions admin viewDo not hide search input when loading usersFix incorrect report posted date calculation in the competitions admin viewFix replacing spaces in edit profile workbenchAdd requested changes list to edit profile ticket workbenchFix dates in competitions admin viewFix null wca_id in search usersAdd hyperlink to user profile in edit person formFix dates in competitions admin viewImprove ticket creation emailAppeals Leader Permissions to Ban CompetitorsAllow user to access their own DOBAdd WRT to sso_moderatorSet DOB to 1954-12-04 during anonymizationDo not show the main event warning if competition has only one eventUpdate WDC -> WIC in delegate report templateImprove anonymization processRemove random ">" characterAdd query params to delegates pageGroup activities by room in competition PDFDeclutter multiple room scheduleHide warning "registration open in less than required 48 hours" on announced competitionsShow time until registration open in bookmarked competitionsFix psychsheet rankings for tied averagesRemoved sorted by average option in MBLD psychsheetHide deadline for updating events if the competition only has one eventImprove WEAT's monthly digest draft emailAdd more information to role change emailAdd option to copy new value to form in edit profile workbenchAdd show_reg_status to URL params in competitions overviewmikro-orm/mikro-orm14 merged · 17 total
fix(core): ensure correct runtime value of `decimal` and `float` propertiesdocs: fix typo in transactions.mdfix(core): respect Collection property `orderBy` when dataloader is enabledfeat(entity-generator): pass through `orderBy` option to the outputfeat(seeder): pass params to `.definition()` function as argumentShow 12 moreShow less
feat(seeder): make `.each()` function receive `index: number` argumentfeat(seeder): make `Factory.em` protectedfix(entity-generator): skip bidirectional relation if target metadata doesn't existperf(schema): filter tables before fetching table detailsfeat(mssql): add support for smalldatetime typerefactor: group tables by schema to load information schemafix(core): allow `em.transactional` handler to be synchronousfix(mssql): account for quotes in table namesfeat(entity-generator): extend filtering options for EntityGeneratorRemoved items still appear in the reloaded collection (if prior to that they've been removed in a clean transaction)test: add test for entity removal in parallel forksfeat(mssql): add support for raw query fragments with TVPsmjbellantoni/formtastic-bootstrap7 merged · 7 total
Refactor specs. Make it work with formtastic 3.1Fix double label for :as => booleanform-horizontal support for Bootstrap 3.xFix .input-group to be working in bootstrap 3.x.Remove css hacks in Timeish inputTriPSs/nestjs-query6 merged · 9 total
feat(ci): trigger preview release on master pushdocs(filtering): add "How Filters Are Applied" sectionfeat(query-mikro-orm): Add count() method to enable totalCount in GraphQL connections (Vibe Kanban)feat(ci): add pkg.pr.new preview releasesfeat(query-mikro-orm): add MikroORM adapter packagegoodeggs/angular-cached-resource6 merged · 8 total
Allow to change localStoragePrefixAllow to change/turn off CachedResource for some actions, by specifing .cache optionAllow boundParams to be also integers, booleans.Fix 'online' event handling on Cordova[fix] Extend resource with default actions even if it has some definedswimlane/ngx-datatable4 merged · 7 total
Fix order of setters in DataTable#ngOnChangesColumn resize sometimes gives weird behaviour on mouse resize/clickUse ChangeDetectionStrategy.OnPush in Pager componentIn DataTable component, set rows, options & selected inputs in ngOnChanges, instead of ngOnInitUse ChangeDetectionStrategy.OnPush in BodyCell componentmarmelab/react-admin4 merged · 4 total
Export `PublicFieldProps` and `InjectedFieldProps` types (so devs can use them to define their own field components)[TypeScript] Fix useMutation requires payload argumentfix(RaThemeOptions): Make sidebar width options optionalfix(Datagrid): Let it work even when `selectedIds` is undefinedBloopAI/vibe-kanban3 merged · 16 total
fix: correct console.warn! to console.warn syntaxfeat(notifications): include task name in approval needed notificationfeat: implement automatic PR discovery and attachment for task attemptsfeat(git): add merge strategy setting to allow diverged branches (Vibe Kanban)feat(mcp): add get_workspace_transcript toolShow 11 moreShow less
fix: Process queued messages when cleanup script is skippedfix(frontend): sort files alphabetically in diff viewfix: allow symlinks to files outside project in Copy Files settingfix: use ScriptContext to determine run_reason for chained scriptsfeat: add VIBE_KANBAN_PORT env var to avoid conflicts with child processesfeat: add TTL to FILE_STATS_CACHE to prevent memory leakfix(file_search): store debouncer and cleanup watchers on cache eviction[RFC/WIP] feat: improve commit messages with agent-based generationfeat(utils): add VIBE_KANBAN_ASSET_DIR env var overridefix(frontend): filter token_usage_info entries to fix VirtuosoMessageList renderingfeat: add functionality to attach existing pull requests to tasksDefinitelyTyped/DefinitelyTyped3 merged · 4 total
fix(jest): Fix usage example of `jest.MockedClass`[enzyme] Add `wrappingComponent` and other related props support to `mount` functionfix(types/next): Add req and res NextContext typedefs used in `next export`[enzyme] Add `wrappingComponent` and other related props support to `mount` functionankane/searchkick3 merged · 3 total
Temporarily disable searchkickIndex only some models, not #allAdd pagination `padding` option to #search.urql-graphql/urql2 merged · 7 total
fix(graphcache): use vi.stubGlobal for navigator mock in testspatch(retry): Make options argument optionalfeat: support nested pagination arguments in relay paginationfix(react-urql): prevent suspense rendering with data=null after cache invalidationfix(graphcache): preserve entity data when creating new entitiesreact-hook-form/react-hook-form2 merged · 5 total
fix(useForm): make `values` and `defaultValues` work correctly with `createFormControl` and `useMemo`Allow components with `useController` hook be memoized🐞 fix #13627 keepDirtyValues: reconcile field array rows by id so dirty/touched/error state follows reordered rowsfix: ensure isValid updates after trigger() when accessed laterfix(createFormControl): don't unregister fields on resetgluestack/gluestack-ui2 merged · 4 total
Document platform support for Toast componentfix(accordion): prevent animation on initial renderdocs: document how `eslint-plugin-tailwindcss` can be configuredfix(menu): pass state object to trigger functiondomoritz/leaflet-locatecontrol2 merged · 4 total
Allow to set multiple icon classes (split by space)Allow to replace loading icon class in options.Add navigator.compass & deviceOrientation supportAllow to replace loading icon class in optionsThallesP/nestjs-better-auth2 merged · 3 total
feat: make @nestjs/websockets an optional peer dependencyfeat: add middleware option to AuthModulefeat: Add MikroORM request context supportvidstack/player2 merged · 2 total
feat(sandbox): add URL params support for testingfix(vimeo): report correct muted state in auto-play eventnestjs/graphql2 merged · 2 total
feat(graphiql): add inputValueDeprecation optionfix: separate raw and compiled resolver metadata from each otheropen-telemetry/opentelemetry-js-contrib2 merged · 2 total
feat(instrumentation-pg): add skipConnectSpans optiondocs(instrumentation-pg): document span types created by instrumentationnestjs/docs.nestjs.com2 merged · 2 total
docs: Add SWC configuration example for JSX/TSXdocs(queues): warn that `defaultJobOptions` don't always workfelixmosh/bull-board2 merged · 2 total
fix(JobActions): show actions for "waiting children" jobs just as for "waiting" onesfix(README): use proper path to bullMQAdapter fileosdnk/react-native-reanimated-bottom-sheet2 merged · 2 total
docs: Add more info about `enabledContentTapInteraction` propdocs: improve instructions about running the example appcodeplant/simple-navigation2 merged · 2 total
Add #dom_attributes option to ItemContainer.Fix item_spec after adding #dom_attributeswebsocket-rails/websocket-rails2 merged · 2 total
Refactor *.coffee files. Add reconnect() method.Small bugfixes in .js codetimbru31/cordova-plugin-lottie-splashscreen1 merged · 2 total
style: remove deprecation warningstyle: remove deprecation warningrails-api/active_model_serializers1 merged · 2 total
Allow to define custom serializer for given classDefine custom serializer for a classadamalbrecht/ngQuickDate1 merged · 2 total
Prevent click's event (on a calendar) to propagate[fix] Prevent click's event (on a calendar) to propagatelucide-icons/lucide1 merged · 1 total
fix(lucide-react-native): remove icons namespace export to enable tree-shakingsupabase/supabase1 merged · 1 total
docs(react-native): make it work on web platform toostorybookjs/react-native1 merged · 1 total
fix: export story types from `@storybook/react`nestjs/event-emitter1 merged · 1 total
fix: provide separate event emitter instance per each app instancedashbitco/mox1 merged · 1 total
docs: Stop suggest calling `stub_with` at compilation timeelixir-ecto/ecto1 merged · 1 total
docs(Ecto.Repo): Inform that measurements may, but don't have to, be presentwebpack/webpack.js.org1 merged · 1 total
docs(configuration/output): Warn about module output being not usable in webpack4SchemaStore/schemastore1 merged · 1 total
Remove hammerkit schemavercel/next.js1 merged · 1 total
Correct info about export limitationsforwardemail/supertest1 merged · 1 total
docs: Add async/await example to READMEmagesuite/magepack1 merged · 1 total
docs(README): Add a note that mixin.js is patched on Magento >= 2.3.6apollographql/federation1 merged · 1 total
fix(buildFederatedSchema): Export `GraphQLSchemaModule` typedocker/build-push-action1 merged · 1 total
docs(README): Improve example of `file` option so it's obvious that it is not relative to `context` optionfocus-trap/focus-trap1 merged · 1 total
ts: Add typedef for `preventScroll` optionreactjs/react-transition-group1 merged · 1 total
docs(SwitchTransition): Add info when TransitionGroup should be used insteadIgorbek/typescript-plugin-styled-components1 merged · 1 total
docs(README): Add info when babel-plugin-styled-components should be used insteadiansinnott/react-string-replace1 merged · 1 total
docs: Add info about improper RegExp replace (that has no capturing group)ctimmerm/axios-mock-adapter1 merged · 1 total
Fix timeout, timeoutOnce, networkError, networkErrorOnce TS typedefshinok/react-router-last-location1 merged · 1 total
Add examples to README and a note highlighting that lastLocation != previous browser history statevalor-software/ngx-bootstrap1 merged · 1 total
Make `appendToBody` work in Tooltipbeam-community/bamboo1 merged · 1 total
In SentEmailViewer , show text template in a `<pre>` html tagphilss/floki1 merged · 1 total
Add info about a breaking change in 0.19.2Twipped/Kalendae1 merged · 1 total
Add missing `var` to definition of `outOfViewMonth` local variablebigcalendar/react-big-calendar1 merged · 1 total
Fix dnd date merge when moving an event to a date cellzorab47/active_admin-sortable_tree1 merged · 1 total
Rails5 fix: convert params to Hash before using themionic-team/ionic-framework1 merged · 1 total
Fix `e.detail.keyboardHeight` undefined error in keyboardAttach directivewelaika/wordmove1 merged · 1 total
Add mysql support in `dump.php`Burgestrand/spotify1 merged · 1 total
Add #code and #symbol methods to Spotify::Errorfredwu/api_taster1 merged · 1 total
Rails4 support + some small fixesplasmicapp/plasmic0 merged · 3 total
fix(LoadingBoundary): don't render nothing on SSRfix(DataProvider): don't create new context value on every renderfeat(radix-ui/tooltip): allow to customize delay durationreact-navigation/react-navigation0 merged · 3 total
feat: Export `StackNavigator`, `StackNavigatorProps` and `TypedStackNavigator` type defsfix(TabRouter): When calculating next route name, use `initialRouteName` if the current route doesn't exist anymorefeat: Export `StackNavigator`, `StackNavigatorProps` and `TypedStackNavigator` type defsexpo/expo0 merged · 2 total
feat(metro-config): add assetPrefix option for CDN support[router] Add useServerInsertedHTML() for streaming SSR flush-boundary HTML injectionsatya164/react-native-tab-view0 merged · 2 total
fix: do not use animated scroll on initial renderfeat: add `renderTabBarItem` prop to `TabBar`angular-ui/bootstrap0 merged · 2 total
fix(datepicker): Convert `init-date` to Date when it's a StringAllow `init-date` to be set just as `min-date`refinedev/refine0 merged · 1 total
feat(core,antd,mui): add cursor-based pagination supportmysticaltech/terraform-hcloud-kube-hetzner0 merged · 1 total
fix: re-run rename_interface.sh on every boot via systemd oneshottailwindlabs/headlessui0 merged · 1 total
feat(combobox): add imperative ref handle for programmatic closenestjs/nest0 merged · 1 total
feat(microservices): add local domain transporterobukhov/redis-inventory0 merged · 1 total
Add `--tls` optionabsinthe-graphql/absinthe_phoenix0 merged · 1 total
Better subscription test helpersnode-fetch/node-fetch0 merged · 1 total
docs(README): when patching global context, patch TextDecoder and TextEncoder tooApipie/apipie-rails0 merged · 1 total
Fix NilClass error when controller has no api version namespacereact-dates/react-dates0 merged · 1 total
fix(DayPickerSingleDateController): Add missing modifiers when loading more months in `VERTICAL_SCROLLABLE` orientationthe-guild-org/apollo-angular0 merged · 1 total
docs(developer-tooling): Add info about deprecated apollo-codegen libgetsentry/sentry-javascript0 merged · 1 total
feat: Add `mapRequestUrl` option to `Sentry.Integrations.Http`globalize/globalize0 merged · 1 total
Don't create translation record for default_locale on save (rebased)Shopify/sprockets-commoner0 merged · 1 total
JSX Supportactiveadmin/activeadmin0 merged · 1 total
Use `status_tag` in AttributesTable#content_for to display booleansmoment/moment0 merged · 1 total
Add Ukrainian localemozilla/popcorn-js0 merged · 1 total
Extract soundcloud client_id and api js urls constants to a changeable variablesosedoff/grooveshark0 merged · 1 total
v3 supportbacklogs/redmine_backlogs0 merged · 1 total
[fix] Add missing head and footer hooks to rb.html layoutchrisben/imgcache.js0 merged · 1 total
[bugfix] Use CustomEvent instead of Eventrspec/rspec-its0 merged · 1 total
`its` gives wrong fileline & filenumberPublic PRs to upstream open source only — our own org and personal repos excluded. via #N marks work a maintainer merged in their own follow-up PR because they couldn't merge our branch; the successor credits the original there.
Let them build.
Engineers who maintain the tools they ship on. Start with a free audit.
30 min · Google Calendar · no sales deck
Prefer to write? Send us a message →