All Projects → nesterow → Frontless

nesterow / Frontless

Licence: mit
Build universal JS applications with Riot.JS

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Frontless

Webpack Hot Server Middleware
🔥 Hot reload webpack bundles on the server
Stars: ✭ 319 (+195.37%)
Mutual labels:  expressjs, isomorphic, ssr
React App
Create React App with server-side code support
Stars: ✭ 614 (+468.52%)
Mutual labels:  isomorphic, ssr
Next Express Bootstrap Boilerplate
⚡️ JavaScript boilerplate for a full stack app built using React.js, Next.js, Express.js, react-bootstrap, SCSS and full SSR with eslint.
Stars: ✭ 102 (-5.56%)
Mutual labels:  expressjs, ssr
Typescript Hapi React Hot Loader Example
Simple TypeScript React Hot Loading example with Hapi Server-side rendering
Stars: ✭ 44 (-59.26%)
Mutual labels:  isomorphic, ssr
React Koa2 Ssr
a Isomorphic framework demo for react server side rendering ( react 同构工程项目骨架,基于create-react-app 和 koa2生成器搭建。)
Stars: ✭ 299 (+176.85%)
Mutual labels:  isomorphic, ssr
React Server
🚀 Blazing fast page load and seamless navigation.
Stars: ✭ 3,932 (+3540.74%)
Mutual labels:  isomorphic, ssr
Nuxt.js
The Intuitive Vue(2) Framework
Stars: ✭ 38,986 (+35998.15%)
Mutual labels:  isomorphic, ssr
movies
Real world isomorphic application for movies search, based on Webpack 5 / Express / React 17 + Redux-Saga / Bootstrap 4.6 + CSS Modules / i18next / SSR
Stars: ✭ 20 (-81.48%)
Mutual labels:  isomorphic, ssr
Koot
Koot是基于React和Koa的WEB全栈技术解决方案。
Stars: ✭ 59 (-45.37%)
Mutual labels:  isomorphic, ssr
Micro Frontends
micro-frontends architecture with reactjs, nodejs, express
Stars: ✭ 66 (-38.89%)
Mutual labels:  expressjs, ssr
Mern
🎉 This is boilerplate for MERN stack with integrations like Redux and SSR 🎉
Stars: ✭ 77 (-28.7%)
Mutual labels:  expressjs, ssr
Angular Ssr
Angular 4+ server-side rendering solution compatible with @angular/material, jQuery, and other libraries that touch the DOM (as well as providing a rich feature set!)
Stars: ✭ 283 (+162.04%)
Mutual labels:  isomorphic, ssr
Egg Vue Webpack Boilerplate
Egg Vue Server Side Render (SSR) / Client Side Render (CSR)
Stars: ✭ 1,302 (+1105.56%)
Mutual labels:  isomorphic, ssr
Ky Universal
Use Ky in both Node.js and browsers
Stars: ✭ 421 (+289.81%)
Mutual labels:  isomorphic, ssr
React Head
⛑ SSR-ready Document Head tag management for React 16+
Stars: ✭ 262 (+142.59%)
Mutual labels:  isomorphic, ssr
Hackernews
HackerNews clone built with Nuxt.js
Stars: ✭ 758 (+601.85%)
Mutual labels:  isomorphic, ssr
webpack-isomorphic-compiler
A compiler that makes your life easier if you are building isomorphic webpack powered apps, that is, single page applications with server-side rendering
Stars: ✭ 16 (-85.19%)
Mutual labels:  isomorphic, ssr
react-ssr-spa
Server side rendered single page app using reactjs official libraries.
Stars: ✭ 30 (-72.22%)
Mutual labels:  isomorphic, expressjs
Hapi React Hot Loader Example
Simple React Hot Loading example with Hapi Server-side rendering
Stars: ✭ 44 (-59.26%)
Mutual labels:  isomorphic, ssr
Preact Redux Isomorphic
preact-redux-isomorphic PWA SPA SSR best practices and libraries in under 80kB page size (for live demo click the link below)
Stars: ✭ 85 (-21.3%)
Mutual labels:  isomorphic, ssr

Build Status StackShare version MIT license

Feathers + Riot + Turbolinks + Express

View demo on CodeSandbox.io (refresh if you see 503 error)

About

Frontless is a node.js stack for building universal (isomorphic) javascript applications. At the core, Frontless is just a small Express server that provides a developer with powerful tools for building SSR web applications.

Frontless is built around the best javascript technologies: Feathers.JS , Riot.JS, Turbolinks, and Express.

Motivation

In practice, the serverless approach significantly complicates work with data and causes front-end developer to write the code, which would be better performed by the server rather than a browser application. The server has to be responsible for things like routing, db requests, user state (sessions), and in some cases - component's view-model. It would make a front-end developer better concentrate on UI rather than repeating the functionality which is done by back-end in more reliable way.

The Stack

Before you start, it is highly recommended to have essential understanding of following technologies:
FeathersJS | RiotJS | Turbolinks | ExpressJS

Stack summary
SERVER CLIENT
Routing - express.js Navigation - turbolinks
View Model - feathers Data Representation - riot.js
Layout Rendering - riot/ssr User input - riot.js
Sessions - express.js JWT, Cookies
Realtime - feathers, socket.io] @feathers/client
DB Interface - @feathers/client Rest/IO - @feathers/client

Getting Started

  1. Clone this repo or use NPX
  npx create-frontless <app-name>
  1. Setup a MongoDB Server (optional). Frontless reads MONGODB_URI environment variable.
  # config.env
  MONGODB_URI=mongodb://localhost:27017/frontless
  1. Install dependencies and start dev. server
  npm run install
  npm start

Оpen http://localhost:6767 in your browser. Navigate to the playground for examples

Features

Simple routing scheme

Routing in-web applications should be as simple as it is in static sites. With that in mind, any Riot.JS component placed in the pages directory is accessible by browser: [index.riot -> GET /, page.riot -> GET /page].

Also, a page can accept positional arguments and it also has access to the Express request context:

// GET https://example.com/[email protected];baz
export default {
  async fetch(){
    const {args} = this.req.params;
    const [arg1, arg2] = args;
    console.log(arg1 === 'bar') // true
    // arg2 = baz
  }
}

Synchronous rendering

Frontless can render pages after all asynchronous calls are complete. Including children riot components nested inside the page markup.

Server-sent state

Some API requests can return a ready view-model for a specific component. After it happens, the target component will update its state from received response. This is convenient whenever you want to update the view after a request is done. Given that, the server should return a ready view-model which eliminates extra steps you would do to handle response.

State initialization

All Riot components rendered on the server side initialize in browser with last state they were on the server side.

RestAPI/Socket.IO

Stay close to the database with power of FeathersJS services.

It is just Express.JS

Everything you can do with an express application.

Documentation

Frontless Docs | Feathers Docs | Riot Docs

❤️ Contribute

If you found a problem and know the solution:

  • Fork repository
  • Fix the problem
  • Push your fix to a separate branch
  • Make pull request to the development branch

If you need help, just open an issue

If you understand how it works under the hood, or feel like you can make this project better don't hesitate to message me directly.

License

This project is licensed under the MIT License - see the LICENSE file for details

Changelog v1.0.x

changelog.md

Roadmap v2.0

  • [ ] Static site builder [10%]
  • [ ] Global state syncronization
  • [ ] Push Notifications

Authors

Credits

Readme

Why B2B startups shouldn't use React

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].