Founder

Dharmendra Jagodana

Founder of BuildBase. Builds the platform and the six products that run on it.

101 posts · page 2 of 9

Build guide

Should you run auth on your own domain?

A custom auth domain is close to a one-way door for passkeys, and a DNS record that becomes part of your login path. Here is how to decide, and how to move before anyone signs in.

7 min read
Build guide

How to create a default workspace on signup in Next.js, but not for invited users

Create a default workspace on signup in Next.js without giving invited users an empty one of their own, and decide when to ask for a name instead.

11 min read
Explainer

Idempotency in billing, and why it matters

Idempotency in billing means a retried charge, usage event, credit debit or webhook takes effect once. Having a key is the easy part. What the key names is where double billing starts.

11 min read
Engineering

Idempotency keys on the metering write path

How BuildBase keeps a retried usage record from counting twice: a key per hop, minted where its quantity stops changing, and the one hop where our check still runs early.

10 min read
Explainer

Metered vs seat-based billing: charge for people or for work

Seat-based billing charges per person with access; metered billing charges per unit of work. Pick by what grows when a customer gets more value.

8 min read
Build guide

How to add per-org data isolation in Next.js

Per-org data isolation in Next.js: check membership once per request, make the data layer demand that proof, and never fetch a record by its ID alone.

11 min read
Build guide

How to add roles and permissions per workspace in Next.js

Per-workspace roles in Next.js: hide controls with WhenPermission, check every server action with bb.workspace.can(), and know which side lags after a role change.

9 min read
Build guide

How to add social login in Next.js

Google, GitHub, Microsoft and LinkedIn sign-in with no OAuth routes to write. What is left is a decision: what one person becomes when they arrive through two providers.

13 min read
Build guide

Stale data on screen after a workspace switch

Stale data after a workspace switch is a cache that never learned the workspace changed. One switch with the Network tab open tells you which cache. The fix is a key, not a purge.

11 min read
Build guide

How to add team invitations in Next.js, and decide when the seat starts billing

Team invitations in Next.js: a pending invite holds a seat from the moment it is sent. Why that is the right default, and what it does to the invoice at renewal.

9 min read
Build guide

Transactional email landing in spam

Transactional email in spam is a verdict the receiving server already wrote into the header. How to read it, and five causes to check in the order that settles fastest.

11 min read
Build guide

Usage counts that do not match the invoice

Usage does not match the invoice? The invoice bills overage blocks for a period that already closed. How to reconcile the two, fastest check first.

12 min read

Read enough? Build something.

Everything we write about is in the product. 7-day free trial, no credit card.

7-day free trialNo credit card requiredCancel anytime