Drugi blogi
Torej, zgradil sem ta mali SaaS imenovan GrandpaCAD. Ideja je preprosta: moj dedek obožuje 3D tiskanje, vendar sovraži kompleksno programsko opremo za modeliranje. Z GrandpaCAD preprosto opišeš, kaj želiš, in AI izpluje 3D model. Preprosto.
Da bi zaračunaval za to, sem potreboval naročnine plus obračunavanje na podlagi uporabe za AI kredite. Enostavno, mar ne? Narobe.
Vsi to vprašajo. Poglej, prihajam iz Slovenije. Tukaj mora biti vsak posamezen račun "fiskalno verificiran." To pomeni integracijo z vladnim API-jem, ki je dokumentiran v 119-stranski PDF datoteki. Ne, ne hecam se. To je birokratska mora certifikatov, skriptov po meri in bolečine.
Da se izognem tem težavam, sem potreboval "Merchant of Record" (MoR). Oni uredijo vse davčne in izdajanje računov namesto tebe. Paddle je veliko ime, za katerega sem slišal že leta, zato sem začel tam.
Priznal bom Paddle-u naslednje: njihova dokumentacija je fantastična. Njihova "Setup checklist" in "Go-live checklist" sta resnično uporabna. Občutek sem imel, da sem v dobrih rokah.
Ampak potem sem poskusil implementirati obračunavanje na podlagi uporabe.
Preživel sem 4-5 dni v boju z njihovim sistemom in preprosto nisem mogel doseči, da bi deloval normalno. Webhooks so bili kompleksen nered. Ampak prava zadeva, ki je preprečila dogovor, je bila nekaj veliko slabšega.
Tukaj je problem: ko uporabnik prekliče svojo naročnino, Paddle preprosto... oprosti vso uporabo, ki so jo nakopičili. Puf. Izginilo.
Njihova dokumentacija predlaga "rešitev": ko uporabnik klikne tvoj gumb "cancel", najprej sproziš takojšnjo zaračunavanje njihove uporabe in šele nato prekliceš naročnino.
V redu, ampak kaj pa portal za stranke? Paddle daje strankam portal, do katerega lahko dostopajo prek e-pošte, da upravljajo svojo naročnino. Če tam prekličejo, nimaš nadzora. Ne moreš injicirati svoje logike "najprej zaračunaj".
Torej bi lahko katerikoli uporabnik:
To ni majhna napaka; to je izkorišček, ki lahko uniči podjetje in čaka, da se zgodi. Za AI SaaS, kjer uporaba stane resnični denar, je to bilo nesprejemljivo.
Frustriran in brez časa sem iskal alternative in naletel na polar.sh. To je novejši igralec in bil sem nekoliko skeptičen. Ampak, kakšna razlika.
Tukaj je kratek pregled mojih izkušenj:
onSubscriptionUpdated webhook-om. Bilo je čisto in preprosto. Paddle se je zdelo, kot da potrebuje celo konstelacijo webhook-ov, da naredi isto stvar.better-auth in imeli so knjižnico pomočnikov zanj, ki je zadeve še olajšala.Ni vse sončno in mavričasto. Lahko vidiš, da je polar.sh nov otrok na bloku. Naletel sem na nekaj čudnih napak.
Dobra novica? Njihova ekipa je noro odzivna na Discordu. Slaba novica? Njihova ekipa je noro odzivna na Discordu. To pomeni, da ko sem googlal svoje napake, nisem našel ničesar. Rešitve so bile zakopane v Discord pogovorih. Rajši bi našel odgovore v javni dokumentaciji, kot da moram vprašati na strežniku za klepet, ampak hej, vsaj hitre odgovore sem dobil.
V zadnjih nekaj mesecih sem naletel na več problemov, ki jih želim izpostaviti:
Potem ko sem zapravil teden s Paddle, sem Polar.sh integriral in spravil v delovanje v enem dnevu.
Paddle je morda zrela platforma z odlično dokumentacijo, ampak za moj primer uporabe - obračunavanje na podlagi uporabe za AI SaaS - ima usodno napako. Njihov sistem uporabnikom omogoča, da se enostavno izognejo plačilu za merjeno uporabo, kar je preprosto nesprejemljivo.
Polar.sh, kljub svoji mladosti in občasnim grobim robovom, ima osnove pravilno. Njihova implementacija obračunavanja na podlagi uporabe je trdna, izkušnja za razvijalce je boljša in je cenejša.
Če gradiš SaaS z obračunavanjem na podlagi uporabe, prihrani si glavobol. Resno preuči polar.sh. Ni popolna, ampak deluje, kjer je pomembno.
Edit: Od takrat sem želel posodobiti cenovno integracijo in se tako boril, da sem moral to zadržati, dokler njihova ekipa ne reši nekaterih težav. Ena od njih je dokumentirana v tem github issue