Panduan Kontribusi Remotika
Terima kasih atas ketertarikan Anda untuk berkontribusi! Proyek ini dibangun secara open-source untuk membantu pengembang dan freelancer Indonesia memetakan perusahaan global yang terbukti mempekerjakan talenta lokal secara remote.
Cara Ikut Berkontribusi
Anda tidak harus menjadi ahli coding untuk berkontribusi. Kami menyambut segala bentuk partisipasi dari komunitas:
Saran Perusahaan
Sampaikan informasi perusahaan remote asing baru yang mempekerjakan developer lokal via fitur "Sarankan Perusahaan" di Direktori. Pipa data kami akan langsung mendeteksi dan memverifikasi profil mereka.
Laporkan Masalah
Menemukan bug di UI, kejanggalan dalam pipeline data, atau kesalahan deteksi wilayah? Laporkan langsung dengan membuat Issue baru pada repositori GitHub kami.
Pull Request
Suka memodifikasi kode? Bantu kami memperbaiki bug, meningkatkan performa pipeline data, memoles tampilan UI/UX, atau mengoptimalkan SEO melalui pengiriman Pull Request.
Memulai Pengembangan Lokal
Jalankan Remotika secara lokal di komputer Anda untuk mulai melakukan modifikasi:
1Prasyarat & Kloning Repositori
Pastikan komputer Anda sudah terpasang Node.js (v18 ke atas) dan paket manager seperti NPM atau Yarn. Kemudian klon repositori dan masuk ke direktori proyek:
# Kloning via SSH atau HTTPS
$ git clone git@github.com:hryagstn/remotika.git
$ cd remotika
2Konfigurasi Environment Variable
Buat berkas bernama .env di direktori utama proyek. Masukkan konfigurasi berikut:
# Personal Access Token klasik untuk memindai organisasi GitHub tanpa kena rate limit
GITHUB_TOKEN=isi_dengan_token_github_pat_anda
# URL Repositori Utama
NEXT_PUBLIC_GITHUB_REPO=https://github.com/hryagstn/remotika
3Instalasi & Jalankan Server Lokal
Lakukan instalasi seluruh dependensi proyek, kemudian aktifkan development server lokal:
# Mengunduh paket-paket dependensi
$ npm install
# Menjalankan Next.js development server
$ npm run dev
Buka tautan http://localhost:3000 di browser Anda untuk melihat aplikasi berjalan.
Menguji Pipa Data Lokal
Untuk menguji bagaimana pipa data kami mengumpulkan data lowongan kerja global serta memverifikasi pengembang Indonesia secara otomatis:
Pipa data (*data pipeline*) kami dapat dijalankan secara terpisah dari server web dengan mengeksekusi script mandiri menggunakan perintah:
# Menjalankan integrasi lowongan kerja & deteksi talenta GitHub
$ npm run pipeline
3 Tahapan Saringan yang Berjalan di Pipeline:
Public Members
Memeriksa lokasi profil GitHub member organisasi publik terhadap kata kunci wilayah Indonesia.
PR Association
Mendeteksi aktivitas pengiriman Pull Request ke repositori organisasi oleh kontributor resmi asal Indonesia.
Commit Email
Mencocokkan domain email komit git dengan domain perusahaan untuk mengonfirmasi relasi kerja internal.
Siklus Kerja Pengiriman Pull Request
Ikuti langkah terstruktur ini untuk memastikan Pull Request Anda dapat langsung diterima dan di-merge:
Lakukan Fork & Buat Branch Baru
Lakukan Fork pada repositori Remotika di GitHub, kemudian buat branch baru di repositori lokal Anda untuk menampung perubahan:
$ git checkout -b fitur/fitur-keren-anda
Lakukan Perubahan & Verifikasi Build
Tulis kode atau perbaikan Anda. Sebelum melakukan commit, selalu pastikan seluruh kode berhasil dikompilasi dengan sukses tanpa ada error TypeScript atau Next.js:
$ npm run build
Commit Perubahan dengan Pesan Jelas
Tulis commit Anda menggunakan format pesan commit yang jelas dan deskriptif agar mudah dipahami saat proses review:
$ git commit -m "feat: menambah filter pencarian dinamis"
Push & Kirim Pull Request
Kirim perubahan Anda ke branch fork Anda di GitHub, lalu ajukan Pull Request ke repositori utama kami:
$ git push origin fitur/fitur-keren-anda
Dokumentasi API Publik (Read-Only)
Gunakan API publik kami yang transparan untuk mengonsumsi data direktori Remotika secara programmatic:
Query Parameters (Opsional)
| Parameter | Tipe | Deskripsi |
|---|---|---|
| hasActiveJobs | boolean | Filter status perekrutan aktif (`true` atau `false`). |
| label | string | Filter tingkatan verifikasi (`top-pick`, `established`, `indonesia-friendly`, `confirmed`). |
| minVerifiedCount | number | Filter jumlah minimum talenta Indonesia yang terverifikasi. |
| industry | string | Pencarian parsial nama industri (e.g. `technology`). |
| limit | number | Batasan jumlah data yang dikembalikan (Default: `50`, Max: `200`). |
| offset | number | Offset pemotongan data untuk paginasi (Default: `0`). |
Contoh Respons JSON (200 OK)
{
"data": [
{
"name": "Automattic",
"githubOrg": "automattic",
"githubOrgUrl": "https://github.com/automattic",
"label": "confirmed",
"verifiedIndonesianCount": 1,
"hasActiveJobs": false,
"verifiedAt": "2026-06-15T00:00:00Z",
"profileUrl": "https://remotika.vercel.app/company/automattic"
}
],
"meta": {
"total": 5,
"limit": 50,
"offset": 0
}
}Dukungan CORS
Header Access-Control-Allow-Origin: * aktif secara default untuk mendukung panggilan langsung dari klien/sisi browser.
Batasan Throttling (Rate Limit)
Maksimum 60 permintaan per menit per alamat IP. Permintaan berlebih akan mengembalikan kode status 429 Too Many Requests.
Lisensi Kontribusi
Dengan ikut mengirimkan kontribusi ke repositori Remotika, Anda menyetujui bahwa seluruh kode, teks, maupun dokumentasi yang Anda sumbangkan akan dilisensikan secara resmi di bawah Lisensi MIT yang melekat pada proyek ini.
