Ett decennium av effekt: Hur våra npm-paket når 1 miljard nedladdningar och formade JavaScript

I den JavaScript och Node.js i världen är vissa paket viktiga – laddas ner miljontals gånger dagligen och driver appar över hela världen. Bakom dessa verktyg finns utvecklare fokuserade på öppen källkodskvalitet. Idag visar vi hur vårt team hjälper till att bygga och underhålla npm-paket som har blivit viktiga delar av JavaScript-ekosystemet.

Pionjärerna som litar på oss: Isaac Z. Schlueter och Forward Email

Vi är stolta över att ha Isaac Z. Schlueter (GitHub: isaacs) som användare. Isaac skapade över havsnivå och hjälpte till att bygga Node.js. Hans förtroende för Forward Email visar vårt fokus på kvalitet och säkerhet. Isaac använder Forward Email för flera domäner inklusive izs.me.

Isaacs inverkan på JavaScript är enorm. 2009 var han bland de första att se Node.js potential, arbeta med Ryan Dahl, som skapade plattformen. Som Isaac sa i en intervju med Increment magazine: "Mitt i denna mycket lilla gemenskap av ett gäng människor som försöker komma på hur man kan få JS på serversidan att hända, kom Ryan Dahl ut med Node, vilket helt klart var rätt tillvägagångssätt. Jag kastade in mina marker med det och blev väldigt involverad i ungefär mitten av 2009."

[!NOTERA] För dem som är intresserade av historien om Node.js, det finns utmärkta dokumentärer tillgängliga som krönika dess utveckling, inklusive Berättelsen om Node.js och 10 saker jag ångrar om Node.js - Ryan Dahl. Ryan Dahls personlig webbplats innehåller också värdefulla insikter i hans arbete.

Från npms skapande till Node.js-ledarskap

Isaac skapade npm i september 2009, med den första användbara versionen som släpptes i början av 2010. Denna pakethanterare fyllde ett nyckelbehov i Node.js, vilket gjorde det möjligt för utvecklare att enkelt dela och återanvända kod. Enligt Node.js Wikipedia-sida, "I januari 2010 introducerades en pakethanterare för Node.js-miljön som heter npm. Pakethanteraren tillåter programmerare att publicera och dela Node.js-paket, tillsammans med den medföljande källkoden, och är utformad för att förenkla installation, uppdatering och avinstallation av paket."

När Ryan Dahl steg tillbaka från Node.js i januari 2012 tog Isaac över som projektledare. Som noterat på hans sammanfattning, han "ledde utvecklingen av flera grundläggande Node.js kärn-API:er, inklusive CommonJS modulsystem, filsystems API:er och strömmar" och "Akterade som BDFL (Benevolent Dictator For Life) i projektet i 2 år, vilket säkerställde ständigt ökande kvalitet och tillförlitlig byggprocess för Node.js versioner v0.6 till v0.10."

Isaac guidade Node.js genom en viktig tillväxtperiod och satte standarder som fortfarande formar plattformen idag. Han startade senare npm, Inc. 2014 för att stödja npm-registret, som han hade drivit på egen hand tidigare.

Vi tackar Isaac för hans enorma bidrag till JavaScript och fortsätter att använda många paket som han skapat. Hans arbete har förändrat hur vi bygger mjukvara och hur miljontals utvecklare delar kod över hela världen.

Arkitekten bakom koden: Nick Baughs resa

I hjärtat av vår framgång med öppen källkod är Nick Baugh, Forward Emails grundare och ägare. Hans arbete med JavaScript sträcker sig över nästan 20 år och har format hur otaliga utvecklare bygger appar. Hans resa med öppen källkod visar både teknisk skicklighet och samhällsledarskap.

Express tekniska kommitté och kärnbidrag

Nicks expertis inom webbramverk gav honom en plats på Express tekniska kommitté, där han hjälpte till med ett av de mest använda Node.js-ramverken. Nick är nu listad som en inaktiv medlem på Express community-sida.

[!VIKTIG] Express skapades ursprungligen av TJ Holowaychuk, en produktiv bidragsgivare med öppen källkod som har format mycket av Node.js-ekosystemet. Vi är tacksamma för TJ:s grundläggande arbete och respekterar hans beslut att ta en paus från hans omfattande bidrag med öppen källkod.

Som medlem i Express tekniska kommitté, Nick visade stor uppmärksamhet på detaljer i frågor som att förtydliga req.originalUrl dokumentation och åtgärda flerdelade formulärhanteringsproblem.

Koa Framework Bidrag

Nicks arbete med Koa ramverk—ett modernt, lättare alternativ till Express också skapat av TJ Holowaychuk — visar ytterligare hans engagemang för bättre webbutvecklingsverktyg. Hans Koa-bidrag inkluderar både problem och kod genom pull-förfrågningar, hantering av felhantering, innehållstypshantering och dokumentationsförbättringar.

Hans arbete över både Express och Koa ger honom en unik syn på Node.js webbutveckling, vilket hjälper vårt team att skapa paket som fungerar bra med flera ramekosystem.

Från enskild bidragsgivare till organisationsledare

Det som började som att hjälpa befintliga projekt växte till att skapa och underhålla hela ekosystem. Nick grundade flera GitHub-organisationer – inklusive Stuga, Skräppostläsare, Vidarebefordra e-post, Låta, och Bree—var och en löser specifika behov i JavaScript-communityt.

Denna förändring från bidragsgivare till ledare visar Nicks vision för väldesignad programvara som löser verkliga problem. Genom att organisera relaterade paket under fokuserade GitHub-organisationer har han byggt verktygsekosystem som fungerar tillsammans samtidigt som de förblir modulära och flexibla för den bredare utvecklargemenskapen.

Våra GitHub-organisationer: Ecosystems of Innovation

Vi organiserar vårt arbete med öppen källkod kring fokuserade GitHub-organisationer, var och en löser specifika behov i JavaScript. Denna struktur skapar sammanhållna paketfamiljer som fungerar bra tillsammans samtidigt som de förblir modulära.

Hytt: Strukturerad loggning för moderna applikationer

De Hyttorganisation är vår syn på enkel, kraftfull apploggning. Det viktigaste cabin Paketet har nästan 900 GitHub-stjärnor och över 100 000 nedladdningar per vecka[^1]. Cabin tillhandahåller strukturerad loggning som fungerar med populära tjänster som Sentry, LogDNA och Papertrail.

Det som gör Cabin speciell är dess genomtänkta API och plugin-system. Stödpaket som axe för Express middleware och parse-request för parsning av HTTP-förfrågningar visar vårt engagemang för kompletta lösningar snarare än isolerade verktyg.

De bson-objectid paketet förtjänar särskilt omnämnande, med över 1,7 miljoner nedladdningar på bara två månader[^2]. Denna lätta MongoDB ObjectID-implementering har blivit det bästa för utvecklare som behöver ID:n utan fullständiga MongoDB-beroenden.

Spam Scanner: Bekämpa e-postmissbruk

De Spam Scanner organisation visar vårt engagemang för att lösa verkliga problem. Det viktigaste spamscanner paketet tillhandahåller avancerad e-postspamdetektering, men det är url-regex-safe paket som har sett fantastisk adoption.

Med över 1,2 miljoner nedladdningar på två månader[^3], url-regex-safe fixar kritiska säkerhetsproblem i andra reguljära uttryck för URL-detektering. Det här paketet visar vår inställning till öppen källkod: att hitta ett vanligt problem (i det här fallet, Gör om sårbarheter i URL-validering), skapa en solid lösning och underhålla den noggrant.

Bree: Modern jobbplanering med arbetstrådar

De Bree organisation är vårt svar på en vanlig Node.js-utmaning: pålitlig jobbschemaläggning. Det viktigaste bree paketet, med över 3 100 GitHub-stjärnor, ger en modern jobbschemaläggare som använder Node.js-arbetstrådar för bättre prestanda och tillförlitlighet.

[!NOTERA] Bree skapades efter att vi hjälpte till att underhålla Dagordning, tillämpa lärdomar för att bygga en bättre jobbschemaläggare. Våra bidrag från Agenda hjälpte oss att hitta sätt att förbättra schemaläggningen av jobb.

Vad skiljer Bree från andra schemaläggare som Agenda:

  • Inga externa beroenden: Till skillnad från Agenda som behöver MongoDB, kräver Bree inte Redis eller MongoDB för att hantera jobbstatus.
  • Arbetstrådar: Bree använder Node.js-arbetstrådar för sandlådeprocesser, vilket ger bättre isolering och prestanda.
  • Enkelt API: Bree erbjuder detaljerad kontroll med enkelhet, vilket gör det lättare att implementera komplexa schemaläggningsbehov.
  • Inbyggt stöd: Saker som graciös omladdning, cron-jobb, datum och människovänliga tider ingår som standard.

Bree är en viktig del av forwardemail.net, hantera viktiga bakgrundsuppgifter som e-postbearbetning, städning och schemalagt underhåll. Att använda Bree i Forward Email visar vårt engagemang för att använda våra egna verktyg i produktionen, vilket säkerställer att de uppfyller höga tillförlitlighetsstandarder.

Vi använder och uppskattar också andra fantastiska arbetstrådspaket som slå samman och HTTP-klienter gillar elva. Piscina, precis som Bree, använder Node.js-arbetstrådar för effektiv uppgiftsbearbetning. Vi tackar Matthew Hill, som underhåller både undici och piscina, för sina stora bidrag till Node.js. Matteo sitter i Node.js tekniska styrkommitté och har avsevärt förbättrat HTTP-klientfunktionerna i Node.js.

Vidarebefordra e-post: E-postinfrastruktur med öppen källkod

Vårt mest ambitiösa projekt är Vidarebefordra e-post, en e-posttjänst med öppen källkod som tillhandahåller vidarebefordran, lagring och API-tjänster för e-post. Huvudarkivet har över 1 100 GitHub-stjärnor[^4], vilket visar communityns uppskattning för detta alternativ till proprietära e-posttjänster.

De preview-email paket från denna organisation, med över 2,5 miljoner nedladdningar på två månader[^5], har blivit ett viktigt verktyg för utvecklare som arbetar med e-postmallar. Genom att tillhandahålla ett enkelt sätt att förhandsgranska e-postmeddelanden under utveckling, löser det en vanlig smärtpunkt vid att bygga e-postaktiverade applikationer.

Lad: Viktiga Koa-verktyg och verktyg

De Pojkorganisation tillhandahåller en samling viktiga verktyg och verktyg som främst är inriktade på att förbättra Koa-ramverkets ekosystem. Dessa paket löser vanliga utmaningar inom webbutveckling och är designade för att fungera sömlöst tillsammans samtidigt som de förblir oberoende användbara.

koa-bättre-error-handler: Förbättrad felhantering för Koa

koa-better-error-handler erbjuder en bättre felhanteringslösning för Koa-applikationer. Med över 50 GitHub-stjärnor gör detta paket ctx.throw producera användarvänliga felmeddelanden samtidigt som man tar itu med flera begränsningar hos Koas inbyggda felhanterare:

  • Upptäcker och hanterar Node.js DNS-fel, Mongoose-fel och Redis-fel korrekt
  • Används Bom för att skapa konsekventa, välformaterade felsvar
  • Bevarar rubriker (till skillnad från Koas inbyggda hanterare)
  • Behåller lämpliga statuskoder istället för att förinställa 500
  • Stöder flashmeddelanden och sessionsbevarande
  • Tillhandahåller HTML-fellistor för valideringsfel
  • Stöder flera svarstyper (HTML, JSON och vanlig text)

Detta paket är särskilt värdefullt när det används tillsammans koa-404-handler för omfattande felhantering i Koa-applikationer.

pass: Autentisering för Lad

@ladjs/passport utökar den populära Passport.js autentiseringsmellanvaran med specifika förbättringar för moderna webbapplikationer. Detta paket stöder flera autentiseringsstrategier direkt:

  • Lokal autentisering med e-post
  • Logga in med Apple
  • GitHub-autentisering
  • Google-autentisering
  • Engångslösenordsautentisering (OTP).

Paketet är mycket anpassningsbart, vilket gör att utvecklare kan justera fältnamn och fraser för att matcha deras applikations krav. Den är utformad för att integreras sömlöst med Mongoose för användarhantering, vilket gör den till en idealisk lösning för Koa-baserade applikationer som behöver robust autentisering.

graciöst: Elegant Application Shutdown

@ladjs/graceful löser den kritiska utmaningen att graciöst stänga av Node.js-applikationer. Med över 70 GitHub-stjärnor säkerställer detta paket att din applikation kan avslutas rent utan att förlora data eller lämna anslutningar hängande. Nyckelfunktioner inkluderar:

  • Stöd för graciöst stängning av HTTP-servrar (Express/Koa/Fastify)
  • Ren avstängning av databasanslutningar (MongoDB/Mongoose)
  • Korrekt stängning av Redis-klienter
  • Hantering av Bree jobbschemaläggare
  • Stöd för anpassade avstängningshanterare
  • Konfigurerbara tidsgränsinställningar
  • Integration med loggningssystem

Detta paket är viktigt för produktionsapplikationer där oväntade avstängningar kan leda till dataförlust eller korruption. Genom att implementera korrekta avstängningsprocedurer, @ladjs/graceful hjälper till att säkerställa tillförlitligheten och stabiliteten för din applikation.

Upptime: Öppen källkod Upptidsövervakning

De Upptime organisation representerar vårt engagemang för transparent övervakning med öppen källkod. Det viktigaste upptime repository har över 13 000 GitHub-stjärnor, vilket gör det till ett av de mest populära projekten vi bidrar till. Upptime tillhandahåller en GitHub-driven drifttidsmonitor och statussida som fungerar helt utan server.

Vi använder Upptime för vår egen statussida på https://status.forwardemail.net med källkoden tillgänglig på https://github.com/forwardemail/status.forwardemail.net.

Det som gör Upptime speciellt är dess arkitektur:

  • 100 % öppen källkod: Varje komponent är helt öppen källkod och anpassningsbar.
  • Drivs av GitHub: Utnyttjar GitHub-åtgärder, -problem och -sidor för en serverlös övervakningslösning.
  • Ingen server krävs: Till skillnad från traditionella övervakningsverktyg kräver Upptime inte att du kör eller underhåller en server.
  • Automatisk statussida: Genererar en vacker statussida som kan finnas på GitHub-sidor.
  • Kraftfulla meddelanden: Integreras med olika aviseringskanaler inklusive e-post, SMS och Slack.

För att förbättra våra användares upplevelse har vi integrerat @oktokit/kärna in i forwardemail.net-kodbasen för att göra statusuppdateringar och incidenter i realtid direkt på vår webbplats. Denna integration ger tydlig transparens för våra användare vid eventuella problem över hela vår stack (webbplats, API, MongoDB, Redis, SQLite, SMTP, POP3, IMAP, Bree, etc.) med omedelbara toast-aviseringar, ändringar av märkesikoner, varningsfärger och mer.

@octokit/core-biblioteket tillåter oss att hämta realtidsdata från vårt Upptime GitHub-förråd, bearbeta det och visa det på ett användarvänligt sätt. När någon tjänst har ett avbrott eller försämrad prestanda, meddelas användarna omedelbart genom visuella indikatorer utan att behöva lämna huvudapplikationen. Denna sömlösa integration säkerställer att våra användare alltid har uppdaterad information om vår systemstatus, vilket ökar transparensen och förtroendet.

Upptime har antagits av hundratals organisationer som letar efter ett transparent, pålitligt sätt att övervaka sina tjänster och kommunicera status till användarna. Projektets framgång visar kraften i att bygga verktyg som utnyttjar befintlig infrastruktur (i det här fallet GitHub) för att lösa vanliga problem på nya sätt.

Våra bidrag till Forward Email Ecosystem

Även om våra paket med öppen källkod används av utvecklare över hela världen, utgör de också grunden för vår egen vidarebefordra e-posttjänst. Denna dubbla roll – både som skapare och användare av dessa verktyg – ger oss ett unikt perspektiv på deras verkliga tillämpning och driver kontinuerliga förbättringar.

Från paket till produktion

Resan från enskilda paket till ett sammanhållet produktionssystem innebär noggrann integration och förlängning. För vidarebefordra e-post inkluderar denna process:

  • Anpassade tillägg: Bygger vidare e-postspecifika tillägg till våra paket med öppen källkod som uppfyller våra unika krav.
  • Integrationsmönster: Utveckla mönster för hur dessa paket interagerar i en produktionsmiljö.
  • Prestandaoptimeringar: Identifiera och åtgärda prestandaflaskhalsar som bara dyker upp i stor skala.
  • Säkerhetshärdning: Lägger till ytterligare säkerhetslager som är specifika för e-posthantering och användardataskydd.

Detta arbete representerar tusentals timmars utveckling bortom själva kärnpaketen, vilket resulterar i en robust, säker e-posttjänst som utnyttjar det bästa av våra bidrag med öppen källkod.

Feedback-loopen

Den kanske mest värdefulla aspekten av att använda våra egna paket i produktionen är den återkopplingsslinga det skapar. När vi stöter på begränsningar eller kantfall i Vidarebefordra e-post, korrigerar vi dem inte bara lokalt – vi förbättrar de underliggande paketen, vilket gynnar både vår tjänst och det bredare samhället.

Detta tillvägagångssätt har lett till många förbättringar:

  • Bree's Graceful Shutdown: Forward Emails behov av driftsättningar utan driftstopp ledde till förbättrade graciösa avstängningsmöjligheter i Bree.
  • Skräppostskannerns mönsterigenkänning: Verkliga spammönster som påträffats i vidarebefordra e-post har informerat Spam Scanners upptäcktsalgoritmer.
  • Kabinens prestandaoptimeringar: Högvolymsloggning i produktionen avslöjade optimeringsmöjligheter i Cabin som gynnar alla användare.

Genom att upprätthålla denna goda cykel mellan vårt arbete med öppen källkod och produktionstjänst säkerställer vi att våra paket förblir praktiska, stridstestade lösningar snarare än teoretiska implementeringar.

Forward Email's Core Principles: A Foundation for Excellence

Forward Email är designat enligt en uppsättning kärnprinciper som styr alla våra utvecklingsbeslut. Dessa principer, detaljerade på vår webbplats, se till att vår tjänst förblir utvecklarvänlig, säker och fokuserad på användarnas integritet.

Alltid utvecklarvänlig, säkerhetsfokuserad och transparent

Vår första och främsta princip är att skapa mjukvara som är utvecklarvänlig samtidigt som den upprätthåller högsta standard för säkerhet och integritet. Vi anser att teknisk excellens aldrig bör ske på bekostnad av användbarhet, och att transparens skapar förtroende hos vårt samhälle.

Denna princip visar sig i vår detaljerade dokumentation, tydliga felmeddelanden och öppen kommunikation om både framgångar och utmaningar. Genom att göra hela vår kodbas öppen källkod uppmanar vi till granskning och samarbete, vilket stärker både vår programvara och det bredare ekosystemet.

Efterlevnad av beprövade principer för mjukvaruutveckling

Vi följer flera etablerade principer för mjukvaruutveckling som har bevisat sitt värde under decennier:

  • MVC: Separera bekymmer genom mönstret Model-View-Controller
  • Unix filosofi: Skapa modulära komponenter som gör en sak bra
  • KISS: Att hålla det enkelt och okomplicerat
  • DRY: Upprepa inte dig själv, främja återanvändning av kod
  • YAGNI: Du kommer inte behöva det, undviker för tidig optimering
  • Tolvfaktor: Följer bästa praxis för att bygga moderna, skalbara applikationer
  • Occams rakkniv: Att välja den enklaste lösningen som uppfyller kraven
  • Dogfooding: Använder våra egna produkter i stor utsträckning

Dessa principer är inte bara teoretiska koncept – de är inbäddade i våra dagliga utvecklingsmetoder. Till exempel är vår anslutning till Unix-filosofin tydlig i hur vi har strukturerat våra npm-paket: små, fokuserade moduler som kan sammanställas för att lösa komplexa problem.

Inriktar sig på den skrapiga, bootstrappade utvecklaren

Vi riktar oss specifikt mot de skrapiga, stövlar och ramen-lönsamt framkallare. Detta fokus formar allt från vår prismodell till våra tekniska beslut. Vi förstår utmaningarna med att bygga produkter med begränsade resurser eftersom vi har varit där själva.

Denna princip är särskilt viktig i hur vi närmar oss öppen källkod. Vi skapar och underhåller paket som löser verkliga problem för utvecklare utan företagsbudgetar, vilket gör kraftfulla verktyg tillgängliga för alla oavsett deras resurser.

Principer i praktiken: Kodbasen för vidarebefordran av e-post

Dessa principer är tydligt synliga i kodbasen Vidarebefordra e-post. Vår package.json-fil avslöjar ett genomtänkt urval av beroenden, var och en utvald för att anpassas till våra kärnvärden:

  • Säkerhetsfokuserade paket som mailauth för e-postautentisering
  • Utvecklarvänliga verktyg som preview-email för enklare felsökning
  • Modulära komponenter som de olika p-* verktyg från Sindre Sorhus

Genom att följa dessa principer konsekvent över tid har vi byggt en tjänst som utvecklare kan lita på med sin e-postinfrastruktur – säker, pålitlig och anpassad till värderingarna i öppen källkodsgemenskap.

Privacy by Design

Sekretess är inte en eftertanke eller marknadsföringsfunktion för Vidarebefordra e-post – det är en grundläggande designprincip som informerar varje aspekt av vår tjänst och kod:

  • Noll-åtkomst kryptering: Vi har implementerat system som gör det tekniskt omöjligt för oss att läsa användarnas e-postmeddelanden.
  • Minimal datainsamling: Vi samlar bara in de uppgifter som behövs för att tillhandahålla vår tjänst, inget mer.
  • Transparenta policyer: Vår integritetspolicy är skriven på ett tydligt, begripligt språk utan juridisk jargong.
  • Verifiering med öppen källkod: Vår kodbas med öppen källkod tillåter säkerhetsforskare att verifiera våra integritetsanspråk.

Detta åtagande sträcker sig till våra paket med öppen källkod, som är designade med bästa praxis för säkerhet och integritet inbyggd från grunden.

Hållbar öppen källkod

Vi tror att programvara med öppen källkod behöver hållbara modeller för att trivas långsiktigt. Vårt tillvägagångssätt inkluderar:

  • Kommersiellt stöd: Erbjuder premiumsupport och tjänster kring våra verktyg med öppen källkod.
  • Balanserad licensiering: Använder licenser som skyddar både användarfriheten och projektets hållbarhet.
  • Samhällsengagemang: Aktivt engagera sig med bidragsgivare för att bygga en stödjande gemenskap.
  • Transparenta färdplaner: Dela våra utvecklingsplaner så att användare kan planera därefter.

Genom att fokusera på hållbarhet säkerställer vi att våra bidrag med öppen källkod kan fortsätta att växa och förbättras över tid snarare än att försummas.

The Numbers Don't Lie: Our Staggering npm Nedladdningsstatistik

När vi pratar om inverkan av programvara med öppen källkod ger nedladdningsstatistik ett påtagligt mått på adoption och förtroende. Många av paketen vi hjälper till att underhålla har nått en skala som få projekt med öppen källkod någonsin uppnår, med kombinerade nedladdningar som uppgår till miljarder.

Top npm Packages by Downloads

[!VIKTIG] Även om vi är stolta över att hjälpa till att underhålla flera mycket nedladdade paket i JavaScript-ekosystemet, vill vi erkänna att många av dessa paket ursprungligen skapades av andra talangfulla utvecklare. Paket som superagent och supertest skapades ursprungligen av TJ Holowaychuk, vars produktiva bidrag till öppen källkod har varit avgörande för att forma Node.js-ekosystemet.

Ett fågelperspektiv av vår inverkan

Under bara tvåmånadersperioden från februari till mars 2025, de bästa paketen vi bidrar till och hjälper till att upprätthålla registrerade häpnadsväckande nedladdningssiffror:

[!NOTERA] Flera andra paket som vi hjälper till att underhålla men inte skapade har ännu högre nedladdningsantal, inklusive form-data (+738 miljoner nedladdningar), toidentifier (309 M+ nedladdningar), stackframe (116 M+ nedladdningar), och error-stack-parser (113 M+ nedladdningar). Vi är hedrade över att få bidra till dessa paket samtidigt som vi respekterar deras ursprungliga författares arbete.

Det här är inte bara imponerande siffror – de representerar riktiga utvecklare som löser verkliga problem med kod som vi hjälper till att underhålla. Varje nedladdning är en instans där dessa paket har hjälpt någon att bygga något meningsfullt, från hobbyprojekt till företagsapplikationer som används av miljoner.

Package Categories Distribution

Daglig inverkan i stor skala

De dagliga nedladdningsmönstren avslöjar konsekvent användning i hög volym, med toppar som når miljontals nedladdningar per dag[^13]. Denna konsekvens talar om stabiliteten och tillförlitligheten hos dessa paket – utvecklare provar dem inte bara; de integrerar dem i sina kärnarbetsflöden och är beroende av dem dag efter dag.

Veckovisa nedladdningsmönster visar ännu mer imponerande siffror och svävar konsekvent runt tiotals miljoner nedladdningar per vecka[^14]. Detta representerar ett enormt fotavtryck i JavaScript-ekosystemet, med dessa paket som körs i produktionsmiljöer över hela världen.

Bortom de råa siffrorna

Även om nedladdningsstatistiken är imponerande i sig, berättar den en djupare historia om det förtroende som communityn ger dessa paket. Att underhålla paket i denna skala kräver ett orubbligt engagemang för:

  • Bakåtkompatibilitet: Ändringar måste övervägas noggrant för att undvika att bryta befintliga implementeringar.
  • säkerhet: Med miljontals applikationer beroende på dessa paket kan säkerhetsbrister få långtgående konsekvenser.
  • Prestanda: I denna skala kan även mindre prestandaförbättringar ha betydande sammanlagda fördelar.
  • Dokumentation: Tydlig, omfattande dokumentation är viktig för paket som används av utvecklare på alla erfarenhetsnivåer.

Den konsekventa ökningen av nedladdningssiffror över tid återspeglar framgången med att uppfylla dessa åtaganden, bygga förtroende med utvecklargemenskapen genom pålitliga, väl underhållna paket.

Stödja ekosystemet: Våra sponsringar med öppen källkod

[!DRICKS] Hållbarhet med öppen källkod handlar inte bara om att bidra med kod – det handlar också om att stödja de utvecklare som underhåller kritisk infrastruktur.

Utöver våra direkta bidrag till JavaScript-ekosystemet är vi stolta över att sponsra framstående Node.js-bidragsgivare vars arbete utgör grunden för många moderna applikationer. Våra sponsringar inkluderar:

Andris Reinman: Email Infrastructure Pioneer

Andris Reinman är skaparen av Notera mailer, det mest populära e-postsändningsbiblioteket för Node.js med över 14 miljoner nedladdningar per vecka[^15]. Hans arbete sträcker sig till andra kritiska e-postinfrastrukturkomponenter som SMTP-server, Mailparser, och Vild anka.

Vår sponsring hjälper till att säkerställa fortsatt underhåll och utveckling av dessa viktiga verktyg som driver e-postkommunikation för otaliga Node.js-applikationer, inklusive vår egen vidarebefordra e-posttjänst.

Sindre Sorhus: Utility Package Mastermind

Sindre Sorhus är en av de mest produktiva bidragsgivarna med öppen källkod i JavaScript-ekosystemet, med över 1 000 npm-paket i hans namn. Hans verktyg som p-karta, försök igen, och är-ström är grundläggande byggstenar som används i hela Node.js-ekosystemet.

Genom att sponsra Sindres arbete hjälper vi till att upprätthålla utvecklingen av dessa viktiga verktyg som gör JavaScript-utvecklingen mer effektiv och tillförlitlig.

Dessa sponsringar återspeglar vårt engagemang för det bredare ekosystemet med öppen källkod. Vi inser att vår egen framgång bygger på den grund som lagts av dessa och andra bidragsgivare, och vi är dedikerade till att säkerställa hela ekosystemets hållbarhet.

Avslöja säkerhetssårbarheter i JavaScript-ekosystemet

Vårt engagemang för öppen källkod sträcker sig bortom funktionsutveckling och inkluderar att identifiera och åtgärda säkerhetsbrister som kan påverka miljontals utvecklare. Flera av våra viktigaste bidrag till JavaScript-ekosystemet har varit inom säkerhetsområdet.

Koa-routerns räddning

I februari 2019 identifierade Nick ett kritiskt problem med underhållet av det populära koa-routerpaketet. Som han rapporterade på Hacker News, hade paketet övergetts av sin ursprungliga underhållare, vilket lämnade säkerhetssårbarheter oadresserade och gemenskapen utan uppdateringar.

[!VARNING] Övergivna paket med säkerhetsbrister utgör betydande risker för hela ekosystemet, särskilt när de laddas ner miljontals gånger per vecka.

Som svar skapade Nick @koa/router och hjälpte till att varna samhället om situationen. Han har underhållit detta kritiska paket sedan dess, och säkerställt att Koa-användare har en säker, väl underhållen routinglösning.

Åtgärda ReDoS-sårbarheter

2020 identifierade och åtgärdade Nick en kritisk person Regular Expression Denial of Service (ReDoS) sårbarhet i det allmänt använda url-regex paket. Denna sårbarhet (SNYK-JS-URLREGEX-569472) kan tillåta angripare att orsaka denial of service genom att tillhandahålla specialgjorda indata som orsakade katastrofal backtracking i det reguljära uttrycket.

Istället för att bara patcha det befintliga paketet skapade Nick url-regex-safe, en helt omskriven implementering som åtgärdar sårbarheten samtidigt som kompatibiliteten med det ursprungliga API:et bibehålls. Han publicerade också en omfattande blogginlägg förklarar sårbarheten och hur man kan mildra den.

Det här arbetet visar vår strategi för säkerhet: inte bara åtgärda problem utan utbilda samhället och tillhandahålla robusta alternativ som förhindrar liknande problem i framtiden.

Förespråkar Node.js och Chromium Security

Nick har också varit aktiv i att förespråka säkerhetsförbättringar i det bredare ekosystemet. I augusti 2020 identifierade han ett betydande säkerhetsproblem i Node.js relaterat till dess hantering av HTTP-huvuden, vilket rapporterades i Registret.

Det här problemet, som härrörde från en patch i Chromium, kan potentiellt tillåta angripare att kringgå säkerhetsåtgärder. Nicks förespråkande hjälpte till att säkerställa att problemet åtgärdades snabbt, vilket skyddade miljontals Node.js-applikationer från potentiellt utnyttjande.

Säkra npm-infrastruktur

Senare samma månad identifierade Nick ett annat kritiskt säkerhetsproblem, denna gång i npms e-postinfrastruktur. Som rapporterats i Registret, implementerade npm inte korrekt DMARC-, SPF- och DKIM-protokoll för e-postautentisering, vilket möjligen gjorde det möjligt för angripare att skicka nätfiske-e-postmeddelanden som verkade komma från npm.

Nicks rapport ledde till förbättringar av npms e-postsäkerhetsställning, vilket skyddade de miljontals utvecklare som förlitar sig på npm för pakethantering från potentiella nätfiskeattacker.

Våra bidrag till Forward Email Ecosystem

Forward Email är byggt ovanpå flera kritiska öppen källkodsprojekt, inklusive Nodemailer, WildDuck och mailauth. Vårt team har gett betydande bidrag till dessa projekt och hjälpt till att identifiera och åtgärda djupa problem som påverkar e-postleverans och säkerhet.

Förbättra Nodemailers kärnfunktionalitet

Notera mailer är ryggraden i e-postsändning i Node.js, och våra bidrag har hjälpt till att göra det mer robust:

  • SMTP-serverförbättringar: Vi har åtgärdat parsningsbuggar, problem med strömhantering och TLS-konfigurationsproblem i SMTP-serverkomponenten[^16][^17].
  • Mail Parser Förbättringar: Vi har åtgärdat teckensekvensavkodningsfel och åtgärdat parserproblem som kan orsaka e-postbearbetningsfel[^18][^19].

Dessa bidrag säkerställer att Nodemailer förblir en pålitlig grund för e-postbehandling i Node.js-applikationer, inklusive Vidarebefordra e-post.

Avancera e-postautentisering med Mailauth

Mailauth ger viktig e-postautentiseringsfunktion, och våra bidrag har förbättrat dess möjligheter avsevärt:

  • DKIM-verifieringsförbättringar: Vi upptäckte och rapporterade att X/Twitter hade problem med DNS-cache som orsakade DKIM-fel för deras utgående meddelanden, och rapporterade det på Hacker One[^20].
  • DMARC och ARC Enhancements: Vi har åtgärdat problem med DMARC- och ARC-verifiering som kan leda till felaktiga autentiseringsresultat[^21][^22].
  • Prestandaoptimeringar: Vi har bidragit med optimeringar som förbättrar prestandan för e-autentiseringsprocesser[^23][^24][^25][^26].

Dessa förbättringar hjälper till att säkerställa att e-postautentisering är korrekt och pålitlig, och skyddar användare från nätfiske och spoofingattacker.

Viktiga Upptime Enhancements

Våra bidrag till Upptime inkluderar:

  • SSL-certifikatövervakning: Vi har lagt till funktionalitet för att övervaka SSL-certifikatets utgång, vilket förhindrar oväntade driftstopp på grund av utgångna certifikat[^27].
  • Stöd för flera SMS-nummer: Vi implementerade stöd för att varna flera teammedlemmar via SMS när incidenter inträffar, vilket förbättrade svarstider[^28].
  • IPv6-kontrollfixar: Vi fixade problem med IPv6-anslutningskontroller, vilket säkerställde mer exakt övervakning i moderna nätverksmiljöer[^29].
  • Stöd för mörkt/ljusläge: Vi lade till temastöd för att förbättra användarupplevelsen av statussidor[^31].
  • Bättre TCP-Ping-stöd: Vi förbättrade TCP-ping-funktionen för att ge mer tillförlitlig anslutningstestning[^32].

Dessa förbättringar gynnar inte bara Forward Emails statusövervakning utan är tillgängliga för hela gruppen av Upptime-användare, vilket visar vårt engagemang för att förbättra de verktyg vi är beroende av.

Limmet som håller ihop allt: anpassad kod i skala

Även om våra npm-paket och bidrag till befintliga projekt är betydande, är det den anpassade koden som integrerar dessa komponenter som verkligen visar upp vår tekniska expertis. Forward Email-kodbasen representerar ett decennium av utvecklingsarbete, som går tillbaka till 2017 när projektet började som gratis vidarebefordran av e-post innan de slogs samman till en monorepo.

En massiv utvecklingsinsats

Omfattningen av denna anpassade integrationskod är imponerande:

  • Totala bidrag: Över 3 217 commits
  • Kodbasstorlek: Över 421 545 rader kod i JavaScript-, Pug-, CSS- och JSON-filer[^33]

Detta representerar tusentals timmars utvecklingsarbete, felsökningssessioner och prestandaoptimeringar. Det är den "hemliga såsen" som förvandlar enskilda paket till en sammanhållen, pålitlig tjänst som används av tusentals kunder dagligen.

Integration av kärnberoenden

Kodbasen vidarebefordra e-post integrerar många beroenden till en sömlös helhet:

  • E-postbearbetning: Integrerar Nodemailer för att skicka, SMTP-server för mottagning och Mailparser för att analysera
  • autentisering: Använder Mailauth för DKIM-, SPF-, DMARC- och ARC-verifiering
  • DNS-upplösning: Använder Tangerine för DNS-over-HTTPS med global cachning
  • MX-anslutning: Använder mx-connect med Tangerine-integration för pålitliga e-postserveranslutningar
  • Arbetsschema: Anställer Bree för pålitlig bakgrundsuppgiftsbearbetning med arbetartrådar
  • Mallar: Använder e-postmallar för att återanvända stilmallar från webbplatsen i kundkommunikation
  • E-postlagring: Implementerar individuellt krypterade SQLite-postlådor med hjälp av better-sqlite3-multiple-ciphers med ChaCha20-Poly1305-kryptering för kvantsäker integritet, vilket säkerställer fullständig isolering mellan användare och att endast användaren har tillgång till sin postlåda

Var och en av dessa integrationer kräver noggrann övervägande av edge-fall, prestandaimplikationer och säkerhetsproblem. Resultatet är ett robust system som hanterar miljontals e-posttransaktioner på ett tillförlitligt sätt. Vår SQLite-implementering använder också msgpackr för effektiv binär serialisering och WebSockets (via ws) för statusuppdateringar i realtid över hela vår infrastruktur.

DNS-infrastruktur med Tangerine och mx-connect

En kritisk komponent i Forward Emails infrastruktur är vårt DNS-upplösningssystem, byggt kring två nyckelpaket:

  • Mandarin: Vår Node.js DNS-over-HTTPS-implementering ger en drop-in-ersättning för standard DNS-resolver, med inbyggda försök, timeout, smart serverrotation och cachingstöd.

  • mx-anslut: Detta paket upprättar TCP-anslutningar till MX-servrar, tar en måldomän eller e-postadress, löser lämpliga MX-servrar och ansluter till dem i prioritetsordning.

Vi har integrerat Tangerine med mx-connect through pull begäran #4, vilket säkerställer applikationsskiktets DNS över HTTP-förfrågningar i hela vidarebefordra e-post. Detta ger global cachning för DNS i skala med 1:1-konsistens över alla regioner, appar eller processer – avgörande för tillförlitlig e-postleverans i ett distribuerat system.

Enterprise Impact: Från öppen källkod till uppdragskritiska lösningar

Kulmen på vår decennielånga resa inom utveckling av öppen källkod har gjort det möjligt för Forward Email att tjäna inte bara enskilda utvecklare utan även stora företag och utbildningsinstitutioner som utgör ryggraden i själva rörelsen med öppen källkod.

Fallstudier i uppdragskritisk e-postinfrastruktur

Vårt engagemang för tillförlitlighet, sekretess och principer för öppen källkod har gjort Forward Email till det pålitliga valet för organisationer med krävande e-postkrav:

  • Utbildningsinstitutioner: Som beskrivs i vår fallstudie för vidarebefordran av e-post för alumner, förlitar sig stora universitet på vår infrastruktur för att upprätthålla livslånga kontakter med hundratusentals alumner genom tillförlitliga tjänster för vidarebefordran av e-post.

  • Enterprise Linux-lösningar: Den Canonical Ubuntu e-postföretagsfallstudie visar hur vårt tillvägagångssätt med öppen källkod överensstämmer perfekt med behoven hos Linux-leverantörer för företag, och erbjuder dem den transparens och kontroll de behöver.

  • Open Source Foundations: Det kanske mest validerande är vårt partnerskap med Linux Foundation, som dokumenterats i Linux Foundation email företag fallstudie, där vår tjänst driver kommunikationen för just den organisation som sköter Linux-utvecklingen.

Det finns en vacker symmetri i hur våra paket med öppen källkod, underhållna med omsorg under många år, har gjort det möjligt för oss att bygga en e-posttjänst som nu stöder just de samhällen och organisationer som förespråkar programvara med öppen källkod. Denna helcirkelresa – från att bidra med individuella paket till att driva företagsklassad e-postinfrastruktur för ledare med öppen källkod – representerar den ultimata valideringen av vår strategi för mjukvaruutveckling.

Ett decennium av öppen källkod: Ser framåt

När vi ser tillbaka på ett decennium av bidrag med öppen källkod och framåt till de kommande tio åren, är vi fyllda av tacksamhet för samhället som har stöttat vårt arbete och spänning inför vad som komma skall.

Vår resa från enskilda paketbidragsgivare till underhållare av en omfattande e-postinfrastruktur som används av stora företag och stiftelser med öppen källkod har varit anmärkningsvärd. Det är ett bevis på kraften i utveckling av öppen källkod och den inverkan som genomtänkt, väl underhållen programvara kan ha på det bredare ekosystemet.

Under de kommande åren har vi åtagit oss att:

  • Vi fortsätter att underhålla och förbättra våra befintliga paket, vilket säkerställer att de förblir tillförlitliga verktyg för utvecklare över hela världen.
  • Utöka våra bidrag till kritiska infrastrukturprojekt, särskilt inom e-post- och säkerhetsdomänerna.
  • Förbättra möjligheter för Forward Email samtidigt som vi behåller vårt engagemang för integritet, säkerhet och transparens.
  • Stödja nästa generations bidragsgivare med öppen källkod genom mentorskap, sponsring och samhällsengagemang.

Vi tror att framtiden för mjukvaruutveckling är öppen, samarbetsvillig och byggd på en grund av förtroende. Genom att fortsätta bidra med högkvalitativa, säkerhetsfokuserade paket till JavaScript-ekosystemet hoppas vi kunna spela en liten roll i att bygga den framtiden.

Tack till alla som har använt våra paket, bidragit till våra projekt, rapporterat problem eller helt enkelt spridit ordet om vårt arbete. Ditt stöd har möjliggjort detta decennium av inverkan, och vi är glada över att se vad vi kan åstadkomma tillsammans under de kommande tio åren.

[^1]: npm nedladdningsstatistik för stuga, april 2025 [^2]: npm nedladdningsstatistik för bson-objectid, februari-mars 2025 [^3]: npm nedladdningsstatistik för url-regex-safe, april 2025 [^4]: GitHub-stjärnor räknas för forwardemail/forwardemail.net från och med april 2025 [^5]: npm nedladdningsstatistik för förhandsgransknings-e-post, april 2025 [^7]: npm nedladdningsstatistik för superagent, februari-mars 2025 [^8]: npm nedladdningsstatistik för supertest, februari-mars 2025 [^9]: npm nedladdningsstatistik för förhandsgranskning av e-post, februari-mars 2025 [^10]: npm nedladdningsstatistik för stuga, februari-mars 2025 [^11]: npm nedladdningsstatistik för url-regex-safe, februari-mars 2025 [^12]: npm-nedladdningsstatistik för spamscanner, februari-mars 2025 [^13]: Dagliga nedladdningsmönster från npm-statistik, april 2025 [^14]: Nedladdningsmönster varje vecka från npm-statistik, april 2025 [^15]: npm nedladdningsstatistik för nodemailer, april 2025 [^16]: https://github.com/nodemailer/smtp-server/issues/155 [^17]: https://github.com/nodemailer/smtp-server/issues/node-v12-requires-tls-min [^18]: https://github.com/nodemailer/mailparser/issues/261 [^19]: https://github.com/nodemailer/nodemailer/issues/1102 [^20]: https://github.com/postalsys/mailauth/issues/30 [^21]: https://github.com/postalsys/mailauth/issues/58 [^22]: https://github.com/postalsys/mailauth/issues/48 [^23]: https://github.com/postalsys/mailauth/issues/74 [^24]: https://github.com/postalsys/mailauth/issues/75 [^25]: https://github.com/postalsys/mailauth/issues/60 [^26]: https://github.com/postalsys/mailauth/issues/73 [^27]: Baserat på GitHub-problem i Upptime-förvaret [^28]: Baserat på GitHub-problem i Upptime-förvaret [^29]: Baserat på GitHub-problem i Upptime-förvaret [^30]: npm nedladdningsstatistik för bree, februari-mars 2025 [^31]: Baserat på GitHub pull-förfrågningar till Upptime [^32]: Baserat på GitHub pull-förfrågningar till Upptime [^34]: npm nedladdningsstatistik för koa, februari-mars 2025 [^35]: npm nedladdningsstatistik för @koa/router, februari-mars 2025 [^36]: npm nedladdningsstatistik för koa-router, februari-mars 2025 [^37]: npm nedladdningsstatistik för url-regex, februari-mars 2025 [^38]: npm nedladdningsstatistik för @breejs/later, februari-mars 2025 [^39]: npm nedladdningsstatistik för e-postmallar, februari-mars 2025 [^40]: npm nedladdningsstatistik för get-paths, februari–mars 2025 [^41]: npm nedladdningsstatistik för dotenv-parse-variables, februari-mars 2025 [^42]: npm nedladdningsstatistik för @koa/multer, februari-mars 2025