Dampak Satu Dekade: Bagaimana Paket npm Kami Mencapai 1 Miliar Unduhan dan Membentuk JavaScript
Di dalam Bahasa Indonesia: JavaScript dan Node.js dunia, beberapa paket sangat penting—diunduh jutaan kali setiap hari dan mendukung aplikasi di seluruh dunia. Di balik alat-alat ini adalah pengembang yang berfokus pada kualitas sumber terbuka. Hari ini, kami menunjukkan bagaimana tim kami membantu membangun dan memelihara paket npm yang telah menjadi bagian penting dari ekosistem JavaScript.
Para Pelopor yang Mempercayai Kami: Isaac Z. Schlueter dan Forward Email
Kami bangga memiliki Isaac Z. Schlueter (GitHub: isaacs) sebagai pengguna. Isaac menciptakan di atas permukaan laut dan membantu membangun Node.jsKepercayaannya pada Forward Email menunjukkan fokus kami pada kualitas dan keamanan. Isaac menggunakan Forward Email untuk beberapa domain termasuk izs.me.
Dampak Isaac pada JavaScript sangat besar. Pada tahun 2009, ia menjadi salah satu orang pertama yang melihat potensi Node.js, bekerja dengan Ryan Dahl, yang menciptakan platform tersebut. Seperti yang dikatakan Isaac dalam sebuah wawancara dengan majalah Increment: "Di tengah-tengah komunitas yang sangat kecil ini yang terdiri dari sekelompok orang yang mencoba mencari tahu cara membuat JS sisi server, Ryan Dahl muncul dengan Node, yang jelas merupakan pendekatan yang tepat. Saya ikut campur dan terlibat aktif sekitar pertengahan tahun 2009."
[!CATATAN] Bagi mereka yang tertarik dengan sejarah Node.js, ada banyak dokumenter bagus yang menceritakan perkembangannya, termasuk Kisah Node.js dan 10 Hal yang Saya Sesali Tentang Node.js - Ryan Dahl. Karya Ryan Dahl situs web pribadi juga berisi wawasan berharga tentang karyanya.
Dari Penciptaan npm hingga Kepemimpinan Node.js
Isaac menciptakan npm pada bulan September 2009, dengan versi pertama yang dapat digunakan dirilis pada awal tahun 2010. Pengelola paket ini memenuhi kebutuhan utama di Node.js, yang memungkinkan pengembang untuk berbagi dan menggunakan kembali kode dengan mudah. Menurut Halaman Wikipedia Node.js, "Pada bulan Januari 2010, pengelola paket diperkenalkan untuk lingkungan Node.js yang disebut npm. Pengelola paket memungkinkan programmer untuk menerbitkan dan berbagi paket Node.js, beserta kode sumber yang menyertainya, dan dirancang untuk menyederhanakan penginstalan, pembaruan, dan penghapusan instalasi paket."
Ketika Ryan Dahl mengundurkan diri dari Node.js pada bulan Januari 2012, Isaac mengambil alih sebagai pemimpin proyek. Seperti yang dicatat di ringkasannya, dia "Memimpin pengembangan beberapa API inti Node.js fundamental, termasuk sistem modul CommonJS, API sistem berkas, dan aliran" dan "Bertindak sebagai BDFL (Benevolent Dictator For Life) proyek selama 2 tahun, memastikan proses pembangunan yang terus meningkat kualitasnya dan andal untuk versi Node.js v0.6 hingga v0.10."
Isaac membimbing Node.js melalui periode pertumbuhan utama, menetapkan standar yang masih membentuk platform tersebut hingga saat ini. Ia kemudian mendirikan npm, Inc. pada tahun 2014 untuk mendukung registri npm, yang sebelumnya ia jalankan sendiri.
Kami berterima kasih kepada Isaac atas kontribusinya yang besar terhadap JavaScript dan terus menggunakan banyak paket yang ia buat. Karyanya telah mengubah cara kita membangun perangkat lunak dan cara jutaan pengembang berbagi kode di seluruh dunia.
Arsitek di Balik Kode: Perjalanan Nick Baugh
Inti dari kesuksesan open source kami adalah Nick Baugh, pendiri dan pemilik Forward Email. Karyanya dalam JavaScript telah berlangsung hampir 20 tahun dan telah membentuk cara banyak pengembang membuat aplikasi. Perjalanan open source-nya menunjukkan keterampilan teknis dan kepemimpinan komunitas.
Komite Teknis Ekspres dan Kontribusi Inti
Keahlian Nick dalam kerangka web membuatnya mendapat tempat di Komite Teknis Ekspres, di mana ia membantu salah satu framework Node.js yang paling banyak digunakan. Nick sekarang terdaftar sebagai anggota tidak aktif di Halaman komunitas ekspres.
[!PENTING] Express awalnya dibuat oleh TJ Holowaychuk, seorang kontributor open source produktif yang telah membentuk sebagian besar ekosistem Node.js. Kami berterima kasih atas karya dasar TJ dan menghormati karyanya. keputusan untuk istirahat dari kontribusinya yang luas pada sumber terbuka.
Sebagai anggota Komite Teknis EkspresNick menunjukkan perhatian besar terhadap detail dalam masalah seperti mengklarifikasi req.originalUrl
dokumentasi dan perbaikan masalah penanganan formulir multibagian.
Kontribusi Kerangka Kerja Koa
Pekerjaan Nick dengan Kerangka kerja Koa—alternatif modern dan ringan untuk Express yang juga diciptakan oleh TJ Holowaychuk—semakin menunjukkan komitmennya terhadap alat pengembangan web yang lebih baik. Kontribusinya pada Koa mencakup masalah dan kode melalui permintaan tarik, penanganan kesalahan, manajemen jenis konten, dan peningkatan dokumentasi.
Karyanya di Express dan Koa memberinya pandangan unik tentang pengembangan web Node.js, membantu tim kami membuat paket yang berfungsi baik dengan berbagai ekosistem kerangka kerja.
Dari Kontributor Individu Menjadi Pemimpin Organisasi
Apa yang dimulai dengan membantu proyek yang sudah ada berkembang menjadi pembuatan dan pemeliharaan ekosistem paket secara keseluruhan. Nick mendirikan beberapa organisasi GitHub—termasuk Kabin, Pemindai Spam, Teruskan Email, Membiarkan, dan Bree—masing-masing memecahkan kebutuhan spesifik dalam komunitas JavaScript.
Perubahan dari kontributor menjadi pemimpin ini menunjukkan visi Nick untuk perangkat lunak yang dirancang dengan baik yang memecahkan masalah nyata. Dengan mengatur paket-paket terkait di bawah organisasi GitHub yang terfokus, ia membangun ekosistem alat yang bekerja bersama-sama sambil tetap modular dan fleksibel untuk komunitas pengembang yang lebih luas.
Organisasi GitHub Kami: Ekosistem Inovasi
Kami mengatur pekerjaan sumber terbuka kami di seputar organisasi GitHub yang terfokus, yang masing-masing memecahkan kebutuhan spesifik dalam JavaScript. Struktur ini menciptakan keluarga paket yang kohesif yang bekerja sama dengan baik sekaligus tetap modular.
Kabin: Pencatatan Terstruktur untuk Aplikasi Modern
Itu Organisasi kabin adalah cara kami untuk membuat pencatatan aplikasi yang sederhana dan canggih. cabin
Paket ini memiliki hampir 900 bintang GitHub dan lebih dari 100.000 unduhan mingguan[^1]. Cabin menyediakan pencatatan terstruktur yang berfungsi dengan layanan populer seperti Sentry, LogDNA, dan Papertrail.
Yang membuat Cabin istimewa adalah sistem API dan plugin-nya yang canggih. Paket-paket pendukung seperti axe
untuk middleware Express dan parse-request
untuk penguraian permintaan HTTP menunjukkan komitmen kami terhadap solusi yang lengkap, bukan alat yang terisolasi.
Itu bson-objectid
Paket ini layak mendapat perhatian khusus, dengan lebih dari 1,7 juta unduhan hanya dalam waktu dua bulan[^2]. Implementasi MongoDB ObjectID yang ringan ini telah menjadi pilihan utama bagi para pengembang yang membutuhkan ID tanpa dependensi MongoDB penuh.
Pemindai Spam: Memerangi Penyalahgunaan Email
Itu Organisasi Pemindai Spam menunjukkan komitmen kami untuk memecahkan masalah nyata. spamscanner
paket menyediakan deteksi spam email tingkat lanjut, tetapi itu url-regex-safe
paket yang telah mendapat sambutan luar biasa.
Dengan lebih dari 1,2 juta unduhan dalam dua bulan[^3], url-regex-safe
memperbaiki masalah keamanan kritis dalam ekspresi reguler deteksi URL lainnya. Paket ini menunjukkan pendekatan kami terhadap sumber terbuka: menemukan masalah umum (dalam hal ini, Mengulangi kerentanan dalam validasi URL), menciptakan solusi yang solid, dan memeliharanya dengan hati-hati.
Bree: Penjadwalan Pekerjaan Modern dengan Worker Threads
Itu Organisasi Bree adalah jawaban kami terhadap tantangan umum Node.js: penjadwalan pekerjaan yang andal. bree
paket, dengan lebih dari 3.100 bintang GitHub, menyediakan penjadwal pekerjaan modern menggunakan thread pekerja Node.js untuk kinerja dan keandalan yang lebih baik.
[!NOTE] Bree diciptakan setelah kami membantu memelihara Agenda, menerapkan pelajaran yang didapat untuk membangun penjadwal pekerjaan yang lebih baik. Kontribusi Agenda kami membantu kami menemukan cara untuk meningkatkan penjadwalan pekerjaan.
Apa yang membuat Bree berbeda dari penjadwal lain seperti Agenda:
- Tidak Ada Ketergantungan Eksternal: Tidak seperti Agenda yang membutuhkan MongoDB, Bree tidak memerlukan Redis atau MongoDB untuk mengelola status pekerjaan.
- Benang Pekerja: Bree menggunakan thread pekerja Node.js untuk proses sandboxed, memberikan isolasi dan kinerja yang lebih baik.
- API Sederhana: Bree menawarkan kontrol terperinci dengan kesederhanaan, membuatnya lebih mudah untuk mengimplementasikan kebutuhan penjadwalan yang rumit.
- Dukungan bawaan: Hal-hal seperti pemuatan ulang yang lancar, pekerjaan cron, tanggal, dan waktu yang ramah manusia disertakan secara default.
Bree adalah bagian penting dari forwardemail.net, menangani tugas latar belakang yang penting seperti pemrosesan email, pembersihan, dan pemeliharaan terjadwal. Penggunaan Bree di Forward Email menunjukkan komitmen kami untuk menggunakan alat kami sendiri dalam produksi, memastikan alat tersebut memenuhi standar keandalan yang tinggi.
Kami juga menggunakan dan menghargai paket utas pekerja hebat lainnya seperti kolam dan klien HTTP seperti sebelas. Piscina, seperti Bree, menggunakan utas pekerja Node.js untuk pemrosesan tugas yang efisien. Kami berterima kasih Matthew Bukit, yang mengelola undici dan piscina, atas kontribusinya yang besar terhadap Node.js. Matteo bertugas di Komite Pengarah Teknis Node.js dan telah meningkatkan kapabilitas klien HTTP di Node.js.
Email Terusan: Infrastruktur Email Sumber Terbuka
Proyek kami yang paling ambisius adalah Teruskan Email, layanan email sumber terbuka yang menyediakan layanan penerusan, penyimpanan, dan API email. Repositori utamanya memiliki lebih dari 1.100 bintang GitHub[^4], yang menunjukkan apresiasi komunitas terhadap alternatif layanan email berpemilik ini.
Itu preview-email
Paket dari organisasi ini, dengan lebih dari 2,5 juta unduhan dalam dua bulan[^5], telah menjadi alat penting bagi para pengembang yang bekerja dengan templat email. Dengan menyediakan cara sederhana untuk melihat pratinjau email selama pengembangan, paket ini memecahkan masalah umum dalam membangun aplikasi yang mendukung email.
Lad: Utilitas dan Alat Penting Koa
Itu Organisasi pemuda menyediakan kumpulan utilitas dan alat penting yang terutama difokuskan pada peningkatan ekosistem kerangka kerja Koa. Paket-paket ini mengatasi tantangan umum dalam pengembangan web dan dirancang untuk bekerja sama dengan lancar sekaligus tetap bermanfaat secara independen.
koa-better-error-handler: Peningkatan Penanganan Kesalahan untuk Koa
koa-better-error-handler
menawarkan solusi penanganan kesalahan yang lebih baik untuk aplikasi Koa. Dengan lebih dari 50 bintang GitHub, paket ini membuat ctx.throw
menghasilkan pesan kesalahan yang mudah digunakan sekaligus mengatasi beberapa keterbatasan penanganan kesalahan bawaan Koa:
- Mendeteksi dan menangani kesalahan DNS Node.js, kesalahan Mongoose, dan kesalahan Redis dengan benar
- Penggunaan Ledakan untuk membuat respons kesalahan yang konsisten dan terformat dengan baik
- Mempertahankan header (tidak seperti pengendali bawaan Koa)
- Mempertahankan kode status yang sesuai daripada menggunakan default ke 500
- Mendukung pesan kilat dan pelestarian sesi
- Menyediakan daftar kesalahan HTML untuk kesalahan validasi
- Mendukung beberapa jenis respons (HTML, JSON, dan teks biasa)
Paket ini sangat berharga jika digunakan bersamaan dengan koa-404-handler
untuk manajemen kesalahan komprehensif pada aplikasi Koa.
paspor: Otentikasi untuk Lad
@ladjs/passport
memperluas middleware autentikasi Passport.js yang populer dengan penyempurnaan khusus untuk aplikasi web modern. Paket ini mendukung beberapa strategi autentikasi secara langsung:
- Otentikasi lokal dengan email
- Masuk dengan Apple
- Otentikasi GitHub
- Otentikasi Google
- Otentikasi kata sandi satu kali (OTP)
Paket ini sangat dapat disesuaikan, yang memungkinkan pengembang untuk menyesuaikan nama dan frasa kolom agar sesuai dengan persyaratan aplikasi mereka. Paket ini dirancang untuk terintegrasi secara mulus dengan Mongoose untuk manajemen pengguna, menjadikannya solusi ideal untuk aplikasi berbasis Koa yang memerlukan autentikasi yang kuat.
anggun: Penutupan Aplikasi yang Elegan
@ladjs/graceful
memecahkan tantangan kritis untuk menutup aplikasi Node.js dengan baik. Dengan lebih dari 70 bintang GitHub, paket ini memastikan bahwa aplikasi Anda dapat ditutup dengan bersih tanpa kehilangan data atau membiarkan koneksi menggantung. Fitur-fitur utama meliputi:
- Dukungan untuk menutup server HTTP secara anggun (Express/Koa/Fastify)
- Penutupan koneksi database yang bersih (MongoDB/Mongoose)
- Penutupan klien Redis yang tepat
- Penanganan penjadwal pekerjaan Bree
- Dukungan untuk penangan shutdown khusus
- Pengaturan batas waktu yang dapat dikonfigurasi
- Integrasi dengan sistem pencatatan
Paket ini penting untuk aplikasi produksi di mana penghentian yang tidak terduga dapat menyebabkan hilangnya atau kerusakan data. Dengan menerapkan prosedur penghentian yang tepat, @ladjs/graceful
membantu memastikan keandalan dan stabilitas aplikasi Anda.
Upptime: Pemantauan Uptime Sumber Terbuka
Itu Organisasi Upptime mewakili komitmen kami terhadap pemantauan sumber terbuka yang transparan. upptime
Repositori ini memiliki lebih dari 13.000 bintang GitHub, menjadikannya salah satu proyek terpopuler yang kami ikuti. Upptime menyediakan monitor uptime dan halaman status yang didukung GitHub yang beroperasi sepenuhnya tanpa server.
Kami menggunakan Upptime untuk halaman status kami sendiri di https://status.forwardemail.net dengan kode sumber tersedia di https://github.com/forwardemail/status.forwardemail.net.
Yang membuat Upptime istimewa adalah arsitekturnya:
- 100% Sumber Terbuka: Setiap komponen sepenuhnya sumber terbuka dan dapat disesuaikan.
- Didukung oleh GitHub: Memanfaatkan Tindakan, Masalah, dan Halaman GitHub untuk solusi pemantauan tanpa server.
- Tidak Memerlukan Server:Tidak seperti alat pemantauan tradisional, Upptime tidak mengharuskan Anda menjalankan atau memelihara server.
- Halaman Status Otomatis: Menghasilkan halaman status cantik yang dapat dihosting di GitHub Pages.
- Notifikasi Kuat: Terintegrasi dengan berbagai saluran notifikasi termasuk email, SMS, dan Slack.
Untuk meningkatkan pengalaman pengguna kami, kami telah mengintegrasikan @octokit/inti ke dalam basis kode forwardemail.net untuk menyajikan pembaruan status dan insiden secara langsung di situs web kami. Integrasi ini memberikan transparansi yang jelas kepada pengguna kami jika terjadi masalah di seluruh tumpukan kami (Situs Web, API, MongoDB, Redis, SQLite, SMTP, POP3, IMAP, Bree, dll.) dengan pemberitahuan instan, perubahan ikon lencana, warna peringatan, dan banyak lagi.
Pustaka @octokit/core memungkinkan kita mengambil data real-time dari repositori GitHub Upptime, memprosesnya, dan menampilkannya dengan cara yang mudah digunakan. Saat layanan mengalami gangguan atau kinerja menurun, pengguna akan segera diberi tahu melalui indikator visual tanpa harus meninggalkan aplikasi utama. Integrasi yang lancar ini memastikan bahwa pengguna selalu memiliki informasi terkini tentang status sistem, sehingga meningkatkan transparansi dan kepercayaan.
Upptime telah diadopsi oleh ratusan organisasi yang mencari cara yang transparan dan andal untuk memantau layanan mereka dan mengomunikasikan status kepada pengguna. Keberhasilan proyek ini menunjukkan kekuatan membangun alat yang memanfaatkan infrastruktur yang ada (dalam hal ini, GitHub) untuk memecahkan masalah umum dengan cara baru.
Kontribusi Kami terhadap Ekosistem Email Terusan
Meskipun paket sumber terbuka kami digunakan oleh para pengembang di seluruh dunia, paket tersebut juga menjadi dasar layanan Forward Email kami sendiri. Peran ganda ini—sebagai kreator dan pengguna alat-alat ini—memberi kami perspektif unik tentang penerapannya di dunia nyata dan mendorong peningkatan berkelanjutan.
Dari Paket ke Produksi
Perjalanan dari paket individual ke sistem produksi yang kohesif melibatkan integrasi dan perluasan yang cermat. Untuk Forward Email, proses ini meliputi:
- Ekstensi Kustom: Membangun ekstensi khusus Email ke Depan untuk paket sumber terbuka kami yang menjawab persyaratan unik kami.
- Pola Integrasi: Mengembangkan pola tentang bagaimana paket-paket ini berinteraksi dalam lingkungan produksi.
- Optimasi Kinerja: Mengidentifikasi dan mengatasi hambatan kinerja yang hanya muncul dalam skala besar.
- Pengerasan Keamanan: Menambahkan lapisan keamanan tambahan khusus untuk penanganan email dan perlindungan data pengguna.
Pekerjaan ini membutuhkan ribuan jam pengembangan di luar paket inti itu sendiri, menghasilkan layanan email tangguh dan aman yang memanfaatkan kontribusi terbaik sumber terbuka kami.
Lingkaran Umpan Balik
Mungkin aspek yang paling berharga dari penggunaan paket kami sendiri dalam produksi adalah umpan balik yang diciptakannya. Saat kami menemukan keterbatasan atau kasus khusus dalam Forward Email, kami tidak hanya menambalnya secara lokal—kami meningkatkan paket yang mendasarinya, yang menguntungkan layanan kami dan komunitas yang lebih luas.
Pendekatan ini telah menghasilkan banyak perbaikan:
- Penutupan Anggun Bree:Kebutuhan Forward Email untuk penerapan tanpa waktu henti menghasilkan peningkatan kemampuan penghentian yang lancar di Bree.
- Pengenalan Pola Pemindai Spam: Pola spam dunia nyata yang ditemukan dalam Email Terusan telah menginformasikan algoritma deteksi Pemindai Spam.
- Optimalisasi Kinerja Kabin: Pencatatan volume tinggi dalam produksi mengungkap peluang pengoptimalan di Cabin yang memberi manfaat bagi semua pengguna.
Dengan mempertahankan siklus baik antara pekerjaan sumber terbuka dan layanan produksi, kami memastikan paket kami tetap merupakan solusi praktis dan teruji, bukan sekadar implementasi teoritis.
Prinsip Inti Email Terusan: Fondasi untuk Keunggulan
Email Terusan dirancang berdasarkan serangkaian prinsip inti yang memandu semua keputusan pengembangan kami. Prinsip-prinsip ini, yang dirinci di situs web, memastikan bahwa layanan kami tetap ramah pengembang, aman, dan berfokus pada privasi pengguna.
Selalu Ramah Pengembang, Berfokus pada Keamanan, dan Transparan
Prinsip utama kami adalah menciptakan perangkat lunak yang ramah bagi pengembang sekaligus menjaga standar keamanan dan privasi tertinggi. Kami percaya bahwa keunggulan teknis tidak boleh mengorbankan kegunaan, dan bahwa transparansi membangun kepercayaan dengan komunitas kami.
Prinsip ini terlihat dalam dokumentasi terperinci kami, pesan kesalahan yang jelas, dan komunikasi terbuka tentang keberhasilan dan tantangan. Dengan menjadikan seluruh basis kode kami sumber terbuka, kami mengundang pengawasan dan kolaborasi, yang memperkuat perangkat lunak kami dan ekosistem yang lebih luas.
Kepatuhan terhadap Prinsip Pengembangan Perangkat Lunak yang Telah Teruji Waktu
Kami mengikuti beberapa prinsip pengembangan perangkat lunak yang mapan yang telah membuktikan nilainya selama beberapa dekade:
- MVC: Memisahkan masalah melalui pola Model-View-Controller
- Filsafat Unix:Menciptakan komponen modular yang melakukan satu hal dengan baik
- KISS:Menjaga agar tetap sederhana dan lugas
- DRY: Jangan Ulangi Diri Anda Sendiri, mempromosikan penggunaan kembali kode
- YAGNI: Anda Tidak Akan Membutuhkannya, menghindari pengoptimalan prematur
- Dua Belas Faktor: Mengikuti praktik terbaik untuk membangun aplikasi modern dan berskala
- pisau cukur Occam:Memilih solusi paling sederhana yang memenuhi persyaratan
- Makanan anjing: Menggunakan produk kami sendiri secara ekstensif
Prinsip-prinsip ini bukan sekadar konsep teoritis—prinsip-prinsip ini tertanam dalam praktik pengembangan harian kami. Misalnya, kepatuhan kami terhadap filosofi Unix terbukti dalam cara kami menyusun paket-paket npm: modul-modul kecil dan terfokus yang dapat disusun bersama untuk memecahkan masalah-masalah rumit.
Menargetkan Pengembang yang Berkemah dan Bermodalkan Kemampuan Sendiri
Kami secara khusus menargetkan yang scrappy, bootstrapped, dan menguntungkan ramen pengembang. Fokus ini membentuk segalanya, mulai dari model harga hingga keputusan teknis kami. Kami memahami tantangan dalam membangun produk dengan sumber daya terbatas karena kami pernah mengalaminya sendiri.
Prinsip ini sangat penting dalam pendekatan kami terhadap sumber terbuka. Kami membuat dan mengelola paket yang memecahkan masalah nyata bagi pengembang tanpa anggaran perusahaan, sehingga alat yang hebat dapat diakses oleh semua orang tanpa memandang sumber daya mereka.
Prinsip dalam Praktik: Basis Kode Email Terusan
Prinsip-prinsip ini terlihat jelas dalam basis kode Forward Email. File package.json kami mengungkap pilihan dependensi yang cermat, masing-masing dipilih agar selaras dengan nilai-nilai inti kami:
- Paket yang berfokus pada keamanan seperti
mailauth
untuk otentikasi email - Alat yang ramah pengembang seperti
preview-email
untuk debugging yang lebih mudah - Komponen modular seperti berbagai
p-*
utilitas dari Sindre Sorhus
Dengan mengikuti prinsip-prinsip ini secara konsisten dari waktu ke waktu, kami telah membangun layanan yang dapat dipercaya oleh pengembang untuk infrastruktur email mereka—aman, andal, dan selaras dengan nilai-nilai komunitas sumber terbuka.
Privasi Berdasarkan Desain
Privasi bukanlah renungan atau fitur pemasaran untuk Forward Email—ini adalah prinsip desain mendasar yang menginformasikan setiap aspek layanan dan kode kami:
- Enkripsi Tanpa Akses:Kami telah menerapkan sistem yang secara teknis membuat kami tidak mungkin membaca email pengguna.
- Pengumpulan Data Minimal:Kami hanya mengumpulkan data yang diperlukan untuk menyediakan layanan kami, tidak lebih.
- Kebijakan Transparan:Kebijakan privasi kami ditulis dalam bahasa yang jelas dan mudah dipahami tanpa jargon hukum.
- Verifikasi Sumber Terbuka: Basis kode sumber terbuka kami memungkinkan peneliti keamanan memverifikasi klaim privasi kami.
Komitmen ini meluas ke paket sumber terbuka kami, yang dirancang dengan praktik terbaik keamanan dan privasi yang dibangun dari awal.
Open Source yang Berkelanjutan
Kami percaya bahwa perangkat lunak sumber terbuka memerlukan model yang berkelanjutan agar dapat berkembang dalam jangka panjang. Pendekatan kami meliputi:
- Dukungan Komersial: Menawarkan dukungan dan layanan premium seputar alat sumber terbuka kami.
- Lisensi Seimbang: Menggunakan lisensi yang melindungi kebebasan pengguna dan keberlanjutan proyek.
- Keterlibatan Komunitas: Terlibat secara aktif dengan kontributor untuk membangun komunitas yang mendukung.
- Peta Jalan Transparan: Berbagi rencana pengembangan kami untuk memungkinkan pengguna membuat perencanaan yang tepat.
Dengan berfokus pada keberlanjutan, kami memastikan kontribusi sumber terbuka kami dapat terus tumbuh dan berkembang seiring waktu dan tidak terabaikan.
Angka Tidak Berbohong: Statistik Unduhan npm Kami yang Mengejutkan
Ketika kita berbicara tentang dampak perangkat lunak sumber terbuka, statistik unduhan memberikan ukuran adopsi dan kepercayaan yang nyata. Banyak paket yang kami bantu kelola telah mencapai skala yang jarang dicapai oleh proyek sumber terbuka lainnya, dengan total unduhan mencapai miliaran.
[!PENTING] Meskipun kami bangga dapat membantu mengelola beberapa paket yang paling banyak diunduh dalam ekosistem JavaScript, kami ingin mengakui bahwa banyak dari paket ini awalnya dibuat oleh pengembang berbakat lainnya. Paket seperti superagent dan supertest awalnya dibuat oleh TJ Holowaychuk, yang kontribusinya yang produktif terhadap sumber terbuka telah berperan penting dalam membentuk ekosistem Node.js.
Pandangan Umum tentang Dampak Kami
Hanya dalam kurun waktu dua bulan dari Februari hingga Maret 2025, paket-paket teratas yang kami kontribusikan dan bantu pertahankan mencatat angka unduhan yang luar biasa:
- agen super: 84.575.829 unduhan[^7] (aslinya dibuat oleh TJ Holowaychuk)
- ujian super: 76.432.591 unduhan[^8] (aslinya dibuat oleh TJ Holowaychuk)
- Juga: 28.539.295 unduhan[^34] (aslinya dibuat oleh TJ Holowaychuk)
- @koa/router: 11.007.327 unduhan[^35]
- koa-router: 3.498.918 unduhan[^36]
- url-regex: 2.819.520 unduhan[^37]
- pratinjau-email: 2.500.000 unduhan[^9]
- kabin: 1.800.000 unduhan[^10]
- @breejs/nanti: 1.709.938 unduhan[^38]
- templat email: 1.128.139 unduhan[^39]
- dapatkan-jalur: 1.124.686 unduhan[^40]
- url-regex-aman: 1.200.000 unduhan[^11]
- dotenv-parse-variabel: 894.666 unduhan[^41]
- @koa/berbagai: 839.585 unduhan[^42]
- pemindai spam: 145.000 unduhan[^12]
- angin: 24.270 unduhan[^30]
[!NOTE] Beberapa paket lain yang kami bantu kelola tetapi tidak kami buat memiliki jumlah unduhan yang lebih tinggi, termasuk
form-data
(738 juta+ unduhan),toidentifier
(309 juta+ unduhan),stackframe
(116 juta+ unduhan), danerror-stack-parser
(113 juta+ unduhan). Kami merasa terhormat dapat berkontribusi pada paket-paket ini dengan tetap menghargai karya penulis aslinya.
Ini bukan sekadar angka yang mengesankan—angka-angka ini menunjukkan pengembang sungguhan yang memecahkan masalah sungguhan dengan kode yang kami bantu kelola. Setiap unduhan adalah contoh saat paket-paket ini telah membantu seseorang membangun sesuatu yang berarti, mulai dari proyek hobi hingga aplikasi perusahaan yang digunakan oleh jutaan orang.
Dampak Harian dalam Skala Besar
Pola unduhan harian menunjukkan penggunaan yang konsisten dan bervolume tinggi, dengan puncaknya mencapai jutaan unduhan per hari[^13]. Konsistensi ini menunjukkan stabilitas dan keandalan paket-paket ini—pengembang tidak hanya mencobanya; mereka mengintegrasikannya ke dalam alur kerja inti mereka dan bergantung padanya setiap hari.
Pola unduhan mingguan menunjukkan angka yang lebih mengesankan, yang secara konsisten berkisar pada puluhan juta unduhan per minggu[^14]. Hal ini menunjukkan jejak yang sangat besar dalam ekosistem JavaScript, dengan paket-paket ini berjalan di lingkungan produksi di seluruh dunia.
Melampaui Angka Mentah
Meskipun statistik unduhannya sendiri mengesankan, statistik tersebut menceritakan kisah yang lebih dalam tentang kepercayaan yang diberikan komunitas terhadap paket-paket ini. Mempertahankan paket-paket pada skala ini memerlukan komitmen yang kuat untuk:
- Kompatibilitas Mundur: Perubahan harus dipertimbangkan secara cermat untuk menghindari kerusakan pada implementasi yang ada.
- Keamanan: Dengan jutaan aplikasi yang bergantung pada paket ini, kerentanan keamanan dapat menimbulkan konsekuensi yang luas.
- Pertunjukan:Pada skala ini, bahkan peningkatan kinerja kecil pun dapat memberikan manfaat agregat yang signifikan.
- Dokumentasi: Dokumentasi yang jelas dan komprehensif sangat penting untuk paket yang digunakan oleh pengembang dari semua tingkat pengalaman.
Pertumbuhan jumlah unduhan yang konsisten dari waktu ke waktu mencerminkan keberhasilan dalam memenuhi komitmen ini, membangun kepercayaan dengan komunitas pengembang melalui paket yang andal dan terawat dengan baik.
Mendukung Ekosistem: Sponsorship Open Source Kami
[!TIP] Keberlanjutan sumber terbuka bukan hanya tentang kontribusi kode—tetapi juga tentang mendukung pengembang yang memelihara infrastruktur penting.
Selain kontribusi langsung kami terhadap ekosistem JavaScript, kami bangga mensponsori kontributor Node.js terkemuka yang karyanya menjadi dasar banyak aplikasi modern. Sponsorship kami meliputi:
Andris Reinman: Pelopor Infrastruktur Email
Andris Reinman adalah pencipta Nodemailer, pustaka pengiriman email paling populer untuk Node.js dengan lebih dari 14 juta unduhan mingguan[^15]. Karyanya meluas ke komponen infrastruktur email penting lainnya seperti Server SMTP, Pengurai surat, dan Bebek liar.
Sponsorship kami membantu memastikan pemeliharaan dan pengembangan berkelanjutan atas alat-alat penting yang mendukung komunikasi email untuk aplikasi Node.js yang tak terhitung jumlahnya, termasuk layanan Forward Email kami sendiri.
Sindre Sorhus: Mastermind Paket Utilitas
Sindre Sorhus adalah salah satu kontributor open source paling produktif dalam ekosistem JavaScript, dengan lebih dari 1.000 paket npm atas namanya. Utilitasnya seperti peta p, p-cobaan ulang, dan adalah aliran adalah blok bangunan fundamental yang digunakan di seluruh ekosistem Node.js.
Dengan mensponsori karya Sindre, kami membantu mendukung pengembangan utilitas penting ini yang membuat pengembangan JavaScript lebih efisien dan andal.
Sponsorship ini mencerminkan komitmen kami terhadap ekosistem open source yang lebih luas. Kami menyadari bahwa keberhasilan kami dibangun di atas fondasi yang diletakkan oleh para kontributor ini dan kontributor lainnya, dan kami berdedikasi untuk memastikan keberlanjutan seluruh ekosistem.
Mengungkap Kerentanan Keamanan dalam Ekosistem JavaScript
Komitmen kami terhadap sumber terbuka melampaui pengembangan fitur hingga mencakup mengidentifikasi dan menangani kerentanan keamanan yang dapat memengaruhi jutaan pengembang. Beberapa kontribusi kami yang paling signifikan terhadap ekosistem JavaScript adalah di bidang keamanan.
Penyelamatan Koa-Router
Pada bulan Februari 2019, Nick mengidentifikasi masalah kritis dengan pemeliharaan paket koa-router yang populer. Saat dia dilaporkan di Hacker News, paket tersebut telah ditinggalkan oleh pengelola aslinya, sehingga kerentanan keamanan tidak teratasi dan komunitas tanpa pembaruan.
[!PERINGATAN] Paket terbengkalai dengan kerentanan keamanan menimbulkan risiko signifikan terhadap seluruh ekosistem, terutama saat paket tersebut diunduh jutaan kali setiap minggu.
Sebagai tanggapan, Nick menciptakan @koa/router dan membantu memberi tahu masyarakat tentang situasi tersebut. Dia telah memelihara paket penting ini sejak saat itu, memastikan bahwa pengguna Koa memiliki solusi perutean yang aman dan terawat dengan baik.
Mengatasi Kerentanan ReDoS
Pada tahun 2020, Nick mengidentifikasi dan mengatasi masalah kritis Penolakan Layanan Ekspresi Reguler (ReDoS) kerentanan dalam penggunaan umum url-regex
paket. Kerentanan ini (SNYK-JS-URLREGEX-569472) dapat memungkinkan penyerang menyebabkan penolakan layanan dengan memberikan masukan yang dibuat khusus yang menyebabkan pelacakan balik yang sangat besar dalam ekspresi reguler.
Daripada hanya menambal paket yang ada, Nick membuat url-regex-safe
, implementasi yang sepenuhnya ditulis ulang yang mengatasi kerentanan sambil mempertahankan kompatibilitas dengan API asli. Dia juga menerbitkan postingan blog yang lengkap menjelaskan kerentanan dan cara mengatasinya.
Karya ini menunjukkan pendekatan kami terhadap keamanan: tidak sekadar memperbaiki masalah tetapi juga mendidik masyarakat dan menyediakan alternatif kuat yang mencegah masalah serupa di masa mendatang.
Mendukung Keamanan Node.js dan Chromium
Nick juga aktif dalam mengadvokasi peningkatan keamanan di ekosistem yang lebih luas. Pada bulan Agustus 2020, ia mengidentifikasi masalah keamanan yang signifikan di Node.js yang terkait dengan penanganan header HTTP, yang dilaporkan dalam Daftar.
Masalah ini, yang berasal dari patch di Chromium, berpotensi memungkinkan penyerang untuk melewati langkah-langkah keamanan. Advokasi Nick membantu memastikan bahwa masalah tersebut ditangani dengan segera, melindungi jutaan aplikasi Node.js dari potensi eksploitasi.
Mengamankan Infrastruktur NPM
Kemudian pada bulan yang sama, Nick mengidentifikasi masalah keamanan kritis lainnya, kali ini dalam infrastruktur email npm. Seperti yang dilaporkan dalam Daftar, npm tidak menerapkan protokol autentikasi email DMARC, SPF, dan DKIM dengan benar, sehingga berpotensi memungkinkan penyerang mengirim email phishing yang tampaknya berasal dari npm.
Laporan Nick menghasilkan perbaikan dalam postur keamanan email npm, melindungi jutaan pengembang yang mengandalkan npm untuk manajemen paket dari potensi serangan phishing.
Kontribusi Kami terhadap Ekosistem Email Terusan
Forward Email dibangun di atas beberapa proyek sumber terbuka penting, termasuk Nodemailer, WildDuck, dan mailauth. Tim kami telah memberikan kontribusi signifikan terhadap proyek-proyek ini, membantu mengidentifikasi dan memperbaiki masalah mendalam yang memengaruhi pengiriman dan keamanan email.
Meningkatkan Fungsionalitas Inti Nodemailer
Nodemailer adalah tulang punggung pengiriman email di Node.js, dan kontribusi kami telah membantu membuatnya lebih tangguh:
- Peningkatan Server SMTP: Kami telah memperbaiki bug penguraian, masalah penanganan aliran, dan masalah konfigurasi TLS dalam komponen server SMTP[^16][^17].
- Peningkatan Parser Surat: Kami telah mengatasi kesalahan decoding urutan karakter dan mengatasi masalah parser yang dapat menyebabkan kegagalan pemrosesan email[^18][^19].
Kontribusi ini memastikan bahwa Nodemailer tetap menjadi fondasi yang andal untuk pemrosesan email di aplikasi Node.js, termasuk Forward Email.
Memajukan Autentikasi Email dengan Mailauth
Surat elektronik menyediakan fungsi otentikasi email yang penting, dan kontribusi kami telah meningkatkan kemampuannya secara signifikan:
- Peningkatan Verifikasi DKIM:Kami menemukan dan melaporkan bahwa X/Twitter memiliki masalah cache DNS yang menyebabkan kegagalan DKIM untuk pesan keluar mereka, melaporkannya pada Hacker One[^20].
- Peningkatan DMARC dan ARC: Kami telah memperbaiki masalah dengan DMARC dan verifikasi ARC yang dapat menyebabkan hasil autentikasi yang salah[^21][^22].
- Optimasi Kinerja: Kami telah memberikan kontribusi pengoptimalan yang meningkatkan kinerja proses autentikasi email[^23][^24][^25][^26].
Peningkatan ini membantu memastikan autentikasi email akurat dan andal, melindungi pengguna dari serangan phishing dan spoofing.
Peningkatan Upptime Utama
Kontribusi kami untuk Upptime meliputi:
- Pemantauan Sertifikat SSL:Kami menambahkan fungsionalitas untuk memantau kedaluwarsa sertifikat SSL, mencegah waktu henti yang tidak terduga karena sertifikat yang kedaluwarsa[^27].
- Dukungan Beberapa Nomor SMS:Kami menerapkan dukungan untuk memperingatkan beberapa anggota tim melalui SMS ketika insiden terjadi, meningkatkan waktu respons[^28].
- Perbaikan Pemeriksaan IPv6: Kami memperbaiki masalah dengan pemeriksaan konektivitas IPv6, memastikan pemantauan yang lebih akurat di lingkungan jaringan modern[^29].
- Dukungan Mode Gelap/Terang:Kami menambahkan dukungan tema untuk meningkatkan pengalaman pengguna halaman status[^31].
- Dukungan TCP-Ping yang Lebih Baik:Kami meningkatkan fungsionalitas ping TCP untuk menyediakan pengujian koneksi yang lebih andal[^32].
Peningkatan ini tidak hanya menguntungkan pemantauan status Forward Email tetapi juga tersedia untuk seluruh komunitas pengguna Upptime, yang menunjukkan komitmen kami untuk meningkatkan alat yang kami andalkan.
Perekat yang Menyatukan Semuanya: Kode Kustom dalam Skala Besar
Meskipun paket npm dan kontribusi kami terhadap proyek yang ada cukup signifikan, kode khusus yang mengintegrasikan komponen-komponen inilah yang benar-benar menunjukkan keahlian teknis kami. Basis kode Forward Email mewakili upaya pengembangan selama satu dekade, yang dimulai sejak tahun 2017 ketika proyek dimulai sebagai penerusan email gratis sebelum digabungkan menjadi monorepo.
Upaya Pembangunan Besar-besaran
Skala kode integrasi khusus ini sangat mengesankan:
- Total Kontribusi:Lebih dari 3.217 komitmen
- Ukuran Basis Kode: Lebih dari 421.545 baris kode di seluruh file JavaScript, Pug, CSS, dan JSON[^33]
Ini merupakan ribuan jam kerja pengembangan, sesi debugging, dan pengoptimalan kinerja. Ini adalah "resep rahasia" yang mengubah paket individual menjadi layanan yang kohesif dan andal yang digunakan oleh ribuan pelanggan setiap hari.
Integrasi Ketergantungan Inti
Basis kode Forward Email mengintegrasikan sejumlah dependensi menjadi satu kesatuan yang utuh:
- Pemrosesan Email: Mengintegrasikan Nodemailer untuk pengiriman, Server SMTP untuk penerimaan, dan Mailparser untuk penguraian
- Autentikasi: Menggunakan Mailauth untuk verifikasi DKIM, SPF, DMARC, dan ARC
- Resolusi DNS: Memanfaatkan Tangerine untuk DNS-over-HTTPS dengan caching global
- Koneksi MX: Memanfaatkan mx-connect dengan integrasi Tangerine untuk koneksi server email yang andal
- Penjadwalan Pekerjaan: Mempekerjakan Bree untuk pemrosesan tugas latar belakang yang andal dengan utas pekerja
- Pembuatan templat: Menggunakan template email untuk menggunakan kembali stylesheet dari situs web dalam komunikasi pelanggan
- Penyimpanan Email: Menerapkan kotak surat SQLite yang dienkripsi secara individual menggunakan better-sqlite3-multiple-ciphers dengan enkripsi ChaCha20-Poly1305 untuk privasi yang aman secara kuantum, memastikan isolasi lengkap antara pengguna dan hanya pengguna yang memiliki akses ke kotak surat mereka
Setiap integrasi ini memerlukan pertimbangan cermat terhadap kasus-kasus ekstrem, implikasi kinerja, dan masalah keamanan. Hasilnya adalah sistem tangguh yang menangani jutaan transaksi email dengan andal. Implementasi SQLite kami juga memanfaatkan msgpackr untuk serialisasi biner yang efisien dan WebSockets (melalui ws) untuk pembaruan status waktu nyata di seluruh infrastruktur kami.
Infrastruktur DNS dengan Tangerine dan mx-connect
Komponen penting infrastruktur Forward Email adalah sistem resolusi DNS kami, yang dibangun berdasarkan dua paket utama:
-
Jeruk keprok: Implementasi DNS-over-HTTPS Node.js kami menyediakan pengganti langsung untuk resolver DNS standar, dengan percobaan ulang bawaan, batas waktu, rotasi server cerdas, dan dukungan caching.
-
mx-koneksi: Paket ini membuat koneksi TCP ke server MX, mengambil domain atau alamat email target, menyelesaikan server MX yang sesuai, dan menghubungkannya dalam urutan prioritas.
Kami telah mengintegrasikan Tangerine dengan mx-connect melalui tarik permintaan #4, memastikan DNS lapisan aplikasi melalui permintaan HTTP di seluruh Forward Email. Ini menyediakan caching global untuk DNS dalam skala besar dengan konsistensi 1:1 di seluruh wilayah, aplikasi, atau proses—penting untuk pengiriman email yang andal dalam sistem terdistribusi.
Dampak Perusahaan: Dari Solusi Open Source ke Solusi Misi-Kritis
Puncak perjalanan kami selama satu dekade dalam pengembangan sumber terbuka telah memungkinkan Forward Email untuk melayani tidak hanya pengembang perorangan tetapi juga perusahaan besar dan lembaga pendidikan yang menjadi tulang punggung gerakan sumber terbuka itu sendiri.
Studi Kasus Infrastruktur Email Penting
Komitmen kami terhadap prinsip keandalan, privasi, dan sumber terbuka telah menjadikan Forward Email pilihan tepercaya bagi organisasi dengan persyaratan email yang menuntut:
-
Lembaga pendidikan:Sesuai dengan rincian yang kami berikan studi kasus penerusan email alumni, universitas-universitas besar mengandalkan infrastruktur kami untuk memelihara hubungan seumur hidup dengan ratusan ribu alumni melalui layanan penerusan email yang andal.
-
Solusi Linux Perusahaan: : Itu Studi kasus perusahaan email Canonical Ubuntu menunjukkan bagaimana pendekatan sumber terbuka kami selaras sempurna dengan kebutuhan penyedia Linux perusahaan, menawarkan mereka transparansi dan kontrol yang mereka butuhkan.
-
Fondasi Sumber Terbuka:Mungkin yang paling valid adalah kemitraan kami dengan Linux Foundation, seperti yang didokumentasikan dalam Studi kasus perusahaan email Linux Foundation, di mana layanan kami memberdayakan komunikasi untuk organisasi yang mengelola pengembangan Linux.
Ada simetri yang indah dalam cara paket sumber terbuka kami, yang dikelola dengan hati-hati selama bertahun-tahun, memungkinkan kami membangun layanan email yang kini mendukung komunitas dan organisasi yang memperjuangkan perangkat lunak sumber terbuka. Perjalanan penuh ini—dari menyumbangkan paket individual hingga memberdayakan infrastruktur email tingkat perusahaan untuk para pemimpin sumber terbuka—mewakili validasi utama pendekatan kami terhadap pengembangan perangkat lunak.
Satu Dekade Open Source: Menatap Masa Depan
Saat kami menengok kembali satu dekade kontribusi sumber terbuka dan menantikan sepuluh tahun berikutnya, kami dipenuhi rasa syukur kepada komunitas yang telah mendukung pekerjaan kami dan kegembiraan atas apa yang akan terjadi.
Perjalanan kami dari kontributor paket individual menjadi pengelola infrastruktur email komprehensif yang digunakan oleh perusahaan besar dan yayasan sumber terbuka sungguh luar biasa. Ini adalah bukti kekuatan pengembangan sumber terbuka dan dampak perangkat lunak yang cermat dan terpelihara dengan baik terhadap ekosistem yang lebih luas.
Dalam beberapa tahun mendatang, kami berkomitmen untuk:
- Terus memelihara dan meningkatkan paket kami yang sudah ada, memastikan mereka tetap menjadi alat yang dapat diandalkan bagi para pengembang di seluruh dunia.
- Memperluas kontribusi kami terhadap proyek infrastruktur penting, khususnya di domain email dan keamanan.
- Meningkatkan kemampuan Email Terusan dengan tetap menjaga komitmen kami terhadap privasi, keamanan, dan transparansi.
- Mendukung kontributor open source generasi berikutnya melalui bimbingan, sponsorship, dan keterlibatan masyarakat.
Kami percaya bahwa masa depan pengembangan perangkat lunak bersifat terbuka, kolaboratif, dan dibangun di atas fondasi kepercayaan. Dengan terus memberikan paket berkualitas tinggi yang berfokus pada keamanan ke ekosistem JavaScript, kami berharap dapat berperan kecil dalam membangun masa depan tersebut.
Terima kasih kepada semua orang yang telah menggunakan paket kami, berkontribusi pada proyek kami, melaporkan masalah, atau sekadar menyebarkan informasi tentang pekerjaan kami. Dukungan Anda telah memungkinkan dekade penuh dampak ini, dan kami bersemangat untuk melihat apa yang dapat kita capai bersama dalam sepuluh tahun ke depan.
[^1]: statistik unduhan npm untuk cabin, April 2025 [^2]: statistik unduhan npm untuk bson-objectid, Februari-Maret 2025 [^3]: statistik unduhan npm untuk url-regex-safe, April 2025 [^4]: Jumlah bintang GitHub untuk forwardemail/forwardemail.net per April 2025 [^5]: statistik unduhan npm untuk preview-email, April 2025 [^7]: statistik unduhan npm untuk superagent, Februari-Maret 2025 [^8]: statistik unduhan npm untuk supertest, Februari-Maret 2025 [^9]: statistik unduhan npm untuk preview-email, Februari-Maret 2025 [^10]: statistik unduhan npm untuk cabin, Februari-Maret 2025 [^11]: statistik unduhan npm untuk url-regex-safe, Februari-Maret 2025 [^12]: Statistik unduhan npm untuk spamscanner, Februari-Maret 2025 [^13]: Pola unduhan harian dari statistik npm, April 2025 [^14]: Pola unduhan mingguan dari statistik npm, April 2025 [^15]: Statistik unduhan npm untuk 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]: Berdasarkan masalah GitHub di repositori Upptime [^28]: Berdasarkan masalah GitHub di repositori Upptime [^29]: Berdasarkan masalah GitHub di repositori Upptime [^30]: Statistik unduhan npm untuk bree, Februari-Maret 2025 [^31]: Berdasarkan permintaan tarik GitHub ke Upptime [^32]: Berdasarkan permintaan tarik GitHub ke Upptime [^34]: Statistik unduhan npm untuk koa, Februari-Maret 2025 [^35]: Statistik unduhan npm untuk @koa/router, Februari-Maret 2025 [^36]: Statistik unduhan npm untuk koa-router, Februari-Maret 2025 [^37]: Statistik unduhan npm untuk url-regex, Februari-Maret 2025 [^38]: Statistik unduhan npm untuk @breejs/later, Februari-Maret 2025 [^39]: statistik unduhan npm untuk email-templates, Februari-Maret 2025 [^40]: statistik unduhan npm untuk get-paths, Februari-Maret 2025 [^41]: statistik unduhan npm untuk dotenv-parse-variables, Februari-Maret 2025 [^42]: statistik unduhan npm untuk @koa/multer, Februari-Maret 2025