# Bizone Web Handoff Dokumen ini menyimpan konteks kerja proyek supaya engineer atau AI lain bisa lanjut tanpa mengulang discovery dari nol. ## Ringkasan - Project: website marketing `www.bizone.id` - Stack: Next.js 16 App Router, React 19, TypeScript, Tailwind v4 - Repo: `https://git.iptek.co/wirabasalamah/BizOne-web.git` - Branch utama: `main` ## Struktur penting - `src/app`: routes Next.js - `src/components`: komponen reusable - `src/lib/site.ts`: data brand, kontak, alamat, link peta - `src/app/api/contact/route.ts`: endpoint submit form kontak - `src/app/api/contact/captcha/route.ts`: endpoint captcha - `src/lib/mailer.ts`: SMTP transport - `src/lib/contact.ts`: captcha signing, rate limit, helper IP - `public/bizone.png`: logo utama - `public/favicon.ico`: favicon utama - `bizone-privacy-policy.md`: source konten privacy policy - `bizone-terms-and-conditions.md`: source konten terms - `bizone-website-content.md`: source copy marketing ## Yang sudah dikerjakan - Website diubah dari kumpulan HTML referensi menjadi Next.js app. - Halaman aktif: - `/` - `/features` - `/solutions` - `/about` - `/contact` - `/privacy-policy` - `/terms-and-conditions` - Header memakai `bizone.png`. - Favicon memakai `public/favicon.ico`. - Navigation aktif memakai underline pada text aktif. - Halaman kontak: - form bisa diisi - submit ke backend internal - kirim email ke `info@bizone.id` - SMTP `mail.bizone.id:465` - proteksi captcha sederhana - honeypot field - rate limit in-memory dasar - `support@bizone.id` sudah dihapus dari tampilan website. - Alamat kantor sudah diisi dari referensi `iptek.co/contact`. - Peta kantor sudah ditambahkan ke halaman kontak. - Privacy policy sudah disinkronkan dengan `bizone-privacy-policy.md`. ## Kredensial dan env Jangan commit secret baru ke repo. Environment yang dipakai app: ```env SMTP_HOST=mail.bizone.id SMTP_PORT=465 SMTP_USER=mailer@bizone.id SMTP_PASS=... CONTACT_TO_EMAIL=info@bizone.id CONTACT_FROM_EMAIL=mailer@bizone.id CAPTCHA_SECRET=... ``` File contoh: - `.env.example` File lokal developer: - `.env.local` ## Command lokal Dev: ```bash npm run dev ``` Build: ```bash npm run build ``` Production lokal: ```bash npm run start -- --port 3001 ``` ## Deploy server Target deploy yang sudah dibahas: - user Linux khusus: `bizone` - app directory: `/srv/bizone-web` - service name: `bizone-web` - app port: `3006` - reverse proxy: Nginx existing Update di server: ```bash sudo -u bizone -H bash -lc 'cd /srv/bizone-web && git pull origin main && npm install && npm run build' sudo systemctl restart bizone-web sudo systemctl status bizone-web ``` Contoh install SSL: ```bash sudo apt install -y certbot python3-certbot-nginx sudo certbot --nginx -d bizone.id -d www.bizone.id ``` ## Git Git user yang dipakai untuk commit lokal: - `Wira Irawan` - `wira.irawan@gmail.com` Remote origin: ```bash https://git.iptek.co/wirabasalamah/BizOne-web.git ``` ## Catatan operasional - `next dev` sempat crash setelah `.next` dibersihkan karena Turbopack cache issue. Untuk verifikasi stabil, `next start` production lebih aman. - CAPTCHA saat ini cukup untuk proteksi dasar, bukan proteksi kelas tinggi. - Rate limit masih in-memory. Kalau app dijalankan multi-instance atau direstart, counter akan reset. - Halaman legal masih hardcoded di route component. Jika sering berubah, lebih baik next step adalah render dari markdown source. ## Saran next step - Ganti captcha sederhana ke Cloudflare Turnstile atau reCAPTCHA. - Pindahkan legal pages agar dirender dari markdown source. - Tambahkan mobile nav menu jika nanti dibutuhkan. - Tambahkan analytics dan SEO metadata per halaman. - Buat script deploy otomatis seperti `deploy.sh`.