Catatan

Blog

Catatan tentang frontend, SEO, AI, analitik, dan membangun produk nyata.

37 artikel

17 Agustus 202610 mnt baca

DeepSeek menaikkan harga — saya menemukan V4 Flash yang sama lebih murah dari tarif lamanya

Pada 17 Agustus, pengeluaran saya untuk DeepSeek API tiba-tiba menjadi sekitar lima kali lipat dari biasanya. Setelah itu saya menemukan dan menguji provider lain yang menjalankan checkpoint DeepSeek-V4-Flash-0731 yang sama dengan harga sekitar 45% lebih murah daripada tarif lama DeepSeek.

DeepSeekRunwareLLM APIInfrastruktur AIModel open-weight
13 Agustus 202613 mnt baca

Cara saya mengubah WebP animasi, GIF, dan APNG menjadi H.264 MP4 tanpa merusak bingkai atau pewaktuannya

Alur produksi saya merekonstruksi bingkai lengkap yang benar-benar dilihat pengguna, mempertahankan waktu sumber, memilih satu CFR untuk setiap MP4 akhir, menghitung bidang bersama terkecil tanpa memperbesar, mengodekan segmen H.264 yang kompatibel, menggabungkannya tanpa pengodean dengan kehilangan data kedua, dan memvalidasi baik berkas maupun pengirimannya melalui HTTP. Dalam satu proses yang diukur, 217 WebP animasi dengan total 1,49 GB menjadi satu H.264 MP4 berukuran 78,49 MB.

H.264FFmpegMP4WebP animasiGIFAPNGKompresi videoPemrosesan media
13 Agustus 202615 mnt baca

Dulu saya memberi peringatan untuk semuanya: mengubah gangguan error browser menjadi pemantauan produksi yang berguna

Sistem pelaporan frontend awal saya memperlakukan pemblokiran iklan, kegagalan GTM, AbortError, Script error yang minim informasi, dan kegagalan chunk Next.js yang nyata sebagai hal yang sama. Saya membangun ulang pemantauan berdasarkan kepemilikan, dampak pengguna, kualitas bukti, korelasi kejadian, dan pemulihan.

Pemantauan Error BrowserObservabilitas FrontendError JavaScriptPemantauan ProduksiNext.jsPerforma Web
13 Agustus 202618 mnt baca

Mengapa Tab Next.js Lama Rusak Setelah Deployment: HTML Usang, Chunk Hilang, dan Ketidakselarasan Versi

Setelah sebuah deployment, pemantauan produksi saya merekam kegagalan memuat chunk Next.js milik aplikasi sendiri. Log itu membuktikan kegagalannya, bukan penyebabnya. Artikel ini memakai insiden tersebut untuk membahas tab lama, HTML usang, aset /_next/static yang hilang, ketidakselarasan versi, retensi, deploymentId, urutan rollout, pemantauan, dan pemulihan terkontrol.

Next.jsDeploymentKetidakselarasan VersiCache WebKeandalan FrontendAset statis
13 Agustus 202612 mnt baca

Satu tik yang merusak CFR saya: mengapa 5580 bukan 5625 dan 3751 bukan 3750

Validator saya berulang kali menolak MP4 16 fps karena satu paket berdurasi 5580 tik, bukan 5625. Belakangan ia menemukan 3751 tik ketika 24 fps seharusnya tepat 3750. Dua kegagalan ini memaksa saya memisahkan penentuan waktu sumber, kuantisasi CFR, basis waktu MP4, PTS/DTS, multiplexing, dan validasi pada tingkat paket.

FFmpegH.264CFRStempel waktu videoPTS dan DTSValidasi MP4
13 Agustus 202612 mnt baca

Bagaimana Saya Memangkas Video Produksi dari ~280 MB menjadi ~50 MB dengan H.264

Satu video nyata dari sistem produksi turun dari sekitar 280 MB menjadi sekitar 50 MB setelah konfigurasi H.264 dibangun ulang dengan CRF 28, x264 veryslow, batas resolusi kelas 720p, laju bingkai yang benar-benar berguna, dan tuntutan dekoder yang wajar. Pada tahap sebelumnya, contoh yang sama sudah turun dari sekitar 350 menjadi 238 MB, dan pemeriksaan pustaka lama menunjukkan bahwa H.264 dengan laju beberapa megabit per detik memang umum.

H.264FFmpegx264Kompresi VideoKinerja SitusOptimasi Media
16 April 20266 mnt baca

Saya membangun Gitae untuk mendiagnosis gangguan website lebih dalam dari sekadar “up atau down”

Saya membangun Gitae untuk menjawab pertanyaan praktis: apakah website benar-benar tidak tersedia, atau masalahnya hanya lokal? Tool ini menggabungkan pengecekan VDS eksternal dari Moscow dan Helsinki dengan DNS, HTTPS/TLS, port, routing, IP, hosting, dan sinyal CMS, dengan memperlakukan setiap hasil sebagai petunjuk, bukan bukti mutlak.

GitaeDiagnostik websiteMonitoring websiteDNSSSLPingTraceroutePortHostingSEO
14 April 20265 mnt baca

Mengapa TypeScript bekerja sangat baik dengan Codex untuk software production

Untuk pekerjaan production, TypeScript memberi Codex sesuatu yang tidak bisa digantikan prompt bagus: kontrak yang dapat diverifikasi mesin, feedback compiler yang cepat, dan jalur yang lebih aman untuk refactor besar.

TypeScriptCodexCoding AIPengiriman softwareJavaScriptWorkflow developer
6 April 20264 mnt baca

Saya Membuat Jurfi.com: Studio Browser untuk Draf Hukum yang Terstruktur

Saya membuat Jurfi.com untuk mengubah formulir dan template menjadi draf kerja hukum yang terstruktur di browser, menyimpan draf secara lokal, dan menjadikan peninjauan bagian yang jelas dari proses—tanpa mengklaim bahwa perangkat lunak dapat menggantikan pengacara.

JurfiJurfi.comDokumen hukumLegalTechSaaSDraft hukumAlat berbasis browser
5 April 20264 mnt baca

Pendapatan SaaS Pertama Saya: Apa yang Sebenarnya Dibuktikan oleh Satu Pembayaran

Pembayaran pertama dari produk SaaS yang saya bangun sendiri nilainya kecil, tetapi mengubah kualitas bukti yang saya miliki. Inilah yang bisa divalidasi oleh satu transaksi, yang belum bisa dibuktikannya, dan mengapa pengulangan lebih penting daripada milestone itu sendiri.

SaaSPendapatan pertamaIndie developerValidasi produkPengembangan produkPerjalanan startupPengalaman developer
3 April 20268 mnt baca

Bagaimana Saya Menggunakan Codex untuk Meninjau 15 Proyek Tanpa Melepas Kontrol Manual

Meninjau 15 proyek software dulu berarti tenggelam dalam pengecekan berulang. Codex membantu saya memeriksa bug, test, SEO, terjemahan, lokalisasi, dan konsistensi jauh lebih cepat, tetapi setiap temuan AI tetap saya anggap sebagai petunjuk, bukan keputusan, dan setiap perubahan harus saya verifikasi sendiri.

CodexAI codingCode reviewSoftware testingDeveloper workflowLokalisasiTechnical SEOProduktivitas developer
2 April 20267 mnt baca

Mengapa Saya Memakai 3–5% Terakhir Limit Codex di ChatGPT Plus untuk Tugas Engineering Besar — Pembaruan: pada musim panas 2026 cara ini berhenti bekerja

Pembaruan: pada musim panas 2026 workflow ini tidak lagi andal bagi saya. Pengukur 5 jam menghilang dari akun saya, hanya limit mingguan yang terlihat, dan tugas panjang bisa berhenti ketika limit mingguan habis.

CodexChatGPT PlusAlat coding AIWorkflow developerRekayasa perangkat lunakMigrasi TypeScriptPembersihan ESLintRefactorlimit penggunaan Codexpembaruan 2026
1 April 202610 mnt baca

Saya Menerbitkan 10.000 Artikel SEO dengan AI, Lalu Situs Saya Berakhir dengan Nol Halaman di Indeks Google

Publikasi massal dengan AI awalnya terlihat seperti jalan pintas: Google merayapi seluruh 10.000 URL artikel yang dibuat, tetapi hanya sekitar 1.000 halaman yang benar-benar terindeks, muncul di Search, dan menghasilkan trafik nyata. Setelah itu halaman-halaman tersebut ikut menghilang hingga seluruh situs mencapai nol halaman terindeks. Pengalaman ini mengubah cara saya memandang AI, SEO, terjemahan, dan kontrol editorial.

SEO AIAI generatifGoogle SearchKonten skala besarPengindeksanPenulisan berbantuan AISEO multibahasa
31 Maret 20266 mnt baca

Lima Tahun dengan MacBook M1 8/256GB: Kenapa Saya Belum Menggantinya

Saya membeli MacBook M1 versi dasar dengan memori 8GB dan SSD 256GB seharga sekitar 1.000 dolar, lalu memakainya sekitar 15 jam per hari untuk pengembangan software, pekerjaan media, menulis, belajar, dan side project. Lima tahun kemudian, batasannya jelas terlihat, tetapi saya mempertimbangkan upgrade karena workload saya berkembang—bukan karena mesinnya sudah tidak berguna.

MacBookAppleM1Apple SiliconPengembangan SoftwareUlasan Jangka PanjangUmur Hardware
30 Maret 20264 mnt baca

Saya menerjemahkan blog ke 20 bahasa dengan ChatGPT — lalu mulai mendapat traffic pencarian dari seluruh dunia

AI mengubah ekonomi publikasi multibahasa bagi saya. Dari blog satu bahasa, saya beralih ke artikel dalam hingga 20 bahasa, sehingga setiap versi lokal menjadi pintu masuk baru dari pencarian organik.

Lokalisasi AISEO multibahasaChatGPTNext.jsSEO internasionalBlog
27 Maret 20264 mnt baca

Saya Meluncurkan QRViz sebagai Generator QR Statis Gratis — dan Mengandalkan SEO untuk Distribusi

QRViz adalah generator kode QR statis berbasis browser, bukan platform kampanye. Saya meluncurkan qrviz.com sebagai generator kode QR gratis tanpa anggaran iklan, akuisisi berbayar, atau funnel monetisasi. Saya sepenuhnya mengandalkan SEO, sehingga distribusi menjadi ketidakpastian terbesar dari peluncuran ini.

Generator kode QRQrvizPeluncuran produkSEOProyek sampinganPengembangan webPengembangan produk
18 Februari 20264 mnt baca

Mengapa Mendapatkan Pelanggan Terasa Lebih Sulit daripada Membangun SaaS

Pelajaran langsung dari membangun SaaS: engineering memberi saya feedback yang jelas dan bisa diperiksa, sementara distribusi, positioning, messaging, dan retention membutuhkan loop yang berbeda dan jauh lebih sulit diprediksi.

Pertumbuhan SaaSAkuisisi pelangganMarketing produkBootstrappingBuild in publicDistribusi
17 Februari 20264 mnt baca

Saya Membangun Produk SaaS Sendirian. Saat Pembayaran Aktif, Pekerjaannya Berubah

Saya membangun produk ini sendirian pada malam hari, akhir pekan, dan hari libur. Begitu pembayaran aktif, bug, onboarding, moderasi, retensi, dan kepercayaan bukan lagi masalah untuk nanti, melainkan bagian dari mengoperasikan produk nyata.

SaaSPengembangan soloPeluncuran produkPaymentsReliabilityOperasi produk
22 Januari 20264 mnt baca

I Got 550 Views from One Image, Voiceover, and Subtitles: What Three Shorts Tests Actually Taught Me

A simple YouTube Short built from one static image, a voiceover, and subtitles reached 550 views. After three early tests, the useful lesson was not a proven formula, but a repeatable way to experiment without confusing a promising signal with proof.

YouTube ShortsContent ExperimentsShort-form VideoVideo EditingCapCutCreator Workflow
20 Januari 20265 mnt baca

Saya melihat hampir 6.000 lamaran pada satu lowongan Frontend di Moskow. Apa artinya — dan apa yang tidak bisa disimpulkan — tentang pasar TI Rusia

Pada akhir 2023, recruiter mengatakan kepada saya bahwa 300–500 pelamar per lowongan sudah tergolong banyak. Pada 20 Januari 2026, saya melihat posisi Frontend level menengah di Moskow mendekati 6.000 lamaran hanya dalam beberapa jam. Ini adalah pembacaan saya tentang sinyal yang benar-benar diberikan angka itu, batas kesimpulannya, dan cara saya menilainya sekarang sebagai kandidat.

KarierPasar kerja TIFrontendRusiaMoskowHiringPencarian kerja
1 Januari 20264 mnt baca

Bagaimana DeepSeek mengubah workflow Node.js saya: 4.000+ commit dalam enam bulan

Grafik GitHub saya pada 2025 berubah dari nyaris kosong menjadi lebih dari 4.000 commit pada paruh kedua tahun itu. Artikel ini membahas bagaimana AI coding mengubah workflow side project Node.js saya, kapan ia menghemat waktu, kapan ia salah, dan mengapa verifikasi tetap lebih penting daripada kecepatan menghasilkan kode.

Node.jsDeepSeekAI CodingDeveloper ProductivitySide ProjectsSoftware Engineering
30 Desember 20256 mnt baca

My First TikTok at 28: What a Vertical Product Demo Taught Me About Traffic

At 28, I posted my first TikTok and cross-posted the same product demo to Reels and Shorts. The useful lesson was not the view count: it was how much a 9:16 frame changes a desktop interface, and how to measure short-form traffic without confusing reach with acquisition.

TikTokProduct MarketingProduct DemosAnalyticsIndie Dev
16 November 20255 mnt baca

Saya Membeli Domain Berusia 25 Tahun: 1.000+ Request per Hari Masuk ke URL Mati

Setelah meluncurkan situs pada domain yang pertama kali terdaftar pada 2000, saya melihat lebih dari 1.000 request harian ke URL lama dan lebih dari 900 error di Yandex Webmaster dalam semalam. Ini yang benar-benar bisa saya buktikan, alasan saya memakai 410 secara terarah, dan cara saya mengaudit domain lama sekarang.

SEOHTTPDevOpsDomainWeb crawling
14 November 20255 mnt baca

Yandex sudah mengindeks 12.500 halaman, tetapi trafik dari Rusia nyaris nol: masalah Cloudflare yang saya lewatkan

Yandex sudah mengindeks 12.500 halaman, tetapi trafik dari Rusia nyaris nol. Saya mempersempit masalah ke jalur jaringan, mematikan proxy Cloudflare, memindahkan cache, kompresi, dan perlindungan dasar ke Nginx di VDS saya, lalu memulihkan aksesibilitas.

DevOpsSEONginxCloudflareJaringanInfrastruktur
27 Oktober 20255 mnt baca

Situs Next.js statis saya menerima ribuan vulnerability scan per hari. Nginx nyaris tidak terpengaruh

Log saya penuh probe yang mencari WordPress, backdoor PHP, .env, dan .git/config. Pada setup Next.js statis + Nginx saya, sebagian besar berakhir sebagai miss murah dan 404, sementara beban CPU tetap sama selama pengamatan. Inilah arti sebenarnya bagi keamanan situs statis—beserta batas kesimpulannya.

KeamananNext.jsNginxDevOpsHosting statisAttack Surface
27 Oktober 20254 mnt baca

Yandex Mengirim Trafik ke Situs Baru Saya Saat Google Nyaris Tidak Bergerak

Pada proyek baru yang sama, Google hanya menghasilkan sekitar 300 klik dalam periode panjang, sementara Yandex Webmaster menunjukkan kenaikan jelas, termasuk +500% klik. Yang penting adalah memisahkan apa yang benar-benar dibuktikan data dari apa yang masih berupa dugaan.

SEOGoogle SearchYandexGoogle Search ConsoleYandex WebmasterSEO Teknis
17 Oktober 20255 mnt baca

Yandex Mengindeks 4.278 Halaman Next.js Saya dalam Semalam — Apa yang Sebenarnya Terbukti

Yandex tiba-tiba mengindeks 4.278 halaman saya yang dibuat secara statis dengan Next.js. Itu adalah pencapaian teknis yang nyata, tetapi bukan bukti ranking atau traffic. Berikut hal yang benar-benar bisa disimpulkan tentang SSG dan programmatic SEO — dan hal yang tidak bisa.

SEONext.jsSSGYandexProgrammatic SEOIndexing
16 Oktober 20255 mnt baca

Bulan Pertama Saya Belajar SEO: 632 Pengunjung Organik dan Pemeriksaan Trafik Bot

Saya memakai side project pribadi untuk mempersiapkan inisiatif SEO yang lebih besar di tempat kerja. Setelah sebulan ada 632 pengunjung organik, tetapi satu hari dengan 83 pengunjung menunjukkan betapa mudahnya trafik mencurigakan dan artefak analytics mengubah cara kita membaca hasil.

SEOWeb AnalyticsTrafik BotYandex MetricaEksperimen SEO
6 Oktober 20253 mnt baca

Saya Hampir Mengabaikan Yandex Webmaster. Dua Minggu Kemudian Trafiknya Lebih Besar daripada Google

Saya membuat side project Next.js untuk berlatih sebelum proyek kerja yang sangat bergantung pada SEO. Dalam dua minggu pertama saya mencatat 58 pengunjung dari Google dan 200 dari Yandex, lalu belajar memisahkan traffic, indexing, dan diagnostics.

SEONext.jsGoogle SearchYandexSearch ConsoleIndexing
5 Oktober 20255 mnt baca

Yandex Metrica vs Google Analytics: Mengapa Setelah Seminggu Saya Lebih Memilih Metrica

Saya menjalankan Google Analytics dan Yandex Metrica secara bersamaan selama satu minggu di proyek baru. Metrica lebih sering saya gunakan terutama karena Webvisor dan session replay, tetapi itu adalah kesimpulan tentang workflow saya, bukan bukti bahwa satu platform lebih baik untuk semua orang.

Web AnalyticsUXSession ReplayYandex MetricaGoogle AnalyticsGA4
3 Oktober 20254 mnt baca

Yandex merayapi blog saya tanpa /en. Redirect 308 mencegah URL berakhir sebagai 404

Setelah menambahkan sekitar 3.000 halaman /en/blog/... ke sitemap, saya melihat Yandex mencoba jalur pasangannya di /blog/.... Redirect 308 yang sudah ada mencegah request tersebut berakhir di 404. Pelajaran utamanya bukan bahwa Yandex “merusak” sitemap saya, melainkan seberapa besar ketahanan yang bisa diberikan oleh lapisan redirect yang rapi.

SEOYandexSitemapRedirect 308SEO teknisCrawling
2 Oktober 20254 mnt baca

Dua situs baru melonjak di Google, lalu trafik turun sekitar 10× dalam beberapa hari

Dalam dua peluncuran berturut-turut, impresi Google langsung melonjak lalu trafik turun kira-kira sepuluh kali hanya beberapa hari kemudian. Polanya nyata; saya tidak bisa membuktikan bahwa penyebabnya adalah “Google honeymoon”.

SEOGoogle SearchSearch ConsoleTrafik organikSEO teknis
1 Oktober 20254 mnt baca

2.000 halaman hilang dari pencarian Yandex dalam semalam. Ini yang sebenarnya bisa saya simpulkan

Di Yandex Webmaster saya melihat 2.000 dari sekitar 8.000 halaman tidak lagi ikut dalam pencarian. Penurunan 25% memang mencolok, tetapi pelajaran terpenting adalah tidak menyamakan perubahan status pencarian yang terlihat dengan penyebab yang sudah terbukti.

SEOYandex WebmasterIndexingVisibilitas pencarianTechnical SEO
11 Juli 20252 mnt baca

Saya Mengajukan Lebih dari 10 Pertanyaan di MoscowJS 66 dan Memenangkan Dua Hadiah

Di MoscowJS 66 saya mengajukan lebih dari 10 pertanyaan saat talk tentang bot Telegram, LangChain.js, arsitektur site builder, dan pengujian tipe TypeScript. Dua pertanyaan dipilih sebagai yang terbaik dan saya pulang membawa dua hadiah.

AcaraJavaScriptTypeScriptAILangChain.jsKomunitasMoscowJS
23 Juni 20255 mnt baca

Yang Saya Bawa Pulang dari PiterJS #79: Monolit Legacy, FrontOps, Performa Web, dan Pertanyaan yang Lebih Baik

PiterJS #79 di St. Petersburg berfokus pada pemeliharaan sistem yang sudah ada: monolit legacy, FrontOps, dan metrik performa web. Saya pulang membawa catatan praktis, dua hadiah dari sesi Q&A, dan pengingat bahwa meetup offline paling bernilai ketika kita benar-benar ikut terlibat.

PiterJSJavaScriptFrontOpsDockerPerforma WebKomunitas
17 Juni 20256 mnt baca

I Launched a Next.js Blog in 21 Languages. Here’s What 439 Google Impressions Actually Told Me

In its first week, my 21-language Next.js blog recorded 439 Google impressions and 5 clicks. Later, 436 of 471 pages were indexed. The useful lesson was learning to separate visibility, indexing, and actual search performance.

Next.jsSEOI18nMultilingual SEOGoogle SearchWeb Development
7 Juni 20253 mnt baca

MoscowJS 65 setelah enam tahun bersama JavaScript: mengapa saya masih datang ke meetup lokal

Pada 5 Juni 2025 saya menghadiri MoscowJS 65 di T Bank. Empat talk membahas AI dari sudut berbeda, tetapi kesimpulan utama saya lebih sederhana: meetup lokal masih memberi sesuatu yang tidak sepenuhnya bisa digantikan oleh dokumentasi dan rekaman.

JavaScriptMoscowJSMeetupKomunitas developerAI