Website komunitas dan direktori open source Indonesia di https://indopensource.org.
- Astro
- Tailwind CSS
- TypeScript
- GitHub Actions
- Cloudflare Workers Static Assets
- Home: pintu masuk ke direktori, roadmap, pembelajaran, dan kontribusi.
- Falsafah: prinsip komunitas dan kurasi open source Indonesia.
- Projects: direktori proyek dari
IndopenSource/awesome-indonesia. - Top User: peringkat pemilik repository berdasarkan akumulasi stars.
- Komunitas: direktori komunitas yang diusulkan melalui pull request.
- Roadmap: rencana kerja publik 2026–2027.
- Belajar dan Blog: materi serta artikel yang disinkronkan dari repository sumber.
- Donasi: informasi OpenSawer, sponsorship, CSR, dan dukungan non-dana.
- Forum dan Kontak: GitHub Discussions serta kanal resmi IndopenSource.
npm install
npm run devSinkronisasi data bersifat opsional untuk pengembangan UI. File hasil sinkronisasi
yang diperlukan sudah tersedia di src/data/.
src/
components/ Reusable Astro UI components
data/ Synced project directory data
layouts/ Shared page layout
lib/ Small shared helpers
pages/ Route files
styles/ Tailwind entrypoint and theme tokensnpm test
npm run check
npm run buildCloudflare terhubung langsung ke repository dan membuat preview untuk pull
request atau branch non-production. Production hanya dibangun dari branch
release.
- Build command:
npm run build - Deploy command:
npx wrangler deploy - Output directory:
dist - Konfigurasi Worker:
wrangler.jsonc - Production branch:
release - Custom domain:
indopensource.org
Semua kontribusi masuk ke main. Anggota organisasi mempromosikan versi yang
sudah diuji melalui pull request dari main ke release; jangan membuka pull
request kontribusi langsung ke release.
GitHub Pages sudah tidak digunakan. Deployment dan preview website ditangani
oleh Cloudflare; workflow sinkronisasi konten hanya memperbarui data di main.
Lihat checklist release sebelum mempromosikan
main ke release.
npm run sync:projects membaca repos.json dari IndopenSource/awesome-indonesia,
lalu mengambil metadata repo dari GitHub API dan menulis hasilnya ke
src/data/projects.json.
Gunakan GITHUB_TOKEN atau GH_TOKEN untuk rate limit yang lebih lega.
npm run sync:blog membaca artikel Markdown dari
IndopenSource/Blog-IndopenSource, mengambil tanggal commit pertama, commit
terbaru, dan seluruh kontributor unik setiap artikel, lalu menulis hasilnya ke
src/data/blog-posts.json. Halaman artikel menautkan commit terbaru tersebut
agar riwayat sumber dapat diperiksa langsung.
Artikel berstatus draft tetap dibangun pada URL /blog/preview/{slug}/,
tetapi tidak ditampilkan di indeks blog, tidak masuk sitemap, dan memakai
noindex, nofollow, noarchive sampai statusnya diterbitkan.
Workflow .github/workflows/sync-content.yml memperbarui data secara otomatis.
- Manual: jalankan workflow
Sync content data. - Schedule: berjalan setiap jam pada menit ke-17.
- Dispatch dari repo lain:
sync-projectssync-blogsync-content
Jika data berubah, workflow membuat commit Sync content data. Setelah commit
masuk main, perubahan mengikuti validasi dan alur promosi main ke release.
Cloudflare kemudian membuat preview main; production tetap dipromosikan lewat
pull request ke release.
Analytics aktif saat build Cloudflare menerima environment variable berikut:
PUBLIC_CLOUDFLARE_WEB_ANALYTICS_TOKENPUBLIC_GOOGLE_ANALYTICS_ID(formatG-XXXXXXXXXX)PUBLIC_GOOGLE_SITE_VERIFICATION(opsional)
Nilainya merupakan identifier publik dan tidak perlu dimasukkan ke Git. Isi di pengaturan build Cloudflare untuk production dan preview sesuai kebutuhan.
See CONTRIBUTING.md.
