fullstack web-application featured

Portfolio & Showcase — Situs Ini

Portfolio yang mengirimkan artefak sungguhan, bukan tangkapan layar: setiap rilis Android membawa version code, ukuran berkas, minSdk, dan checksum SHA-256. API Go di Fly.io, antarmuka SvelteKit di Vercel.

fullstack live · build.amazthegreatape.fun · fly-io· go· postgresql· supabase
Screenshot From 2026-08-21 16-47-48
Fly.io Go PostgreSQL Supabase Svelte SvelteKit Vercel

Situs yang sedang Anda baca. Premisnya satu: sebuah portfolio sebaiknya menyerahkan berkas yang bisa diunduh dan diperiksa, bukan gambar dari berkas itu.

Dua deployable, satu database

  • Backend — Go 1.26, router chi, pgx/v5 dengan pool koneksi, migrasi goose yang ditanam di dalam binary, Supabase Storage lewat REST API, dan asisten DeepSeek yang dialirkan sebagai SSE. Berjalan di Fly.io region nrt (Tokyo).
  • Frontend — SvelteKit 2 dengan Svelte 5 runes, Tailwind v4, bits-ui, superforms + zod. Berjalan di Vercel dengan function dipatok ke hnd1 (Tokyo).

Supabase berada di ap-northeast-1. Ketiganya sengaja ditempatkan di Tokyo: sebelum dipatok, satu permintaan SSR menyeberangi Pasifik dua kali.

Hal-hal yang ternyata tidak sesederhana dugaan

Unggah APK tidak boleh lewat memori. Berkas dibaca lewat MultipartReader() dan dititipkan ke berkas sementara sambil io.TeeReader menyuapi sha256.New(). Pada APK 45 MiB, puncak RSS terukur 23.364 kB dan checksum-nya cocok dengan sha256sum lokal.

Unggahan berjalan langsung dari browser ke Go, tidak lewat form action SvelteKit — Vercel membatasi badan permintaan serverless di 4,5 MB, sehingga setiap APK sungguhan akan gagal di produksi meski berhasil di lokal.

Prompt asisten harus identik byte demi byte antar permintaan, karena prefix caching DeepSeek mensyaratkan kecocokan awalan yang persis. Tidak ada jam, tidak ada urutan map yang acak, dan ada test yang memastikan dua kali pembangunan menghasilkan keluaran yang sama.

Pooler Supabase memaksa QueryExecModeDescribeExec. Mode bawaan pgx memakai prepared statement bernama yang hilang saat koneksi logis berpindah.

Yang belum ada

Tidak ada CI. Tidak ada test end-to-end. Test Go hanya menutup pembangun prompt, parser aksi UI, pembuat slug, dan validasi domain; sisanya diperiksa dengan curl terhadap deployment yang berjalan.

started 19 Aug 2026 · updated 20 Aug 2026