Giter Site home page Giter Site logo

storyforj / fervor Goto Github PK

View Code? Open in Web Editor NEW
43.0 43.0 3.0 5.53 MB

A batteries included, config lite, fullstack framework to build modern web apps

License: MIT License

JavaScript 99.00% CSS 1.00%
apollo postgraphql progressive-enhancement progressive-web-app react universal-rendering

fervor's People

Contributors

gitter-badger avatar parris avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

fervor's Issues

Debate - Defacto Unit Testing System

We should setup a default unit test suite for new projects. We should figure out what would make sense for most projects.

I think Jest may make sense. Does anyone have thoughts/opinions?

Debate Deadline - July 1st 2018

Code splitting

Code splitting + server side rendering is traditionally tough. My current idea is to create a babel plugin that is only applied for webpack builds. This plugin would also only apply to the urls.js file, all files loaded into that file would get the lazy webpack plugin applied to them.

Server side doesn't hot reload code

In development, hot reloading works just fine client side; however, server-side rendering on the other hand uses code at the time of server start.

You can see the results of this when you edit any app or component files. Notice the client side updates quick. Now if you refresh the page you'll see a warning that the server side and the client side doesn't have matching results. This manifests in other dramatic ways especially when schema changes are involved or if various changes could cause the server side explode but not the client side.

Please consider this one writing a fix: Care must be taken with the client side hot reloading portions of the code. Restarting the server everytime code is changed means client side hot reloading breaks. IMHO client side hot reloading is more important for dev speed.

Integration tests for JS being disabled

We have a fair amount of features where we plan for JS being disabled or broken on the client side. My initial attempts at writing these failed. Webdriver expects JS to be on/off for an entire test run. I didn't really want to duplicate configs for the JS off tests quite yet.

Improve fervor development tools

Right now it can be pretty tricky to update fervor and test it locally. Doing simple things is not so hard. Things like, editing CLI tools or updating dependencies are pretty tricky. Even adding docs and chatting about it is not really enough. I think something needs to change.

Ok major problems:

  • Adding dependencies requires a yarn add file:./../fervor/ followed by a yarn link
  • Changing CLI tools requires uninstallation of fervor globally
  • After playing with link enough your fervor instance will disappear and start getting babel errors

Forms + Optimistic Rendering

We dropped this out of the "Basic Framework" project. This is also one of those things that we didn't really need immediately. refetchQueries is sufficient for most cases. I need more data on what we need here and how to make it easy to work with. Apollo out of the box is actually quite difficult to optimistically render programmatically.

[Dev] Server Side GraphQL Hot Reloading

It would be nice to find a way to reload the postgraphile server in both of these 2 cases:

[] The database changes
[] A change is made in the graph folder

With these changes it should be a lot quicker to iterate on the backend side of things.

Add helpers for basic graphile plugins

These helpers should allow the following at least:

  • Add query
  • Add mutations
  • Remove queries and migrations
  • Add Types
  • Adding a more straightforward way to access graphql types (cleanly)

Supporting subscriptions using graphql

I think for this one we need to wait for postgraphql to add subscriptions. We may need to do something in fervor to help here. If postgraphql doesn't add subscriptions, we should find a way to do this.

Ability to add custom reducers

As I was writing the doc on local state I realized I haven't yet added the ability to add reducers. We haven't needed them on our project yet so we haven't added them. We should definitely get this done.

Server side gql shouldn't make a roundtrip

Right now all server side gql needs to make a roundtrip over the internet back to the same server. We can fix this, but I was running into issues with the initial implementation.

Add default plugins for graphile

We have a few useful plugins floating around.

  • Adding better filter tools for graphile (or, and, where, greaterthan, etc).
  • Removing Knex migrations from graphql by default

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.