Cara Membuat Open Source Anda Menjadi Terkenal
(evilmartians.com)Hal yang perlu diketahui sebelum membuat open source menjadi terkenal
- Jika Anda ingin menjadi terkenal atau kaya melalui open source, itu adalah pendekatan yang keliru
- Menulis blog atau berbicara di konferensi lebih efektif daripada membuat proyek yang populer
- Redux dan React Router adalah proyek populer, tetapi maintainer-nya tidak memiliki banyak pengikut di media sosial → popularitas proyek tidak otomatis berujung pada popularitas pribadi
Jangan membuat open source hanya untuk ditulis di resume
- Anggapan bahwa kontribusi open source itu wajib adalah salah
- Meski memulai open source untuk menjadi terkenal, tidak ada jaminan akan berhasil
- Bahkan proyek yang bagus pun bisa membuat Anda tertekan jika hanya punya satu bintang
- Aktivitas open source memang bisa membantu dalam rekrutmen, tetapi daripada membuat proyek sendiri, berkontribusi ke proyek terkenal yang sudah ada jauh lebih efektif
Mulailah dari kontribusi terlebih dahulu
- Mulai dari perbaikan dokumentasi atau perbaikan bug di proyek open source besar
- Menulis PR jauh lebih mudah daripada menulis kode
- Alasan terbaik membuat open source yang baik adalah karena Anda ingin mengubah dunia
Cara mengubah dunia lewat open source
- PostCSS dibuat untuk mendiversifikasi ekosistem alat CSS dan mempermudah pemrosesan CSS → berhasil
- Popularitas dan kesuksesan adalah elemen penting
Rahasia proyek populer
Popularitas proyek = pengenalan + promosi + manfaat bagi pengguna + keberuntungan
- Proyek yang dibuat oleh developer populer cenderung lebih mudah menjadi populer → mungkin tidak adil, tetapi itulah kenyataannya
- Anda perlu memahami penyebab popularitas dan mendekatinya secara strategis
Cara orang memilih open source
- Orang tidak memilih alat secara rasional
- Kebanyakan memutuskan hanya dengan melihat jumlah Star di GitHub
- Atau sering mengikuti framework yang disebut di konferensi
Cara orang benar-benar membaca informasi
- Pengguna tidak membaca README atau dokumentasi dari awal sampai akhir
- Informasi harus diberikan secara sederhana dan bertahap seperti 'progressive JPEG'
- Pada blok pertama, manfaat harus dijelaskan dengan jelas
Strategi meraih popularitas
- Rapikan akun media sosial Anda
- Pada awalnya, penulis tidak membuat akun media sosial berbahasa Inggris sehingga orang sulit menemukannya
- Jika Anda developer non-Inggris, membuat akun media sosial berbahasa Inggris akan lebih menguntungkan
- Saat proyek disebutkan, Anda harus menyediakan tautan profil agar pengguna mudah terhubung
- Tetapkan pola pikir yang realistis
- Keberuntungan itu penting, tetapi bukan segalanya
- Penulis hanya berhasil dengan 4 dari 56 proyek
- Sebelum membuat proyek populer, ia mengalami kegagalan berkali-kali
- Proyek yang sukses adalah hasil dari upaya konsisten dan kegagalan yang berulang
- Terima kegagalan sebagai sesuatu yang wajar
- Proyek populer membutuhkan usaha jangka panjang seperti maraton
- Kegagalan adalah bagian dari proses → perlu perbaikan berkelanjutan dan percobaan berulang
- Perkirakan kegagalan sejak awal, tetapi jangan mengorbankan kualitas pekerjaan
Cara membuat open source populer: README
- README dan dokumentasi menentukan kesan pertama proyek
- Pengguna harus bisa memahami nilai proyek dengan cepat melalui README
- README bisa terekspos kepada pengguna lewat jalur seperti berikut
- Berbagai jalur promosi seperti presentasi, tulisan blog, podcast, dan lain-lain
- Pada akhirnya semuanya mengarah ke README, jadi penulisannya harus diperhatikan dengan serius
- Pembaca tidak membaca README dengan teliti dari awal sampai akhir
- Karena itu, pada bagian awal README, nilai proyek harus disampaikan dengan jelas
- Pada blok pertama, orang harus bisa cepat memahami manfaat proyek
Pertanyaan: apakah Anda sudah menyampaikan nilai proyek dengan efektif?
- Orang tidak punya waktu luang untuk membaca dokumentasi secara mendetail
- Karena itu, informasi inti dan manfaat harus dirangkum dengan jelas dan singkat
- Dengan menata dokumentasi dengan baik, Anda bisa meningkatkan pengalaman pengguna dan popularitas proyek
1. Menyampaikan manfaat kepada pengguna secara efektif
- Menyampaikan manfaat proyek kepada pengguna terhubung langsung dengan promosi
- Dalam rumus sukses yang disebut sebelumnya, memberikan manfaat kepada pengguna adalah faktor penting
Popularitas proyek = pengenalan + promosi + manfaat bagi pengguna + keberuntungan
- Di README, dokumentasi, atau pengantar singkat, manfaat bagi pengguna harus disampaikan dengan jelas
- Agar mendapat perhatian karena nilai nyata, bukan karena popularitas atau reputasi, pertimbangkan hal-hal berikut
- Keterbacaan informasi: pengguna harus bisa menangkap inti dengan cepat
- Kemudahan dipindai: informasi penting harus disusun agar mudah terlihat
- Kesan pertama: dalam beberapa detik pertama, nilai proyek harus langsung terlihat jelas
2. Menyampaikan pesan dengan cepat dan efektif
- Blok pertama README wajib memuat tiga elemen berikut
- Penjelasan yang jelas
- Penjelasan yang jelas tentang bagaimana proyek ini membantu pengguna
- Perbedaan dengan produk lain
- Alasan pengguna harus membaca dokumentasi harus disampaikan dengan jelas sejak kalimat pertama
- Kalimat pertama adalah yang paling penting → sebagian besar pengguna hanya membaca kalimat pertama untuk menilai nilai proyek
- Karena itu, manfaat proyek harus terlihat jelas pada blok pertama
- Tidak masalah menghabiskan beberapa hari sampai satu minggu untuk menulis blok pertama README
- Menulis blok pertama PostCSS memakan waktu sekitar satu minggu
- Semakin banyak usaha yang dicurahkan ke blok pertama, semakin besar peluang proyek untuk berhasil
3. Menjelaskan produk agar mudah dipahami orang
- Deskripsi proyek harus jelas dan intuitif
- Dibanding ungkapan yang terdengar keren, penjelasan yang substansial jauh lebih penting
- ❌ "Svelte is cybernetically enhanced web apps"
- Terlalu samar → tidak jelas keunggulan spesifik apa yang diberikan
- ✅ "Svelte is a web UI framework with a unique compiler which generates smaller JS fixes."
- Spesifik dan jelas → menjelaskan masalah apa yang diselesaikan dan manfaat apa yang diberikan
- Tulis penjelasan seolah Anda sedang berbicara dengan rekan di bar
- "Anda membuat alat baru? Alat itu buat apa?" → jelaskan dengan alami
- Setelah penjelasan tersusun, rapikan agar lebih ringkas
- Setelah menulis deskripsi, perbaiki lagi 2~4 kali agar menjadi singkat dan jelas
4. Menyampaikan informasi dengan cepat lewat daftar dan teks tebal
- Untuk menyampaikan informasi dengan jelas, Anda harus aktif memanfaatkan daftar dan teks tebal
- Deskripsi lama Nano Stores (dalam bentuk blok teks)
- Nano Stores adalah state manager yang bisa digunakan di berbagai frontend framework
- Ukurannya kecil dan tidak memiliki dependensi
- Deskripsi yang direvisi (menggunakan daftar dan penekanan tebal)
- Nano Stores memiliki karakteristik berikut:
- Ukuran kecil: 286~818 byte (minified dan brotlied)
- Mendukung berbagai framework: React, Vue, Svelte, Angular, dan lainnya
- Tanpa dependensi
- Nano Stores memiliki karakteristik berikut:
-
Poin untuk meningkatkan keterbacaan
- Gunakan daftar: informasi terstruktur sehingga mudah dipahami sekilas
- Gunakan teks tebal: sorot informasi inti agar cepat dikenali
- Kalimat singkat: sisakan hanya informasi penting dan hapus yang tidak perlu
- Bahkan jika teks dipersingkat, pesannya tetap harus tersampaikan dengan jelas
5. Menggunakan contoh kode dan gambar
- Konsep yang kompleks bisa dijelaskan dengan mudah melalui contoh kode atau gambar
- Seperti pepatah "satu gambar lebih baik daripada seratus kata", materi visual adalah alat yang kuat untuk membantu pemahaman
6. Menggunakan data statistik nyata
- Ungkapan yang samar atau janji abstrak sulit membangun kepercayaan
- Anda harus menyajikan statistik konkret seperti performa, ukuran, dan kecepatan yang nyata
-
Contoh: penggunaan statistik nyata pada Nano ID
- Bukti ukuran: Nano ID kecil, hanya 141 byte → memberikan angka yang jelas
- Bukti kecepatan: Nano ID 16% lebih cepat daripada UUID → menyajikan hasil benchmark
- Tips memanfaatkan data statistik secara efektif
- Sediakan data performa yang terukur → memperkuat kredibilitas
- Cantumkan hasil benchmark → menegaskan diferensiasi dari produk lain
- Jelaskan performa API atau cara penggunaan dengan jelas beserta contoh nyata
- Performa, ukuran, kecepatan, dan lainnya harus dibuktikan dengan angka dan data yang konkret
7. Menyediakan panduan mulai langkah demi langkah
- Jika keunggulan proyek sudah tersampaikan dengan jelas, langkah berikutnya adalah memberi cara penggunaan yang konkret
- Setelah pengguna tertarik pada proyek usai membaca README, mereka harus bisa melanjutkan secara alami ke langkah berikutnya
-
Tips menulis panduan awal yang efektif
- Sediakan panduan langkah demi langkah yang konkret
- Alih-alih penjelasan samar seperti "Gunakan PostCSS", berikan langkah yang jelas dan spesifik
- Cantumkan perintah dan cara konfigurasi yang diperlukan di tiap langkah
- Sediakan jalur alternatif
- Tawarkan pendekatan yang berbeda sesuai situasi pengguna
- Contoh: tambahkan cara penanganan bila PostCSS belum terpasang
- Sediakan bagian berdasarkan tipe pengguna
- Berikan panduan yang sesuai masing-masing untuk pengguna library besar dan library kecil
- Sediakan panduan langkah demi langkah yang konkret
-
Wajib diuji
- Anda harus mengikuti panduan yang ditulis sendiri untuk menguji apakah benar-benar berjalan dengan baik
- Jika memungkinkan, lupakan pengetahuan latar tentang proyek dan ikuti lagi dari awal
- Jika ada masalah, segera perbaiki dan lengkapi
- Anda harus mengikuti panduan yang ditulis sendiri untuk menguji apakah benar-benar berjalan dengan baik
Strategi promosi open source yang efektif
1. Pentingnya promosi berulang
- Banyak orang melakukan kesalahan seperti berikut
- Memposting hanya sekali di media sosial
- Tidak ada respons
- Menjadi tertekan
- Menghentikan proyek
- Satu promosi besar saja tidak efektif → perlu promosi bertahap dan berulang
- Siklus promosi berulang yang efektif
- Buat konten seperti rilis fitur baru, posting blog, posting media sosial, dan lainnya
- Terima umpan balik pengguna
- Perbaiki proyek berdasarkan umpan balik
- Buat konten baru tentang perubahan tersebut → mulai lagi
- Pada tahap awal, jumlah pengguna yang sedikit justru menguntungkan → bisa melakukan perbaikan tanpa stres
- Peningkatan terus-menerus dan promosi berulang akan menaikkan pengenalan
2. Strategi promosi media sosial yang efektif
- Jangan hanya membagikan tautan atau berhenti pada penjelasan singkat
- Sertakan dua hal berikut
- Contoh kode atau gambar → membuat orang lebih mudah memahami
- Penjelasan proyek yang jelas → bahkan pengguna baru pun bisa mengerti
-
Contoh template tulisan promosi
- Umumkan fitur baru → beri penjelasan jelas → sertakan contoh kode → bagikan di media sosial
- Posting di subreddit terkait di Reddit (cek aturan tiap subreddit)
- Posting di Hacker News → bisa membantu memperoleh traction awal
- Tulis artikel di Dev.to, Smashing Magazine, CSS-Tricks, dan lainnya → memperluas eksposur
3. Strategi promosi lewat PR
- Ajukan PR untuk mengadopsi open source Anda ke proyek lain
- Contoh: PostCSS berhasil dipromosikan lewat PR ke proyek lain
- "Kalau butuh bantuan, saya bisa mencoba menerapkan alat ini."
- Jika PR diterima, cantumkan contoh penerapan itu di README → meningkatkan kepercayaan
- Menyebut bahwa alat Anda dipakai oleh proyek populer juga memperkuat kredibilitas
4. Ulangi, tetapi jangan sampai spam
- Promosi berulang secara konsisten memang perlu
- Namun spam sama sekali tidak boleh
- Jangan mengulang pesan yang sama; berikan nilai baru
- Sertakan perubahan dan perkembangan yang sudah terjadi
- Tidak semua pengguna membaca semua posting → promosi berulang dalam berbagai bentuk perlu dilakukan secara berkala
Mengapa promosi berulang diperlukan
- Orang tidak memilih alat secara rasional
- Promosi berulang membentuk pengenalan secara alami
- Agar berhasil, Anda perlu membangun pengenalan dalam jangka panjang
Bonus
1. Cara mengatasi masalah saat proyek menjadi terkenal
- Saat proyek menjadi populer, jumlah issue yang harus ditangani bisa meledak
- Jika Anda mencoba menyelesaikan semua masalah sendiri, bebannya akan membesar dan bisa berujung pada rasa tertekan serta penurunan produktivitas
-
Solusi
- Jangan mencoba menyelesaikan semua masalah sendiri → dorong pengguna untuk menulis PR
- Minta dengan kalimat seperti, "Jika Anda ingin menyelesaikan masalah ini, bisakah Anda mengirim PR?"
- Tetapkan waktu untuk menangani masalah (misalnya 15 menit per hari) dan kerjakan hanya dalam waktu itu
- Untuk masalah sulit, jangan buru-buru menyelesaikannya; balas dengan "Saya sedang meninjau cara penyelesaiannya" → hanya dengan tahu bahwa masalahnya sudah disadari pun pengguna akan merasa lebih tenang
- Perbaikan dokumentasi juga bisa diserahkan kepada pengguna → minta, "Bisakah Anda memperbaiki bagian ini?"
2. Cara menghadapi umpan balik negatif
- Umpan balik negatif bisa menurunkan motivasi
- Pada tahap awal proyek, umpan balik negatif bisa mematahkan semangat, dan ketika proyek makin populer, hal itu bisa melemahkan kepercayaan diri
-
Strategi respons
- Jangan bereaksi secara emosional
- Ajukan pertanyaan terhadap kritik → tanyakan, "Mengapa Anda merasa B lebih baik daripada A?"
- Kritik sering kali hanya luapan emosi → cobalah berdialog dengan pengguna untuk membangun kepercayaan
- Kritik juga bisa menjadi peluang untuk perbaikan
3. Strategi menghadapi munculnya proyek pesaing
- Anda tidak perlu khawatir meski proyek pesaing muncul
- Jika ada proyek pesaing, ada manfaat seperti berikut
- Anda bisa lepas dari beban memelihara proyek
- Lewat persaingan, solusi yang lebih baik bisa muncul → pada akhirnya juga menguntungkan pengguna
- Tujuan akhir open source adalah mengubah dunia → bukan monopoli atau dominasi
- Munculnya proyek pesaing → lahirnya alat yang lebih baik → situasi win-win
Ringkasan akhir
Cara membuat open source populer dan mendapatkan visibilitas
- Alasan terbaik membuat open source bukanlah ketenaran atau memperkuat resume, tetapi untuk mengubah dunia
- Tidak ada jaminan bahwa ide bagus akan menjadi proyek populer
- Rumus popularitas proyek open source = pengenalan + promosi + manfaat bagi pengguna + keberuntungan
- Akun media sosial harus aktif, mudah ditemukan, dan ditulis dalam bahasa yang banyak digunakan seperti bahasa Inggris
Cara menulis dokumentasi yang efektif
- README dan dokumentasi harus ditulis dengan jelas dan alami, seolah menjelaskan kepada teman
- Gunakan teks penekanan, daftar, dan struktur yang sistematis untuk menyampaikan informasi kompleks secara bertahap
- Sediakan bukti konkret seperti benchmark nyata dan contoh kode
- Jika memungkinkan, sediakan panduan awal yang spesifik untuk pemula dan pengguna tingkat lanjut
Strategi promosi
- Dibanding satu promosi besar, promosi berulang lebih efektif → rilis → umpan balik → perbaikan → ulangi
- Posting secara rutin, tetapi hindari spam
- Buat posting yang menyertakan contoh kode dan gambar
- Ajukan PR ke proyek lain untuk memaksimalkan efek promosi
Tips saat proyek menjadi terkenal
- Jangan mencoba menyelesaikan semua masalah sendiri; arahkan pengguna agar mengirim PR
- Tetapkan waktu khusus untuk menangani masalah dan kelola sesuai batas itu (misalnya 15 menit per hari)
- Jika ada umpan balik negatif, cobalah berdialog lewat pertanyaan
- Jangan takut pada proyek pesaing → persaingan justru bisa membebaskan Anda dari tanggung jawab tertentu
1 komentar
Menurut saya, penting juga untuk menemukan tempat yang membolehkan promosi dengan isi yang sedikit berbeda-beda, tetapi jika dilihat dari jauh terasa berulang. Misalnya Twitter.