Solid, Nuxt, Tanstack Start adapter
bknd now includes adapter for Solid, Nuxt, Tanstack Start applications, the new adapters follows the same pattern as the existing Astro and Next.js adapters. Read more in the Integration guide.
Timestamp Plugin
Introduced a new indexStrategy option in the timestamps plugin to configure index generation for created_at and updated_at fields. Supports "composite" and "individual" strategies for better control over database indexing.
import { timestamps } from "bknd/plugins";
export default {
options: {
plugins: [
timestamps({
entities: ["pages"],
indexStrategy: "composite" // or "individual" to create separate indexes
})
],
},
} satisfies BkndConfig;Special thanks to @dswbx for adding this
Sort Plugin
The Sort plugin enables automatic position management for sortable entities with support for scoped sorting.
Features:
- Automatic position assignment on insert (starting from 0)
- Automatic reordering when positions are updated
- Scoped sorting (e.g., sort within categories or projects)
- API endpoints for manual reordering and recalculation
- Batch recalculation support for large datasets
Usage:
import { sort } from "bknd/plugins";
const app = createApp({
plugins: [
sort({
entities: {
tasks: {
field: "position",
scope: "project_id", // optional
},
},
}),
],
});The plugin automatically adds the sort field to configured entities and creates two API endpoints per entity:
POST /api/sort/{entity}/reorder- move an item to a new positionPOST /api/sort/{entity}/recalculate- recalculate all positions (useful for cleanup)
When a scope field is specified, sorting only happens within items that share the same scope value.
Special thanks to @dswbx for adding this
A bunch of QOL Improvements, bug fixes, and documentation updates were added thanks to @cameronapak, @jonaspm, @matschik, @xretic
Project Maintenance Update
This project is now fully run and maintained by the community. Due to limited time, @dswbx is stepping back from actively maintaining bknd, and @shishantbiswas, @jonaspm will be taking charge to maintain/develop bknd. We welcome contributions and feedback from all community members!
Changelog
- docs(cloudflare): fix import in Cloudflare configuration example by @matschik in #327
- chore: Update Astro to version 5.16.9 in example package by @jonaspm in #337
- update license to Apache-2.0 in package.json by @dswbx in #340
- Docs: Guard lockout and how to set up Guard properly by @cameronapak in #342
- Docs: Bringing clarity to the introduction docs by @cameronapak in #343
- Docs: consolidate dual introductions, restructure setup page by @cameronapak in #348
- refactor adapter tests for improved structure by @xretic in #350
- Make dist clean cross-platform without shell commands by @jonaspm in #356
- docs: Document changePassword method in auth module by @jonaspm in #353
- Update client:only attribute in astro.mdx by @jonaspm in #359
- Adding CONTRIBUTING.md doc by @cameronapak in #357
- feat(plugin/timestamps): add indexStrategy option for entity indexing by @dswbx in #332
- Fix Sidebar Users Route Links by @cameronapak in #218
- Allow CLI
synccommand to seed data properly when schema changes aren't present by @cameronapak in #339 - feat: add Tanstack Start adapter by @shishantbiswas in #351
- Release 0.21 by @dswbx in #363
- fix:
WithBuilderproduced embedding errored whenmappedBywas used by @dswbx in #347 - fix(auth):
allow_registerwas not respected in strategy controllers by @dswbx in #322 - fix: Match Bearer case-insensitively and trim whitespace(s) by @jonaspm in #372
- feat: Nuxt adapter by @shishantbiswas in #362
- fix: update local database URL to remove 'file:' prefix in examples by @jonaspm in #373
- chore: Bump dayjs to 1.11.20 by @jonaspm in #377
- Replace deprecated OptionsObject with SpawnOptions and fix warning by @jonaspm in #378
- chore: Use dynamic import for manifest with Vite ignore. Fixes warning by @jonaspm in #379
- add (docs): section for production build issue, React SDK setup by @shishantbiswas in #380
- Upgrade TypeScript to latest v6 by @jonaspm in #374
- fix(tests): resolve prepublishOnly failures in AppAuth and postgres tests by @cameronapak in #387
- feat: Solid Start adapter by @shishantbiswas in #365
- fix: sidebar links href to include
adminBasePathby @shishantbiswas in #405 - Add sort plugin for managing orderable entities by @dswbx in #309
- make non-fillable fields visible but disabled in UI by @dswbx in #287
- Prerelease fixes for release/0.21 by @shishantbiswas in #407
- Release 0.21 (RC) by @dswbx in #364
New Contributors
- @matschik made their first contribution in #327
- @xretic made their first contribution in #350
- @shishantbiswas made their first contribution in #351
Full Changelog: v0.20.0...v0.21.0