
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
waffle-board
Advanced tools
A **JSON schema-based dashboard renderer** for React. Build complex, draggable grid layouts simply by defining a JSON configuration.
A JSON schema-based dashboard renderer for React. Build complex, draggable grid layouts simply by defining a JSON configuration.

react-grid-layout).react-grid-layoutwaffle-board can now be installed as an NPM package to power your own dashboards.
npm install waffle-board
import { Dashboard } from 'waffle-board';
import { BarChart } from '@waffle-charts/components/waffle/BarChart';
import { LineChart } from '@waffle-charts/components/waffle/LineChart'; // Your chart components
import 'waffle-board/dist-lib/style.css'; // Import styles
const registry = {
'my-bar-chart': BarChart,
'my-line-chart': LineChart
};
function MyDashboard() {
return (
<Dashboard
config={myConfig}
registry={registry}
isEditable={true}
/>
);
}
Note: The Vite config in this repo defines an alias
@waffle-chartsthat points to the local source of thewaffle-chartslibrary. This lets you import chart components directly from their file paths.
Directly import these components from @waffle-charts/components/waffle/:
BarChart - Supports stacked and grouped variantsLineChart - Supports multi-series and legendsAreaChartPieChartCandlestickChart - Financial OHLC dataScatterChartRadarChartHeatmapChartTreemapChartSankeyChartChordChartThe registry object maps the string type found in your JSON configuration (e.g., "type": "my-bar-chart") to the actual React component. This allows the JSON schema to remain serializable and agnostic of implementation details.
Widgets can fetch their own data by defining a dataSource in the JSON config. You provide the fetcher implementation.
<Dashboard
// ...
fetcher={async (dataSource) => {
// Implement your data fetching logic here
if (dataSource.type === 'api') {
const response = await fetch(dataSource.endpoint);
return response.json();
}
return null;
}}
/>
To run the included demo application:
npm run dev
To build the distributable library bundle (dist-lib/):
npm run build:lib
Themes are defined in src/index.css using CSS variables. To add a new theme:
.theme-name class in index.css.themes array in src/App.tsx.@waffle-charts alias exists in vite.config.ts.npm run build:lib to generate the compiled type definitions.See CONTRIBUTING.md for guidelines.
MIT
FAQs
A **JSON schema-based dashboard renderer** for React. Build complex, draggable grid layouts simply by defining a JSON configuration.
The npm package waffle-board receives a total of 0 weekly downloads. As such, waffle-board popularity was classified as not popular.
We found that waffle-board demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.