README file from
GithubBases Power Pack
Advanced database views and automation on top of Obsidian's native Bases feature. Bases Power Pack adds extra view types, roll-ups/formulas, and saved filters so your Bases behave like a real lightweight database.
Open-core / one-time purchase. The plugin is free to use in its Lite tier. Premium features unlock with a one-time license — ~$29 (one-time).
Lite vs. Premium
| Feature | Lite (free) | Premium (~$29 one-time) |
|---|---|---|
| Kanban view (group notes by a frontmatter property) | ✅ | ✅ |
| Calendar view (notes placed by a date property) | — | ✅ |
| Gantt timeline view | — | ✅ (roadmap) |
| Roll-ups & formula columns | — | ✅ (roadmap) |
| Saved filters & view presets | — | ✅ (roadmap) |
The Kanban view is the free "one extra view" — fully usable with no license. Everything else is gated behind the license check (LicenseManager.isPremium()).
How the views work
Both views read standard frontmatter, the same data Bases tables expose, so they work today without depending on Bases internals:
- Kanban — scans markdown notes for a configurable property (default
status) and lays them out in columns. Click a card to open the note. - Calendar — month grid that places notes onto days using a configurable date property (default
due). Navigate months with the arrows.
Configure both properties in Settings → Bases Power Pack.
Usage
Commands (open the command palette):
- Open Kanban view (Lite)
- Open Calendar view (Premium) — prompts to upgrade if no valid license
- Verify license key
There's also a ribbon icon for the Kanban board.
Premium / licensing
Enter your license key in Settings → Bases Power Pack → License. Keys are verified offline with Ed25519 signatures (via tweetnacl) — no account, server, or network call. The result is cached in isPro; premium views and settings unlock immediately on a valid key.
A license key is base64url(payload).base64url(signature), signed by the author's private key and verified against the public key embedded in src/license/publicKey.ts.
Selling keys (author workflow):
node scripts/keygen.mjs # one-time: create keypair (.license-private.key + public key)
npm run license:generate -- [email protected] # after a sale: mint a key to email the customer
Billing/delivery (taking payment, emailing the key) is handled out-of-band by Lemon Squeezy / Gumroad — see the
TODO(billing)insrc/license/LicenseManager.ts. No plugin code changes are needed to wire a storefront; you just deliver the generated key.
Build
npm install
npm run build # bundles to main.js
npm run dev # watch mode
npm run typecheck # tsc --noEmit
npm test # offline license verification tests
npm run build produces main.js in the project root alongside manifest.json and styles.css — the three files Obsidian loads.
Install into a vault for testing
Copy main.js, manifest.json, and styles.css into:
<your-vault>/.obsidian/plugins/bases-power-pack/
Then enable Bases Power Pack in Settings → Community plugins.
Project layout
bases-power-pack/
├── manifest.json # Obsidian plugin manifest
├── versions.json # version -> minAppVersion map
├── package.json
├── tsconfig.json
├── esbuild.config.mjs # bundler config
├── styles.css
├── .github/workflows/
│ └── release.yml # tag-driven GitHub release (build + attach assets)
├── scripts/
│ ├── keygen.mjs # one-time Ed25519 keypair generator (author)
│ ├── generate-license.mjs # mint a customer key (author)
│ └── customer-license-template.txt
├── tests/
│ └── license.test.mjs # offline license sign/verify round-trip
└── src/
├── main.ts # plugin entry, commands, view registration
├── settings.ts # settings interface + settings tab
├── license/
│ ├── LicenseManager.ts # offline Ed25519 verification
│ └── publicKey.ts # embedded public key
├── types/tweetnacl.d.ts # minimal tweetnacl type shim
└── views/
├── kanbanView.ts # Lite (free) view
└── calendarView.ts# Premium (gated) view
Reference: the licensing approach, settings-tab patterns, build/test setup, and project layout are adapted from the Vault Spotlight plugin — see "Borrowed from Vault Spotlight" notes in the repo.
License
MIT (plugin source). Premium feature access is governed by a signed license key.