crisopolis
Joined 11 years ago
Joined 11 years ago
What is your tech stack?
Backend: Phoenix
Frontend: Phoenix LiveView (with Preline UI)
Database: PostgreSQL (I want to use neon.tech soon for tenant db isolation)
Auth: WorkOS (for B2B SSO)
Cloud Provider: Fly.io (tbd)
Why did I choose this tech stack?
I've loved elixir for a few years but I've yet to build a functional SaaS with it yet. I've built one-off apps, and even stock algo bots. This time I'm going to try for something bigger which means I get to use Phoenix and LiveView to make a fast web app.
As for PostgreSQL we'll it's PostgreSQL and WorkOS seemed to be my biggest risk since I had no experience with it's platform or SSO OAuth2. However, WorkOS has tons of features that makes B2B SSO painless for me and potential customers. No real reason for fly.io yet.
Do you think your choices had any impact on your success or failure?
No success or failures yet.
Somethings do not work on mobile and while on desktop I was getting error pages clicking around. :-/
RIP RadioShack
Still the point is Affirm was the wrong target for their chargeback and the OP should have contacted Affirm to potentially resolve the merchant not delivering the goods or a refund of the loan.
Merchant > Affirm > OP Bank
I don't believe charging back the loan provider had any outcome to getting their product/service.
Affirm was the wrong target.
But this is friggin awesome.
My project is built in Elixir, so I implemented the flows where my application has no login screen UI. I just push all unauthenticated users straight to WorkOS. WorkOS and their AuthKit (hosted login page) handles the heavy lifting (User/Pass, Passkey, MFA, SSO, etc) and sends them back to my application with a JWT. I check if the user exists, and if not, just-in-time provisioning kicks in on my side and we're done. Tenant identified, and tenant user authenticated all wrapped up in a single JWT.
Why WorkOS?
Simple... I don't want to be responsible for any authentication headaches. I don't want to self-host or duct tape a bunch of different components together. I'd rather put as much of that control in the client's hands (or WorkOS's if they don't have their own IAM). Plus, I like what WorkOS offers. Documentation is solid, though I still need to figure out their Fine Grained Authorization (FGA) product, formerly known as Warrant. In the end, nothing lives on my side except workos_tenant_id, workos_user_id, and my application data. The tenant has full control over their IAM, all the features of WorkOS via their own admin panel and ultimately who can access my SaaS application.
How's it going so far?
I have exactly zero customers except my development tenant. Everything works as expected so far. Maybe I'll have a different story when I get a customer willing to foot the bill for all the WorkOS bells and whistles in production. But implementation has been smooth, and AuthKit works great for dev/testing as a hosted login page, one-click testing SSO flows, etc.
If I had to re-implement, would I still choose WorkOS?
I probably would've done the same deep research you're doing, hoping to find that needle in a haystack. As a bootstrap developer, I'd try to avoid the paid options and figure out the open source/roll-your-own route. But if I had a plan to afford the paid ones, I'd probably evaluate WorkOS against other paid options properly.