Getting Started
Welcome to Papacore - a framework that brings modern web development tooling to Obsidian's Datacore plugin.
What is Papacore?
Papacore bridges the gap between modern web development and Obsidian's Datacore plugin. It transforms the experience of developing Datacore components from a frustrating process into something familiar and productive.
The Problem
Datacore provides a powerful query engine and uses Preact for rendering. However, developing components for Datacore is challenging:
- Custom import/export notation (
dc.require) instead of standard ESM/CJS - No code intellisense or autocomplete
- No hot reloading
- No access to modern tooling (Tailwind, TypeScript, etc.)
- Manual file management
The Solution
Papacore lets you write components for Datacore as if you were building a regular React app:
- ✅ TypeScript + Preact: Write type-safe components with full IDE support
- ✅ Tailwind CSS v4: Style your components with utility classes
- ✅ Hot Reloading: See changes instantly in Obsidian
- ✅ Component Stories: Preview components in isolation
- ✅ Modern Tooling: Code completion, linting, type checking
- ✅ Automatic Transformation: Papacore handles the conversion to Datacore's format
Quick Start
Create a new Papacore project:
npm create papacore@latest my-datacore-project
# or
pnpm create papacore@latest my-datacore-project
Navigate to your project and start development:
cd my-datacore-project
npm run dev
# or
pnpm dev
This will:
- Build your components
- Transform them to Datacore format
- Install them to your vault
- Watch for changes and hot-reload
What You Get
A Papacore project includes:
- Starter Components: Pre-built button, dialog, and link components
- Utilities: Helper functions for class merging, file operations, markdown processing, and time formatting
- Example View: A sample "Today" view to get you started
- Full Config: TypeScript, Tailwind, Babel, and Biome configured and ready
- Type Definitions: Full type safety for Datacore APIs
Next Steps
- Installation Guide - Detailed installation instructions
- Your First Component - Create your first component
- CLI Reference - Learn about all available commands
- Component Reference - Explore included components