DEV Community

Cover image for Woovi Stack
Danilo Assis for Woovi

Posted on

Woovi Stack

Woovi focuses on delivering features that customers need and improving them. For this, we also seek to follow processes and techniques that allow us to move the following:

  • Deliverability
  • Quality
  • Speed

Let's get to know a little bit of our stack that makes it possible to reach the above principles making the process easy.

Woovi
Woovi is a Startup that enables shoppers to pay as they like. To make this possible, Woovi provides instant payment solutions for merchants to accept orders.

Javascript
The whole stack focus on Javascript with Typescript on the backend and front end.

We bet in the javascript environment based on all technologies existent in it, the open source world, libraries, and contributors, and principally in the cost-benefit when hiring a junior developer and teaching it.

Backend
Our backend focuses on delivering the best experience for our internal platform and public services like our API and PluginJs.

The main technologies are:

  • Javascript and Typescript;
  • MongoDB;
  • Koa.js;
  • GraphQL;
  • GraphQL Helix;
  • GraphQL Websocket Protocol;
  • Bull Jobs;
  • Jest for tests with graphql and supertest;

Frontend
The front end follows the Javascript and Typescript to deliver a good experience for the final user and combine technologies with the backend.

The main technologies are:

  • Javascript and Typescript;
  • React;
  • GraphQL;
  • Relay;
  • Jest for tests with React Testing Library;

Deep dive
Going deep, below you can find a more detailed list of our stack:

  • Backend with Node.js, MongoDB, Koa.js, GraphQL-Helix
  • Frontend with React, React Native, GraphQL, Relay
  • Jest and typescript for both sides
  • Javascript (language)
  • Typescript (type system)
  • Node (backend framework)
  • Koa.js (server framework)
  • GraphQL (API)
  • Mongoose (mongo schema)
  • bulljs (event-driven distributed jobs)
  • Jest (test framework)
  • Supertest (HTTP tests)
  • Webpack (bundling server and frontend apps)
  • rollup (bundling for packages and libraries)
  • babel (enable modern syntax and plugins)
  • jscodeshift (codemod)
  • openapi (API REST documentation)
  • Docusuarus (documentation)
  • Gatsby (landing page)
  • NextJs (landing page)
  • Prettier (code formatting)
  • Eslint (lint rules)
  • Hygen (codegen)
  • Redis (cache, queue management, pubsub)
  • ws + graphql-ws (for WebSockets)
  • react (declarative ui)
  • relay (declarative data fetching)
  • styled-components (CSS in js)
  • storybook (design system and email builder)
  • testing library (testing dom)
  • material-UI (UI base components)
  • styled-system (functional CSS)
  • react-router (routing)
  • nivo + d3 (for charts)
  • react-table (table management)
  • draftjs (rich text)
  • recoil ("global" state management)
  • formik (forms)
  • react-native (native apps)
  • Fastlane (android/ios deploy automation)
  • CircleCI + GitHub actions (CI/CD)

If you want to work with us, we are hiring!

Photo by Jonathan Borba on Unsplash

Top comments (4)

Collapse
 
uncledev profile image
Fernando dos Santos

Interesting article.

Collapse
 
riguelbf profile image
Riguel Figueiro

Great tech stack.. but I felt that I missed mentioning something about architecture and communication, such as the cloud platforms used, service architecture models, and approaches to domain separation, because in my opinion it is super important for a project to be flexible and scalable

Collapse
 
jilherme profile image
jilherme

You guys have different projects for landing/ rest of the app? I was intrigued when you said that use NextJS just for the landing page. Why not for all the application?

Collapse
 
sibelius profile image
Sibelius Seraphini

we started way before nextjs