Notes on building Tenang. Catatan seputar membangun Tenang.
Updates, decisions, and the occasional detour — written as they happen. Update, keputusan, dan sesekali cerita di luar rencana — ditulis apa adanya.
-
What Pro actually adds Apa yang sebenarnya ditambahkan Pro
The daily check-in, journal, and garden stay free, permanently. Here's the exact, short list of what Pro adds on top — no vague premium-tier language. Check-in harian, jurnal, dan taman tetap gratis, selamanya. Ini daftar persis dan singkat soal apa yang ditambahkan Pro — bukan "fitur premium" yang samar.
2026-10-30 -
Payments are verified with the store, never trusted from the app Pembayaran diverifikasi lewat toko, tidak pernah dipercaya dari aplikasi
The app's own idea of whether you paid is never the final word. The store confirms the purchase, RevenueCat's server validates it, and a separate handler writes the record Tenang trusts. Anggapan aplikasi sendiri soal apakah kamu sudah bayar bukan kata akhir. Toko mengonfirmasi pembelian, server RevenueCat memvalidasinya, dan handler terpisah menulis catatan yang dipercaya Tenang.
2026-10-30 -
The App Store launch guide: five rejection risks to remove before you submit Panduan peluncuran App Store: lima risiko penolakan yang perlu dihapus sebelum kamu submit
A concise pre-submission guide for founders shipping a real iOS product: the five avoidable rejection risks and the launch checks that keep review moving. Panduan singkat sebelum submit untuk founder yang mengirim aplikasi iOS sungguhan: lima risiko penolakan yang dapat dihindari dan pemeriksaan peluncuran yang menjaga proses review tetap berjalan.
2026-09-25 -
Your data is walled off, not just hidden Datamu disekat, bukan cuma disembunyikan
Most apps trust their own server code to keep one account from seeing another's rows. Tenang's database enforces that rule itself, so a bug in the app can't leak it. Kebanyakan aplikasi mengandalkan kode servernya sendiri agar satu akun tidak bisa melihat data akun lain. Basis data Tenang menegakkan aturan itu sendiri, jadi bug di aplikasi tidak bisa membocorkannya.
2026-08-08 -
Why there's no social feed Kenapa tidak ada linimasa sosial
No feed, no followers, no leaderboard. Not a feature we haven't built yet — one we deliberately left out. Tidak ada linimasa, tidak ada pengikut, tidak ada papan peringkat. Bukan fitur yang belum sempat dibuat — tapi yang sengaja tidak dibuat.
2026-08-08 -
Why the garden doesn't punish you for missing a day Kenapa taman ini tidak menghukummu karena melewatkan sehari
Most streak mechanics punish you the moment you stop. Tenang's garden grows from every check-in you've ever done and never takes that away. Kebanyakan mekanisme streak menghukummu begitu kamu berhenti. Taman di Tenang tumbuh dari setiap check-in yang pernah kamu lakukan dan tidak pernah mengambilnya kembali.
2026-08-08 -
Why there are only four tabs Kenapa tabnya hanya ada empat
Most apps grow a nav bar one feature at a time until it's crowded. Tenang has four tabs on purpose, and at least one feature was deliberately kept off it. Kebanyakan aplikasi membesarkan bilah navigasinya satu fitur demi satu fitur sampai penuh sesak. Tab di Tenang sengaja dibuat empat, dan setidaknya ada satu fitur yang sengaja tidak dimasukkan.
2026-08-08 -
Why I built Tenang Kenapa saya membangun Tenang
I couldn't find anything private enough — so I built it myself, with privacy as the starting point instead of an afterthought. Saya tidak menemukan aplikasi yang cukup privat — jadi saya membangunnya sendiri, dengan privasi sebagai titik awal, bukan tambahan belakangan.
2026-08-08 -
What happens on two devices Apa yang terjadi kalau pakai dua perangkat
Syncing between two devices is invisible almost all the time. There's exactly one moment it stops being invisible and asks you something directly. Sinkronisasi antara dua perangkat nyaris selalu tidak terlihat. Ada tepat satu momen di mana itu berhenti tersembunyi dan bertanya langsung padamu.
2026-08-08 -
How it slows down attackers, not you Cara ini memperlambat penyerang, bukan dirimu
Login and unlock limits exist to stop guessing scripts, not to punish someone who typoed their own passphrase. Here are the actual numbers. Batas login dan buka kunci ada untuk menghentikan skrip penebak, bukan menghukum orang yang salah ketik passphrase-nya sendiri. Ini angka-angka sebenarnya.
2026-08-08 -
No push notification server Tidak ada server notifikasi push
A reminder telling you to check in usually comes from a server somewhere. Tenang's reminders are written and scheduled entirely on your phone. Pengingat yang menyuruhmu check-in biasanya datang dari sebuah server. Pengingat di Tenang ditulis dan dijadwalkan sepenuhnya di ponselmu sendiri.
2026-08-08 -
Lock, export, wipe: your data, plainly Kunci, ekspor, hapus: datamu, apa adanya
These three controls don't get softened, gamified, or buried. Each one tells you the real tradeoff before you commit to it. Ketiga kontrol ini tidak dilunakkan, tidak dibuat seperti game, dan tidak disembunyikan. Masing-masing memberitahumu risiko sebenarnya sebelum kamu melanjutkan.
2026-08-08 -
How privacy actually works in Tenang Cara kerja privasi di Tenang
Not a promise — the architecture. Your journal encrypts on your device, the core app works without an account, and syncing only ever moves already-encrypted data. Bukan sekadar janji — begini arsitekturnya. Jurnalmu terenkripsi di perangkatmu sendiri, aplikasi inti bisa dipakai tanpa akun, dan sinkronisasi hanya memindahkan data yang sudah terenkripsi.
2026-08-08 -
Crash reports can't see your journal either Laporan crash pun tidak bisa melihat jurnalmu
Crash reporting is opt-in, off in development, and built to be blind to content — not just promised to look away. Laporan crash bersifat opsional, mati saat pengembangan, dan dirancang agar buta terhadap isi konten — bukan sekadar berjanji untuk tidak melihatnya.
2026-08-08 -
Why it's bilingual ID/EN, always Kenapa selalu dwibahasa ID/EN
Every string in Tenang exists as one dictionary entry with both an Indonesian and an English half — not an English app translated after the fact. Setiap teks di Tenang ada sebagai satu entri kamus dengan bagian Indonesia dan Inggris sekaligus — bukan aplikasi berbahasa Inggris yang diterjemahkan belakangan.
2026-08-08 -
Analytics only turns on if you say yes Analitik hanya menyala kalau kamu bilang ya
Most apps track you first and ask forgiveness with a banner later. Here, nothing is sent to analytics until you actually accept. Kebanyakan aplikasi melacakmu lebih dulu dan minta maaf belakangan lewat sebuah banner. Di sini, tidak ada yang dikirim ke analitik sampai kamu benar-benar menyetujuinya.
2026-08-08 -
How this blog works Cara kerja blog ini
Every post here starts as a Markdown file — no code, no deploy step beyond one command. Setiap tulisan di sini dimulai dari file Markdown — tanpa kode, tanpa langkah deploy selain satu perintah.
2026-08-06