Skip to content

Contributing a Tool

Build a browser-based data tool and publish it on FreeDataStore.

Requirements

  • Tool must run entirely in the browser (no server-side processing)
  • Must use @freedatastore/sdk for data operations (or vendor the SDK source)
  • MIT license
  • Dark theme matching the store design system

Quick start

# Clone template
git clone https://github.com/freedatastore-online/template-data-tool my-tool
cd my-tool

# Install
pnpm install

# Develop
pnpm dev   # opens http://localhost:5173

# Build
pnpm build # outputs to dist/

Project structure

my-tool/
├── web/
│   ├── index.html       # Entry point
│   └── src/
│       ├── main.ts      # App logic
│       ├── style.css    # Styles (use CSS vars from template)
│       └── sdk/         # Vendored SDK modules
├── package.json
├── vite.config.ts
├── tsconfig.json
└── .gitignore

Publishing

# Install CLI
npm install -g @freedatastore/cli

# Check compliance
fdts check

# Publish
fdts publish

Or open a PR to freedatastore-online/platform with your tool added to the registry.

Design system

Use these CSS variables for consistency:

:root {
  --bg: #0a0a0f;
  --surface: #12121a;
  --surface-2: #1a1a25;
  --border: #2a2a3a;
  --text: #e8e8ef;
  --text-2: #8888a0;
  --accent: #0ea5e9;
  --accent-light: #38bdf8;
  --green: #00b894;
  --red: #ff6b6b;
  --yellow: #ffd93d;
}