Home

Log in to share a post with the community.

Alice Chen
View post
Alice Chen@alice

Log in as alice@example.com and edit this post. Log in as bob and PATCH the same id — Bunderstack returns 403. That is row-level security.

Edit post

Carol Kim
View post
Carol Kim@carol

drizzle-kit push runs on boot in development so the example works after git clone. Production: run db:push explicitly.

Edit post

Bob Rivera
View post
Bob Rivera@bob

Level 0: createBunderstack({ schema }). Level 2: reach for app.db, app.router, app.auth when auto-CRUD is not enough.

Edit post

Alice Chen
View post
Alice Chen@alice

Follows, likes, retweets, and threaded replies — all plain Drizzle tables with ownerColumn access. Compose Twitter-style UX on top.

Edit post

Carol Kim
View post
Carol Kim@carol

Opt-in searchableColumns in access rules. GET /api/posts?q=drizzle runs parameterized LIKE across title and body — try the search box!

Edit post

Carol Kim
View post
Carol Kim@carol

Storage access mirrors table access: authenticated upload, public read, owner delete. Metadata tracked in SQLite.

Edit post

Carol Kim
View post
Carol Kim@carol

POST /api/files uploads with mime/size rules. GET serves originals; ?w=&h=&format=webp returns on-the-fly thumbnails via sharp.

Edit post

Bob Rivera
View post
Bob Rivera@bob

Prefetch with queryClient.ensureQueryData in route loaders, fall back to Route.useLoaderData() so SSR and client markup match.

Edit post

Bob Rivera
View post
Bob Rivera@bob

createBunderstackQueryClient exposes listQuery, createMutation, etc. Wire useQuery/useMutation directly — no custom hooks layer.

Edit post

Bob Rivera
View post
Bob Rivera@bob

Email/password sessions live at /api/auth/*. Same app.handler(Request) serves CRUD, auth, and files — mount in TanStack Start or Next.js.

Edit post

Alice Chen
View post
Alice Chen@alice

Use defineAccess() when conventions are not enough: follows use followerId, auth tables stay sealed unless exposeAuthTable.

Edit post

Alice Chen
View post
Alice Chen@alice

Add a userId column and owner-scoped update/delete kick in automatically. Public list/get, authenticated create, owner mutations.

Edit post

Alice Chen
View post
Alice Chen@alice

Define tables in Drizzle — Bunderstack mounts GET/POST/PATCH/DELETE at /api/:table. No hand-written route boilerplate.

Edit post