Skip to content
Parris Khachi edited this page Nov 5, 2017 · 5 revisions

To see a quick preview of what it looks like to develop with Fervor - checkout out our Example TodoMVC App.

If you have ideas about how to make this guide more flexible drop us a line in our issues. If you'd like to contribute to this guide, feel free to shoot over a pull request.

Philosophy

In order to both get all the latest and greatest features and make coding quick/easy Fervor requires some amount of predictability. By supplying a routing system and predictable Forms we can render and process code server side and client-side. By supplying, migrations, PostgraphQL and auth features we can more easily server side render and we can more easily allow developers to just get up and running quickly. While we have made many of these decisions almost all of them are reversible. We very much like the "batteries included but replaceable" philosophy. Check out the sections on "custom middleware" and "custom configuration" to learn how to replace any Babel or Webpack config.

Mission

In all things, Fervor aims to simplify software development. Developers using Fervor should be allowed to only think about the business logic of their systems. To achieve this, whenever possible, Fervor should only reveal just as much complexity as needed for the task the developer wants to achieve. We need not expose endless configuration files, or force people to know which versions of React work with which versions of React Router or Enzyme.

Projects

Anyone is free to contribute in any way they feel. If you'd like tasks to be assigned to you, feel free to talk to us. If you want to solve a problem that is particularly troubling your workflow, feel free to open an issue to share intent about fixing it. Then feel free to pick the task up!

We use GitHub projects for core contributors to decide what to build. We believe in Kanban, and being able to pull the next import task right off the top of the stack. We prioritize using the RICE scoring system. Issues is likely a good place to start looking at problems to fix!

How to contribute?

  1. Create a database called 'example' and 'example_test' in postgres
  2. Clone this repo
  3. yarn install
  4. You can use unit tests and integration tests to simulate prod vs dev

Note - for integration tests you'll need Java. The test runner will auto-setup selenium though.

Testing with the Example Repo

  1. Clone the example repo - https://github.com/fervorous/fervor-todo-mvc
  2. yarn install in the example repo, and this repo
  3. yarn link in the fervor directory, yarn link fervor in the example project directory
  4. fervor migrate:latest in the example project
  5. yarn build; yarn start:prod or yarn start:dev depending if you're trying to test prod or dev.

Note - everytime you install a dependency in fervor, you'll need to do all of the above, and maybe rm -rf node_modules in the example project. This is unfortunate, but somewhat required due the way we're trying to bootstrap applications. Does anyone have ideas to improve this?