All Projects → laurenskling → keystone-with-react-engine

laurenskling / keystone-with-react-engine

Licence: other
KeystoneJS CMS with React Engine as rendering engine, so we can render backend .jsx templates

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects

Projects that are alternatives of or similar to keystone-with-react-engine

typescript-transform-jsx
Typescript transform jsx to string
Stars: ✭ 22 (+29.41%)
Mutual labels:  jsx, jsx-templates
babel-plugin-hyperscript-to-jsx
This plugin transforms react-hyperscript into JSX. Intended to be used as codemod.
Stars: ✭ 20 (+17.65%)
Mutual labels:  jsx
nornj
More exciting JS/JSX based on Template Engine, support control flow tags, custom directives, two-way binding, filters and custom operators.
Stars: ✭ 97 (+470.59%)
Mutual labels:  jsx
tung
A javascript library for rendering html
Stars: ✭ 29 (+70.59%)
Mutual labels:  jsx
ink-box
Styled box component for Ink
Stars: ✭ 113 (+564.71%)
Mutual labels:  jsx
iwish
I wish that too!
Stars: ✭ 19 (+11.76%)
Mutual labels:  jsx
ai-merge
Import your SVG, AI, EPS, and PDF files into a single Illustrator document.
Stars: ✭ 65 (+282.35%)
Mutual labels:  jsx
reacty yew
Generate Yew components from React components via Typescript type definitions
Stars: ✭ 46 (+170.59%)
Mutual labels:  jsx
unplugin-icons
🤹 Access thousands of icons as components on-demand universally.
Stars: ✭ 2,064 (+12041.18%)
Mutual labels:  jsx
react-starter
ARCHIVED: Please use @neutrinojs/create-project
Stars: ✭ 32 (+88.24%)
Mutual labels:  jsx
BarterOnly
An ecommerce platform to buy or exchange items at your convenience
Stars: ✭ 16 (-5.88%)
Mutual labels:  jsx
next-boilerplate
📐 A modern universal boilerplate for React applications using Next.js.
Stars: ✭ 15 (-11.76%)
Mutual labels:  jsx
javascript
Traveloka JavaScript style guide
Stars: ✭ 24 (+41.18%)
Mutual labels:  jsx
keystone-email
⚠️ Archived - Legacy email helper for KeystoneJS Apps
Stars: ✭ 30 (+76.47%)
Mutual labels:  keystonejs
react-cheat-sheet
📚 The perfect React Cheat Sheet for daily use with a lot of Javascript / JSX snippets !
Stars: ✭ 59 (+247.06%)
Mutual labels:  jsx
ExtendScript-for-Visual-Studio-Code
Extension that adds Adobe ExtendScript support to Visual Studio Code
Stars: ✭ 29 (+70.59%)
Mutual labels:  jsx
re-hyperapp
Almost zero-cost bindings for the https://github.com/hyperapp/hyperapp UI library.
Stars: ✭ 21 (+23.53%)
Mutual labels:  jsx
element
Fast and simple custom elements.
Stars: ✭ 65 (+282.35%)
Mutual labels:  jsx
snap-state
State management in a snap 👌
Stars: ✭ 23 (+35.29%)
Mutual labels:  jsx
react-for
A React component library to create loops in JSX
Stars: ✭ 22 (+29.41%)
Mutual labels:  jsx

keystone-with-react-engine

KeystoneJS CMS with React Engine as rendering engine, so we can render backend .jsx templates

KeystoneJS

I've used the 'yo keystone' command, to create a default KeystoneJS project, rewrote it to JSX templates and added React Engine as the view engine.

React

Webpack creates a bundle that can mount from the backend rendered html, including props. (thanks to React Engine boot)

Result

now you can write serverside pages with serverside data in JSX templating (bye bye Jade or Handlebars) and simultaniously write the user interaction in those files. onClick will work after mounting the frontend.

Possible extensions

  • React Engine supports React Router, if you like to not define your routes in express.
  • We can add hotloading at the express routes.

What I am not aiming at

This setup renders one page and allows interactions. It does not render a full SPA. If you will navigate to a next page in JS, you will not have your data prepared. I am not aiming at fixing that. This setup aims to give a better DX in creating a paged CMS-driven website.

Known bugs

  • the canAccessKeystone virtual doesn't work from props. Probably since the props is a JSON copy from the model. I've directly requested it in the middleware now to make it available.
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].