The framework we’ve been promised
I had been watching it evolve for a while. It grew month after month out of a promising open source app, Telescope, itself built upon a promising framework, Meteor. The proposal was good : what if we could mix all the best JS technologies ? What if we could build something like the MEAN stack, but this time make it right ?
Then a client called us. The team was a young startup, needing an app to manage battery vending machines refillment. The budget was okay but well, it’s a startup, and startups can’t afford a hundred days of development just for an internal app. And there I knew this was an use case for this framework I almost forgotten, this was an use case for Vulcan.js.
Vulcan makes you a fast developper
Let’s start by the end: it was the right choice, I did manage to deliver the app in 15 days of work, including conception and meetings with the client. The app allows managers to organize the runners schedules (employees that refills the machines), salesmen to set up meetings with clients, and the runners themselves to fill a form when they refill a machine.
Regarding the technical aspects, the app is offline-friendly, handle a complex permission scheme with multiple roles, runs on mobile and browser, and sync everything in real time.
Here are screenshots of the planning interface, where the manager can schedules tour, and of the refillment interface for the runner. Thanks to Meteor, data are transmitted in real time to the runner, so manager/runner sync is virtually instantaneous.
The planning is built on top of react-big-calendar, the UI on top of Blueprint + Bootstrap, the autocomplete input on top of react-select.
Vulcan being a fullstack framework, those 15 days include setting up the database, developping the backend, developping the frontend, connecting all that and pushing it in production via Heroku.
And this was my first Vulcan project : the thing is so well structured that grasping its base principles takes only a few days if you already know a little about React and Meteor (you can be an absolute GraphQL beginner though).
The Good Elements
If I managed to meet my deadlines, this is thanks to the following facts :
- Vulcan is schema-centric, meaning that you can generate collections, graphQL queries, and forms based on a single JSON schema. You don’t have to master GraphQL to dive into Vulcan, you can learn it later when your needs evolve. This is excellent for a lot of corporate use case, where app are mostly tools to manipulate complex, structured data.
- Relevant features are baked in, like authentication, group permissions, SSR and so on. The list keep growing. For example I managed to add offline support quite easily in my app and this will be even easier when Apollo 2.0 is integrated to Vulcan.
- The community is great. The Slack is lively, the contributors there, willing to answer questions but also to understand better the developpers day-to-day struggles. Working with Vulcan was just amazing, I never felt alone in front of my code thanks to the community and the core team.
What it still needs: you.
Vulcan is young, the architecture is already good and the development team is getting closer at a very fast pace to a 1.9 version, and then to a 2.x version. Right now the correct description of Vulcan is “amazingly promising”.
And the more it gains momentum, the faster bugs are fixed, features added, performance improved.
I know not all of use have the time to contribute to an open source project, but there is for sure one thing you can do to help: give Vulcan a try and share your feedback! http://vulcanjs.org/
I am the co-founder of the French computer science and innovation office Cabinet Lebrun Burel — https://www.lebrun-burel.com
Always happy to talk about code, machine learning, innovation and entrepreneurship!