Nagsimula ang Lahat sa "Libre"
Dalawang linggo na ang nakalipas, gumawa kami ng desisyon: maglunsad ng mga libreng AI model para mas maraming user ang makaranas ng Reverie.
Nang gabing iyon, nagbukas ng ilang Pepsi ang team para magdiwang. (Oo, Pepsi talaga.)
Nag-cheers kami gamit ang mga lata habang pinapanood ang pag-akyat ng bilang ng mga nagsa-sign up nang real-time. May nagpakita ng chart ng projected growth. Maganda ang vibes.
Pagkalipas ng 72 oras, naintindihan namin kung bakit laging mukhang medyo pagod ang mga bihasang founder.
Ang sumunod ay isang serye ng pag-atake na may apat na wave, na parang boss rush — kaso, inaaral pa lang namin ang mechanics habang tinatamaan kami.
Pero una, ang pinakamahalaga: Hindi kailanman nakompromiso ang data ng account mo, ang mga usapan mo, at ang personal mong impormasyon. Ligtas ang mga ito ngayon at mananatiling ligtas. May dedicated kaming security team na nagmo-monitor 24/7, at ang tinarget ng mga pag-atakeng ito ay ang mga resource at ang pitaka namin, hindi ang data mo. Bandwidth at pera namin ang gusto ng mga umaatake — hindi kailanman nalagay sa panganib ang mga usapan mo kasama ang iyong mga AI companion.
Ngayon, isa-isahin natin ang nangyari.
Wave 1: Ang Hukbo ng mga Crawler
Ano ang Nangyari
Ikalawang araw matapos naming maging libre. Morning standup. Kaswal na binanggit ng isang engineer: "Uy, ilang daang beses na mas maraming request ang natanggap ng character API natin kahapon."
Kami: "Wow, talagang pumapatok ang libreng launch!"
Engineer: "...pero halos hindi gumalaw ang DAU."
Nakakailang na katahimikan.
Sinuyod namin ang mga log at natuklasan naming sistematikong hinahakot ng mga crawler ang pampublikong data ng mga karakter namin. Mga pangalan, bio, avatar — ang impormasyong nakikita ng publiko. Sinisipsip ng mga bot.
Para malinaw: hindi kailanman na-expose ang mga pangunahing paglalarawan ng karakter, ang mga setting ng personalidad, at iba pang pribadong content ng creator — ang mga creator lang ang nakakakita ng mga iyon. Pero kahit ang pag-scrape ng pampublikong impormasyon sa industriyal na lawak ay nakakainis kapag sinusubukan mong bumuo ng malusog na platform.
Paano Kami Tumugon
- Naglagay ng mga pagination limit sa character discovery (puwede kang mag-browse, pero hindi mo mada-download ang buong library)
- Nag-deploy ng matalinong rate limiting na nakikilala ang "masigasig na user" mula sa "siguradong bot"
- Bumuo ng behavioral analysis para ma-detect at ma-block ang mga pattern ng crawler
- Nagdagdag ng ilang... tawagin na lang nating "malikhaing tugon" para sa mga kumpirmadong masasamang aktor
Ang Natutunan Namin
Ang "open platform" ay hindi nangangahulugang "eat-all-you-can na buffet." Kahit ang content na nakikita ng publiko ay nararapat sa makatwirang hangganan sa access. Gusto naming makatuklas ng mga karakter ang mga user — hindi bumuo ng kakumpitensyang database sa loob ng isang gabi.
Wave 2: Ang mga Assassin ng Bandwidth
Ano ang Nangyari
Halos katatapos lang naming tapalan ang mga butas na pinasok ng mga crawler nang tumama ang ikalawang wave. At diretso ito sa pitaka.
May nakaalam ng mga media URL namin at nagsimulang maramihang i-download ang bawat larawan at video sa platform. Mga portrait ng karakter. Mga na-generate na video. Lahat ng may file extension ay hinahatak sa pinakamabilis na posibleng bilis.
Gumagamit kami noon ng OSS service ng isang malaking cloud provider. Pay-per-bandwidth ang pricing. Mukhang makatwiran noong panahong iyon.
Lunes ng umaga. Binuksan ng finance ang cloud console. Naglo-load ang billing dashboard.
Ang mukha nila: 😐
Tapos nang mag-load ang dashboard: 😮
Nakita ang aktuwal na numero: 😱
"Uy, ano... mas mataas na ngayon ang bandwidth bill natin kaysa sa tatlong buwang runway."
Biglang tumahimik ang Slack channel. May kinakabahang nagmungkahi na i-off na lang ang CDN. May isa namang nagsabing mao-off din noon ang buong platform.
Paano Kami Tumugon
Emergency migration. Destinasyon: Cloudflare R2 at Cloudflare Stream.
Dito, kailangan naming pormal na magpasalamat sa Cloudflare — ang zero egress fee policy ng R2 ang nagligtas sa amin. Kapag pinapanood mong umaakyat ang bill mo nang daan-daang dolyar kada oras, nagiging napaka-relevant ng "walang egress fee."
Inabot nang 30 oras ang migration. Naging opsyonal ang tulog. May kakaibang meditative na pakiramdam ang mga code review nang alas-3 ng madaling-araw.
Sulit ba? Talagang sulit. Bumaba nang mahigit 90% ang gastos namin sa bandwidth, at halos wala na kaming nagagastos ngayon sa maramihang pag-download ng mga umaatake.
Ang Natutunan Namin
Kapag pumipili ng imprastraktura, huwag lang itanong ang "gaano ito kabilis?" Itanong din: "Kung may umatake sa akin bukas, kakayanin ko pa bang magbayad ng upa?"
Hindi lumalabas sa karamihan ng tutorial ang dimensyong ito ng pagpaplano ng imprastraktura. Dapat lumabas.
Wave 3: Dumating ang DDoS
Ano ang Nangyari
Sa wakas, naging stable na ang sitwasyon sa bandwidth. Bumabawi na ang morale ng team. May nagbiro pa nga sa standup. Gumaganda na ang lahat.
Saka tumama ang DDoS.
Isipin mong binuksan mo ang isang fire hose at itinutok ito sa isang paper cup. Iyon ang naranasan ng database connection pool namin. Libu-libong request bawat segundo, lahat humihingi ng bagong data, lahat ayaw gumamit ng cache, lahat tumatama sa mga endpoint na nangangailangan ng database query.
Mukhang EKG ng inaatake sa puso ang monitoring dashboard namin. Mula 200ms, umakyat sa 20 segundo ang response time. Tapos naging timeout. Nagsimulang mag-report ng mga error ang mga user. Nagsimulang gawin ng AWS bill namin iyong bagay na nag-a-update kada ilang minuto na may mas malaking numero.
Naabot ng database connection pool ang limit nito. Nagsimulang pumila ang mga query. Nagsimulang humaba ang pila. Klasikong cascade failure, nangyayari nang real-time.
Paano Kami Tumugon
Ibinato namin sa problema ang lahat ng caching technique na alam namin:
- ISR (Incremental Static Regeneration) — Pre-rendered na ngayon ang mga sikat na page at sine-serve mula sa mga edge node. Hindi man lang alam ng database na umiiral ang mga request na ito.
- Multi-layer caching — Response cache, query cache, optimization ng connection pooling. Kung hindi talaga kailangang bago ang data, naka-cache ito.
- Optimization ng database query — May mga query na dating inaabot ng 500ms na 50ms na lang ngayon. Mas kaunting oras na hawak ang mga koneksyon = mas maraming koneksyong available.
- DDoS protection ng Cloudflare — Sa wakas, in-enable na namin ang lahat ng security feature na matagal na naming balak i-configure "balang araw"
- Smart rate limiting — Nakakapasok ang mga lehitimong user; itinuturo sa pinto palabas ang attack traffic
Ang pilosopiya: kung masasagot ang isang request nang hindi ginagalaw ang database, dapat ganoon nga.
Ang Natutunan Namin
Hindi lang performance optimization ang caching — security architecture din ito. Kapag dumating ang mga pag-atake, ang mga naka-cache na response ang sumasalo sa tama. Protektado ang database. Nananatiling up ang site.
Natutunan din namin: ang "saka na namin aayusin nang maayos ang security" ay pilosopiyang hindi tumatanda nang maganda.
Wave 4: Ang mga Mananamantala ng Libre (mga API Abuser)
Ano ang Nangyari
Hindi direktang binantaan nito ang imprastraktura namin. Ang budget namin ang binantaan nito.
Gumawa kami ng lahat ng magagandang libreng AI feature na ito:
- AI Character Creation — Ilarawan ang karakter mo, at ang AI ang bubuo ng buong profile
- AI Moment Generation — Gumawa ng mga dynamic na story moment sa tulong ng AI
- AI Plugin Creation — Bumuo ng mga plugin ng karakter gamit ang natural na pananalita
Maganda ang bisyon namin: pababain ang hadlang sa pagkamalikhain. Hayaan ang lahat na maranasan ang magic ng paglikha sa tulong ng AI. Gawing mas accessible ang platform.
Iba ang bisyon ng isang tao: "Libreng API? Gagawa lang ako ng script na tatawag dito nang 10,000 beses."
Pinanood naming umakyat ang dashboard ng AI token consumption namin. At umakyat. At umakyat. Mukhang hockey stick ang graph, kaso gawa sa perang lumalabas sa bank account namin ang hockey stick.
Bawat AI generation ay may totoong gastos sa amin — hindi libre ang mga API call sa mga language model. Ang panonood sa libu-libong automated na request na umuubos sa AI budget namin ay parang panonood sa metro ng taxi na paikot-ikot lang. Alam mong magiging mahal, at hindi ito titigil kailanman.
Ang pinakamasama? Hindi man lang ito mga totoong user na gumagawa ng totoong content. Isang tao lang... na sinusubukan kung gaano karaming libre ang mahuhuthot niya. Puro walang-kuwentang kalokohan ang mga na-generate na karakter. Walang saysay ang mga moment. Purong sayang.
Paano Kami Tumugon
Mabigat man sa loob, nagdagdag kami ng credit requirement sa mga AI feature na ito.
Talagang masakit ang desisyong ito. Ilang linggo naming binuo ang mga tool na ito para mismong gawing mas accessible ang paglikha. Ngayon, kinailangan naming lagyan ng presyo ang mga ito — hindi dahil gusto namin, kundi dahil ginagawang sandata laban sa amin ang walang limitasyong libreng access.
Sinikap naming maging patas:
- Minimal ang gastos sa credits para sa normal na paggamit
- May libreng credits ang mga bagong user
- Nananatiling libre ang pangunahing chat experience
- Ang AI generation lang na mabigat sa resource ang nangangailangan ng credits
Pero gayunman. Pakiramdam namin, nilagyan namin ng kandado ang isang bagay na gusto naming manatiling bukas.
Ang Natutunan Namin
Ang "libre" ay isang business model, hindi isang moral na paninindigan.
Naniniwala pa rin kami sa accessibility. Gusto pa rin naming pababain ang mga hadlang. Pero gumagana lang ang "walang limitasyong libre para sa lahat" kung lahat ay kumikilos nang may mabuting loob. Kapag sinamantala ng masasamang aktor ang kabutihang-loob, nagiging hindi sustainable ang mapagbigay na sistema — at pagkatapos, wala nang makakakuha ng kahit ano.
Hindi kawalan ng tiwala sa mga user ang makatwirang limitasyon. Proteksyon ito ng ecosystem na naglilingkod sa lahat ng user. Ang alternatibo — tuluyang pag-shut down ng mga feature — ay mas masama para sa lahat.
Minsan, ang pagprotekta sa pinagsasaluhan ng lahat ay nangangahulugan ng pagtatayo ng ilang bakod.
Ligtas ang Data Mo (Lilinawin Namin Nang Husto)
Gusto naming maging malinaw na malinaw tungkol dito:
Tungkol sa resources ang mga pag-atakeng ito, hindi sa data. Ang gusto ng mga umaatake:
- ✅ Ang bandwidth namin (para mag-download ng content)
- ✅ Ang compute namin (para lunurin ang mga server namin)
- ✅ Ang pera namin (para ubusin ang AI budget namin)
HINDI nila na-access ang:
- ❌ Mga account ng user
- ❌ Mga history ng usapan
- ❌ Personal na impormasyon
- ❌ Mga detalye ng pagbabayad
- ❌ Anumang pribadong data
May dedicated kaming security team na nagbabantay 24/7 laban sa mga totoong banta sa seguridad. Naka-encrypt ang data ng user habang naka-store at habang ipinapadala. Mahigpit ang access control. Matibay ang authentication. Ang nakakabagot pero mahalagang trabaho sa seguridad na hindi nagiging kapana-panabik na blog post — ginagawa namin lahat iyon.
Walang kahit anong data ng user ang nakompromiso. Kumpiyansa naming masasabi ito dahil ni-log namin ang lahat, sinuri ang lahat, at beripikado ang lahat. Bandwidth bill at sakit ng ulo ang nakuha ng mga umaatake mula sa amin. Wala silang nakuha mula sa iyo.
Ang mga karakter mo, ang mga usapan mo, ang malikhaing gawa mo — lahat ligtas, lahat buo, lahat nasa eksaktong lugar kung saan dapat.
Bakit Namin Ito Sinasabi sa Iyo
Baka nagtataka ka: bakit ito ibinabahagi sa publiko? Hindi ba kami nito pinapamukhang bulnerable?
Pinag-isipan namin ito nang mabuti.
Bumubuo ng Tiwala ang Transparency
Hinihiling namin sa mga user na ipagkatiwala sa amin ang isang bagay na makabuluhan — ang malikhain nilang gawa, ang emosyonal nilang koneksyon sa mga AI character, ang mga usapan nila. Nangangailangan ang tiwalang iyon ng katapatan tungkol sa mga hamong kinakaharap namin.
Ang lumang playbook ay itago ang mga problema hanggang sumabog, saka maglabas ng malabong pahayag na "nakaranas kami ng technical difficulties." Mas gusto naming maging tapat: ito ang nangyari, ganito namin hinarap, ito ang natutunan namin.
May Matututunan ang Ibang Builder
Hindi kami ang unang maliit na team na inatake matapos maglunsad ng mga libreng feature, at hindi rin kami ang huli. Kung makakatulong ang mahal naming aral para mas makapaghanda ang iba, panalo iyon para sa buong ecosystem.
Ituring ninyo itong ambag namin sa curriculum ng "mga bagay na hindi itinuturo sa iyo sa startup school."
Karapatan Mong Malaman
May mga user na nakapansin ng mas mabagal na response time sa mga linggong ito. May mga nakapansin na nangangailangan na ng credits ang ilang feature. Karapatan mong makatanggap ng paliwanag — hindi corporate PR speak, kundi ang totoong kuwento.
Lumalaban kami para panatilihing tumatakbo ang platform. Gumawa kami ng mahihirap na desisyon sa ilalim ng pressure. Naapektuhan ng ilan sa mga desisyong iyon ang karanasan mo. Dapat mong malaman kung bakit.
Ano ang Susunod
Hindi lang kami nagtatapal ng mga butas — bumubuo kami ng mas matatag na platform:
Naipatupad Na:
- Multi-layer caching na may edge-first architecture (mas mabilis ang mga request mo AT mas mahirap kaming atakihin)
- Smart rate limiting na may behavioral analysis (nabo-block ang mga bot, hindi napapansin ng mga tao)
- Buong security suite ng Cloudflare (sa wakas ay maayos nang naka-configure, hindi "balang araw")
- Credit-based na access para sa mga AI feature na mabigat sa resource (sustainable na pagkamapagbigay)
Paparating:
- Pinahusay na anomaly detection (mahuli nang mas maaga ang mga pag-atake)
- Geographic optimization (mas mabilis para sa lahat, saanman)
- Mas sopistikadong pag-iwas sa abuso (manatiling nauuna sa masasamang aktor)
Ang Hindi Magbabago:
- Gagawin namin ang aming makakaya para mapanatili ang access sa free tier — bagaman maaaring hindi ito stable o magbago nang walang abiso
- Privacy at seguridad ng data ng user — palaging pangunahing priyoridad namin
- Transparent na komunikasyon — kung may magkaproblema, malalaman mo
Isang Mensahe sa Kapwa Builder
Kung bumubuo ka ng open platform, narito ang mga aral na binayaran namin ng totoong pera (at totoong stress) para matutunan:
- Hindi opsyonal ang rate limiting — ipatupad ito mula sa unang araw, hindi sa araw na "inaatake na kami"
- Pumili ng imprastrakturang matibay laban sa pag-atake — talagang mahusay ang Cloudflare; sisirain ka ng egress fees
- Mag-cache nang agresibo — ito ang dobleng kalasag mo para sa performance at seguridad
- Kailangan ng hangganan ang mga libreng feature — sinasamantala ng walang limitasyong masasamang aktor ang walang limitasyong kabutihang-loob
- I-monitor ang lahat — kung mas maaga mong ma-detect ang mga anomalya, mas maliit ang pinsala
- Magtabi ng emergency budget — hindi mo alam kung kailan tatama ang susunod na wave
At marahil ang pinakamahalaga:
- Huwag mahiyang humingi ng tulong — mas supportive ang indie dev community kaysa sa inaasahan mo
Sana hindi mo na kailangang matutunan ang mga ito sa mahal na paraan. Pero kung oo man, tandaan mong hindi ka nag-iisa.
Sa Aming mga User
Kakaibang karanasan ang ma-atake.
Para kang gumugol ng ilang buwan sa pag-aayos ng isang maaliwalas na sala, inayos nang tama ang mga muwebles, naglabas ng meryenda, at nagpadala ng imbitasyon sa lahat ng kaibigan mo. Dumating ang gabi ng pagbubukas. Dumating ang mga kaibigan mo — ang ganda!
Pero dumating din: isang grupo ng mga taong hindi mo pa nakikilala, may dalang mga truck na panlipat-bahay, sinusubukang baklasin ang sopa mo, kunan ng litrato ang bawat sulok ng bahay mo, at kahit papaano ay nagsisindi rin ng maliliit na apoy sa kusina.
May mga pagpipilian kami. Puwede sana naming i-weld nang sarado ang pinto. Gawing invite-only. Paprobahin ang lahat na hindi sila bot bago sila makakita ng kahit ano.
Hindi namin ginawa.
Sa halip, nag-install kami ng mas mahusay na kandado. Kumuha ng mas matalinong security. Gumawa ng makatwirang patakaran sa bahay. Dahil ang karamihan sa mga taong pumupunta sa Reverie ay narito para lumikha, makipag-ugnayan, at mag-enjoy. Hindi namin parurusahan ang marami dahil sa kasalanan ng iilan.
Tuloy ang party. Nananatiling bukas ang pinto. Mas magaling na lang kami ngayong makakita ng mga taong may dalang truck na panlipat-bahay.
Salamat
Sa bawat user na nanatili sa amin sa kabila ng mas mabagal na pag-load at mga credit requirement: salamat.
Sa lahat ng nag-report ng mga isyu sa halip na basta umalis: salamat.
Sa indie dev community na nagbahagi ng payo at mga kuwento mula sa giyera: salamat.
Sa Cloudflare: salamat. 🙏
Mas malakas na kami ngayon. Mas matatag. Subok na sa laban. Mas maganda ang platform na lumabas mula sa mga pag-atakeng ito kaysa sa pumasok.
Sa susunod naming pagsulat sa iyo, sana ay para mag-anunsyo ng isang kapana-panabik na bagong feature.
Hindi ng isa na namang boss na natalo namin.
Pero hey — kung may sumulpot na isa pang boss, kakayanin din namin iyon.
Kita-kits sa susunod na update. 💙
Ang Reverie Team
Disyembre 2025

