/tinacms

Tina is a site editing toolkit for modern React-based sites (Gatsby and Next.js)

Primary LanguageTypeScriptApache License 2.0Apache-2.0

Tweet Slack Lerna All Contributors

TINA CMS

Tina is an open-source toolkit for building content management directly into your website.

Tina Demo

Learn More

Development

Disclaimer:

  • Tina is a new and fast moving project. Although API stability and easy developer experience is important to the core team, they cannot be guaranteed while the project is pre-1.0.
  • Although Tina supports many use cases not all of them have helper packages or comprehensive guides. If you’re looking to use Tina in a novel way you will have to do a lot of manual setup.

To get started:

git clone git@github.com:tinacms/tinacms.git
cd tinacms
npm install
npm run build

# Start Gatsby demo
cd packages/demo-gatsby
npm run start

WARNING: Do not run npm install from inside the packages directory

TinaCMS uses Lerna to manage dependencies when developing locally. This allows the various packages to reference each other via symlinks. Running npm install from within a package replaces the symlinks with references to the packages in the npm registry.

Commands

Commands Description
npm run bootstrap Install dependencies and link local packages.
npm run build Build all packages.
npm run test Run tests for all packages.
lerna run build --scope <package> Build only <package>.

Testing With External Projects

Linking apps to a monorepo can be tricky. Tools like npm link are buggy and introduce inconsistencies with module resolution. If multiple modules rely on the same package you can easily end up with multiple instances of that package, this is problematic for packages like react which expect only one instance.

@tinacms/webpack-helpers provides tools and instructions for testing local TinaCMS changes on external websites.

Release Process

TinaCMS packages are updated every Monday.

Checkout the RELEASE file for the details.

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Forestry.io

πŸ’΅

NCPhillips

πŸ“† πŸ’» πŸ“ πŸ› πŸ“– πŸ€” πŸš‡ 🚧 πŸ‘€ ⚠️

DJ

πŸ“† πŸ’» πŸ“ πŸ› πŸ“– πŸ€” 🚧 πŸ‘€ ⚠️

Scott Byrne

🎨 πŸ’» πŸ‘€ 🚧 πŸ“– πŸ“

James O'Halloran

πŸ“† πŸ› πŸ€” 🚧 πŸ‘€ ⚠️ πŸ’» πŸ“

Kendall Strautman

🎨 πŸ“† πŸ› πŸ€” 🚧 πŸ“’ πŸ‘€ πŸ’» πŸ“

Nichlas Wærnes Andersen

πŸ’» 🎨 πŸ€”

Jordan

πŸ“† πŸ“’ πŸ€” πŸ› πŸš‡ πŸ“– πŸ’»

Frank Taillandier

πŸ‘€ πŸ“– πŸ“† πŸ““ πŸ› πŸ’»

Scott Gallant

πŸ“– πŸ“’ πŸ” πŸ“

Mitch MacKenzie

πŸ““ πŸ“

zacchg

πŸ““

Lyle Underwood

πŸ› πŸ’»

Laura1111999

πŸ“–

Thom Krupa

πŸ““

Michael Gauthier

πŸ““ πŸ“–

dcgoodwin2112

πŸ“–

akshayknz

πŸ“–

Adam Silverstein

πŸ“–

Brad McGonigle

πŸ’»

Jake Coxon

πŸ’»

Ladislav Prskavec

πŸ’»

Bolarinwa Balogun

πŸš‡

Mason Medeiros

πŸ““

ironsean

πŸ““

kyp

πŸ›

Vladislav Shkodin

πŸ›

maciek_grzybek

πŸ€” πŸ’» πŸš‡

weibenfalk

πŸ“Ή πŸ“ πŸ’»

David Bergeron

πŸ›

Kellan Martin

πŸ’»

Jon Miller

πŸ€”

Paul

πŸ›

Chris Flannery

πŸ’» πŸ“–

Jefferson Bledsoe

⚠️

Kenia

πŸ’»

Andrew James

πŸ’»

Zach B

πŸ“’

Jyoti Puri

πŸ’» πŸ‘€ ⚠️ 🚧 πŸ›

nibtime

πŸ’» πŸ›

Johan Soulet

πŸ’» πŸ›

Cleiton Pereira

πŸ› πŸ€”

chrisdmacrae

πŸš‡ πŸ’¬ πŸ€”

jhuggett

πŸ’»

Nicolas Cisco

πŸ’» ⚠️

Hungry Bear Studio

πŸ’»

Alex Barbato

πŸ’»

Dani Tulp

πŸ’» πŸ€”

PaulBunker

πŸ’»

JavaScript Joe

πŸ’»

Madelyn Eriksen

πŸ“

Marc Mintel

πŸš‡ πŸ’» πŸ›

Jeff See

πŸš‡

Brandon Landfried

πŸ›

Chad Johnson

πŸ›

David Arnold

πŸ€”

Gavin McFarland

πŸ›

blandfried

πŸ› πŸ’»

Mark Lawlor

πŸ€”

Ben Scott

πŸ‘€

Brent Mitton

πŸ’» πŸ“–

Colin McGraw

πŸ“–

Brandon Shackelford

πŸ’» πŸ›

Amy Kapernick

πŸ›

Sam Ullman

πŸ›

Andreas Adam

πŸ€” πŸ“–

This project follows the all-contributors specification. Contributions of any kind welcome!