AI Builder
W1 Tools & Teknis 6 menit baca

3 Hal yang Nggak Bisa Ditawar: Docs, Backup, API Keys

Di bootcamp ini kamu bebas pilih tech stack dan ide. Tapi ada 3 hal yang nggak bisa ditawar: dokumentasi, backup, dan keamanan API keys.

Di bootcamp ini, kamu bebas pilih tech stack, bebas pilih ide, bebas pilih framework. Tapi ada 3 hal yang nggak bisa ditawar. Ini bukan aturan bootcamp — ini aturan survival di dunia software.

Kalau kamu skip salah satu dari 3 ini, bukan soal “nilai turun” — tapi soal data hilang, uang melayang, atau produk mati.


1. Dokumentasi = Nyawa Product Kamu

Kenapa Ini Nggak Bisa Ditawar

Kamu build app pakai AI. AI nulis sebagian besar code-nya. Kamu paham secara garis besar gimana app-nya jalan. Semuanya lancar.

Lalu… 3 bulan kemudian, kamu mau tambahin fitur baru. Kamu buka project-nya. Dan kamu nggak ingat apa-apa.

  • Kenapa file ini ada?
  • Tabel database ini fungsinya apa?
  • API key ini dari mana?
  • Kenapa pake library ini dan bukan yang itu?

Tanpa dokumentasi, kamu mulai dari nol lagi. Dan AI juga nggak bisa bantu — karena AI tanpa konteks = output sampah.

Apa yang Harus Didokumentasikan

Kamu nggak perlu nulis novel. Cukup update setiap Jumat di Obsidian vault kamu:

ApaContoh
Apa yang berubah minggu ini”Tambah fitur login, integrasi Supabase Auth”
Kenapa”Karena butuh personalized dashboard per user”
Gimana cara kerjanya”User register → email konfirmasi → login → redirect ke /dashboard”
Data model”Tabel users: id, email, name, created_at. Tabel transactions: id, user_id, amount, date”
Keputusan penting”Pilih Supabase bukan Firebase karena free tier lebih generous dan SQL-based”
Yang belum selesai”Belum ada forgot password flow, masih manual reset”

Template Mingguan

## Week [X] Update

### Apa yang Berubah
-

### Kenapa
-

### Gimana Cara Kerjanya
-

### Keputusan yang Diambil
-

### Yang Belum Selesai / Masalah yang Ditemukan
-

Copy-paste ini ke Obsidian vault kamu. Isi tiap Jumat. Nggak boleh skip.

Kenapa Obsidian?

Karena docs kamu harus ada di tempat yang milik kamu sendiri. Bukan di Google Docs yang tergantung akun. Bukan di Notion yang tergantung server mereka. Obsidian = file markdown di laptop kamu. Kalau Obsidian mati besok, file kamu tetap ada.


2. Backup Sebelum Operasi Destructive

Horror Story

User: "AI, hapus semua data test di database"
AI: *menjalankan DROP TABLE*
User: "..."
User: "Itu... itu tabel production..."

Ini bukan cerita fiksi. Ini terjadi ke orang sungguhan. Data hilang. Nggak bisa di-recover. Berminggu-minggu kerja — gone dalam 1 detik.

Aturannya Simpel

Sebelum jalankan perintah yang menghapus/mengubah data secara massal — BACKUP DULU.

“Operasi destructive” itu termasuk:

  • Delete data (satu row atau banyak)
  • Drop table
  • Reset database
  • Update massal (update semua row sekaligus)
  • Hapus file di storage/bucket

Cara Backup

Supabase:

  1. Buka dashboard Supabase
  2. Pergi ke Table Editor
  3. Klik export (CSV) untuk setiap tabel penting
  4. Simpan file-nya

Cloudflare D1:

  1. Buka dashboard Cloudflare
  2. D1 → database kamu → Export

Atau yang paling gampang: Minta AI: “Export semua data dari tabel [nama] ke file JSON sebelum kita ubah apapun.”

Checklist Sebelum Operasi Destructive

[ ] Sudah backup data yang akan diubah/dihapus?
[ ] Sudah paham PERSIS apa yang akan terjadi?
[ ] Sudah konfirmasi ini di environment yang BENAR? (dev, bukan production)
[ ] Kalau ini di production — sudah dikonfirmasi 2 kali?

Soft Delete, Bukan Hard Delete

Di app kamu, jangan pernah benar-benar hapus data. Tandai aja:

is_deleted = true
deleted_at = [timestamp]

Data “terhapus” tapi masih ada di database. Kalau ada yang salah, kamu bisa restore. Hard delete = data hilang selamanya. Di production, nggak ada Ctrl+Z.


3. API Keys Nggak Pernah Masuk GitHub

Apa Itu API Key?

API key itu kayak kunci rumah kamu — tapi untuk layanan digital. Supabase, Cloudflare, OpenAI, payment gateway — semuanya kasih kamu “kunci” supaya app kamu bisa connect ke layanan mereka.

Kenapa Ini Berbahaya?

Ada bot otomatis yang scan GitHub 24/7 cari API keys yang nggak sengaja ke-commit. Mereka scan ribuan repository per menit.

Kalau mereka nemu API key kamu:

  • OpenAI key → mereka pakai credit kamu → tagihan ribuan dollar dalam hitungan jam
  • Supabase key → mereka akses/hapus semua data user kamu
  • Payment gateway key → mereka bisa manipulasi transaksi

Ini bukan teori konspirasi. Ini terjadi setiap hari.

Aturannya: Environment Variables

Jangan pernah tulis API key langsung di code:

// JANGAN PERNAH LAKUIN INI
const apiKey = "sk-abc123xyz789"

Selalu pakai environment variables:

// INI YANG BENAR
const apiKey = process.env.API_KEY

Dan simpan key-nya di file .env (untuk development) atau di dashboard Cloudflare Workers (untuk production).

Checklist API Key Safety

[ ] File .env sudah ada di .gitignore?
[ ] Nggak ada API key yang hardcoded di file code manapun?
[ ] Kalau pakai Cloudflare Workers — keys sudah di Workers Secrets?
[ ] Sudah cek: git log nggak mengandung API key yang pernah ke-commit?

Kalau Udah Terlanjur?

Kalau kamu nggak sengaja commit API key ke GitHub:

  1. LANGSUNG revoke key-nya di dashboard layanan terkait (Supabase, OpenAI, dll). Jangan buang waktu hapus dari git dulu — revoke key SEKARANG.
  2. Generate key baru.
  3. Hapus dari git history (minta bantuan mentor kalau belum tahu cara-nya).
  4. Commit ulang tanpa key.

Key yang sudah ke-push ke GitHub — walau cuma 1 detik — harus dianggap compromised. Nggak cukup cuma hapus. Harus di-revoke dan ganti baru.


Ringkasan: 3 Hal Non-Negotiable

#ApaKapanGimana
1DokumentasiSetiap JumatUpdate Obsidian vault: apa berubah, kenapa, gimana
2BackupSebelum operasi destructiveExport data → simpan → baru jalankan perintah
3API Keys amanSelaluEnvironment variables, .gitignore, never hardcode

Ini bukan nice-to-have. Ini bukan “nanti aja kalau udah jalan.” Ini dari hari pertama.

Satu kelalaian di salah satu dari 3 hal ini bisa bikin berminggu-minggu kerja kamu hilang dalam hitungan detik. Nggak worth the risk.


Latihan: Setup Sekarang

  1. Obsidian: Buat note baru di vault kamu: “Product Docs - [Nama App Kamu]”. Copy-paste template mingguan di atas. Isi dengan kondisi sekarang.
  2. Gitignore: Buka (atau buat) file .gitignore di project kamu. Pastikan ada:
    .env
    .env.local
    .env.production
  3. Cek: Apakah ada API key yang hardcoded di code kamu? Search string “sk-”, “key=”, “secret=” di semua file. Kalau ada — pindahkan ke .env sekarang.

Baca Juga