All Projects → netlify → netlify-cms-widget-starter

netlify / netlify-cms-widget-starter

Licence: MIT license
A boilerplate for creating Netlify CMS widgets.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to netlify-cms-widget-starter

nuxt-starter-netlify-cms
Example nuxt + netlify cms project. Nuxt port of Gatsby starter app.
Stars: ✭ 13 (-82.43%)
Mutual labels:  starter, netlify-cms
nuxt-netlify-cms-starter
🏞 A very spartan starter for using Nuxt.js with Netlify CMS.
Stars: ✭ 67 (-9.46%)
Mutual labels:  starter, netlify-cms
Gatsby Starter Netlify Cms
Example gatsby + netlify cms project
Stars: ✭ 1,932 (+2510.81%)
Mutual labels:  starter, netlify-cms
gatsby-starter-glass
A Minimal & Beautiful Gatsby Personal Blog Starter With Nice Glassmorphism UI
Stars: ✭ 134 (+81.08%)
Mutual labels:  starter, netlify-cms
netlify-cms-widget-youtube
Youtube Widget for Netlify CMS
Stars: ✭ 24 (-67.57%)
Mutual labels:  widget, netlify-cms
js-year-calendar
A fully customizable year calendar widget
Stars: ✭ 164 (+121.62%)
Mutual labels:  widget
material2-admin
Angular - Material2 - Redux - Flex - Admin Example - Starter
Stars: ✭ 13 (-82.43%)
Mutual labels:  starter
gatsbyjs-starter-tailwindplay
GatsbyJS Tailwind Starter - TailwindPlay
Stars: ✭ 69 (-6.76%)
Mutual labels:  starter
CuratedStack-nocode-template
🧱 A template to create a CuratedStack without (or with) code
Stars: ✭ 86 (+16.22%)
Mutual labels:  netlify-cms
sass-starter-pack
Sass starter files using Gulp v4.0.0 🔥
Stars: ✭ 34 (-54.05%)
Mutual labels:  starter
flutter code input
Flutter Code Input
Stars: ✭ 69 (-6.76%)
Mutual labels:  widget
frontenso-11ty-starter
Production-ready 11ty+Gulp+Webpack Starter that features Nunjucks, SASS, TailwindCSS (with JIT complier), and ESNext.
Stars: ✭ 24 (-67.57%)
Mutual labels:  starter
browser-extension
Browser Extension Template with ESbuild builds, support for React, Preact, Typescript, Tailwind, Manifest V3/V2 support and multi browser build including Chrome, Firefox, Safari, Edge, Brave.
Stars: ✭ 535 (+622.97%)
Mutual labels:  starter
vividus-starter
VIVIDUS-based test project template
Stars: ✭ 43 (-41.89%)
Mutual labels:  starter
twitch-extension-starter
Kickstarts your Twitch Extension using React
Stars: ✭ 38 (-48.65%)
Mutual labels:  starter
node-red-node-typescript-starter
🏁 Quick-start template repository for creating new Node-RED node sets in TypeScript.
Stars: ✭ 64 (-13.51%)
Mutual labels:  starter
ProgressBar
Beautiful progress bar for android
Stars: ✭ 62 (-16.22%)
Mutual labels:  widget
notebookJS
notebookJS: seamless JavaScript integration in Python Notebooks
Stars: ✭ 149 (+101.35%)
Mutual labels:  widget
flutter easyloading
✨A clean and lightweight loading/toast widget for Flutter, easy to use without context, support iOS、Android and Web
Stars: ✭ 1,021 (+1279.73%)
Mutual labels:  widget
telekom-data-usage-widget
Telekom Datennutzung Widget für iOS 14
Stars: ✭ 61 (-17.57%)
Mutual labels:  widget

Netlify CMS Widget Starter

A boilerplate for creating Netlify CMS widgets.

Widgets are inputs for the Netlify CMS editor interface. It's a React component that receives user input and outputs a serialized value. Those are the only rules - the component can be extremely simple, like a text input, or extremely complicated, like a full blown markdown editor. They can make calls to external services, and generally do anything that JavaScript can do.

The starter currently provides a basic string widget, which you can customize, extend, or replace entirely with your own widget.

Check out the docs for more details.

Getting started

Clone or fork the repo, then install dependencies:

git clone --depth=1 https://github.com/netlify/netlify-cms-widget-starter.git netlify-cms-widget-<name>
cd netlify-cms-widget-<name>
npm install

Development

To run a copy of Netlify CMS with your widget loaded for development, use the start script:

npm start

Your widget source is in the src directory, where there are separate files for the Control and Preview components.

Production & Publishing

You'll want to take a few steps before publishing a production built package to npm:

  1. Customize package.json with details for your specific widget, e.g. name, description, author, version, etc.
  2. For discoverability, ensure that your package name follows the pattern netlify-cms-widget-<name>.
  3. Delete this README.md, rename README_TEMPLATE.md to README.md, and update the new file for your specific widget.
  4. Rename the exports in src/index.js. For example, if your widget is netlify-cms-widget-awesome, you would do:
if (typeof window !== 'undefined') {
  window.AwesomeControl = Control
  window.AwesomePreview = Preview
}

export { Control as AwesomeControl, Preview as AwesomePreview }
  1. Optional: customize the component and file names in src.
  2. If you haven't already, push your repo to your GitHub account so the source available to other developers.
  3. Create a production build, which will be output to dist:
npm run build
  1. Finally, if you're sure things are tested and working, publish!
npm publish

Deploying a live demo

The development (start) task provides a locally served preview of your widget in the CMS editor. This starter also includes a demo task for deploying this view live. Here's how to get your demo deployed using Netlify.

  1. Assuming your repo is on GitHub, head over to Netlify and create a site from your repo.
  2. The proper settings will be pre-filled based on what's in the netlify.toml file in this repo, so you can just click through to deploy.
  3. Add your deployed site url to README.md, replacing the placeholder url in the demo link.

Note: Be sure to retain the "/demo" at the end of url, as that will automatically redirect to the editor view with your widget.

Once deployed, your demo should look like this, except with your custom widget.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].