I'm working as one of the engineering leads in RunaHR. As our platform is a Saas, we thought It'd be good to have an API (We chose Ruby and Rails for this) and a SPA (built with React and Redux ) connected. We started the SPA with Create React App since It's pretty easy to start.\n\n

We use Jest as the testing framework and react-testing-library to test React components. In Rails we make tests using RSpec.\n\n

Our main database is PostgreSQL, but we also use MongoDB to store some type of data. We started to use Redis  for cache and other time sensitive operations. \n\n

We have a couple of extra projects: One is an Employee app built with React Native and the other is an internal back office dashboard built with Next.js for the client and Python in the backend side.\n\n

Since we have different frontend apps we have found useful to have Bit to document visual components and utils in JavaScript.","rawContent":"I'm working as one of the engineering leads in RunaHR. As our platform is a Saas, we thought It'd be good to have an API (We chose @{Ruby}|tool:989| and @{Rails}|tool:990| for this) and a SPA (built with @{React}|tool:1020| and @{Redux}|tool:4074| ) connected. We started the SPA with @{Create React App}|tool:5537| since It's pretty easy to start.\n\nWe use @{Jest}|tool:830| as the testing framework and @{react-testing-library}|tool:9787| to test React components. In Rails we make tests using @{RSpec}|tool:2539|.\n\nOur main database is @{PostgreSQL}|tool:1028|, but we also use @{MongoDB}|tool:1030| to store some type of data. We started to use @{Redis}|tool:1031|  for cache and other time sensitive operations. \n\nWe have a couple of extra projects: One is an Employee app built with @{React Native}|tool:2699| and the other is an internal back office dashboard built with @{Next.js}|tool:5936| for the client and @{Python}|tool:993| in the backend side.\n\nSince we have different frontend apps we have found useful to have @{Bit}|tool:4616| to document visual components and utils in @{JavaScript}|tool:1209|.\n\n ","publishedAt":"2020-02-05T18:32:01Z","private":false,"sample":false,"commentsCount":0,"upvotesCount":22,"upvoted":false,"flagged":false,"bookmarked":false,"viewCount":3102303,"draft":false,"createdAt":"2020-02-05T18:32:03Z","decisionType":"freeform","answers({\"first\":2})":{"type":"id","generated":true,"id":"$StackDecision:103607666193472806.answers({\"first\":2})","typename":"StackDecisionConnection"},"subjectTools":[],"fromTools":[],"toTools":[],"deleted":false,"link":null,"company":{"type":"id","generated":false,"id":"Company:102667275315628655","typename":"Company"},"stack":null,"topics":[],"services":[{"type":"id","generated":false,"id":"Tool:101231773835511567","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773835996572","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773849098825","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775357043443","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776176987604","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773770920543","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231778299095193","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774472965337","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773853533403","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773854388643","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773854768982","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774544144572","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776411419473","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773837179153","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775648895157","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773939333405","typename":"Tool"}],"user":{"type":"id","generated":false,"id":"User:103607490214490361","typename":"User"},"rootComments":[],"__typename":"StackDecision","parent":null},"$StackDecision:103607666193472806.permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"$StackDecision:103607666193472806.answers({\"first\":2})":{"count":0,"pageInfo":{"type":"id","generated":true,"id":"$StackDecision:103607666193472806.answers({\"first\":2}).pageInfo","typename":"PageInfo"},"edges":[],"__typename":"StackDecisionConnection"},"$StackDecision:103607666193472806.answers({\"first\":2}).pageInfo":{"hasNextPage":false,"endCursor":null,"__typename":"PageInfo"},"Company:102667275315628655":{"id":"102667275315628655","path":"/companies/runahr","imageUrl":"https://img.stackshare.io/company/156644/default_f9e00bf9184ead44001d5f27093bb0df9c7bb4a8.jpg","name":"RunaHR","slug":"runahr","features":[],"__typename":"Company"},"Tool:101231773835511567":{"id":"101231773835511567","name":"Ruby","slug":"ruby","title":"A dynamic, interpreted, open source programming language with a focus on simplicity and productivity","verified":false,"imageUrl":"https://img.stackshare.io/service/989/ruby.png","canonicalUrl":"/ruby","path":"/ruby","votes":3973,"fans":26486,"stacks":41823,"followingTool":false,"followContext":null,"__typename":"Tool"},"Tool:101231773835996572":{"id":"101231773835996572","name":"Rails","slug":"rails","title":"Web development that doesn't hurt","verified":false,"imageUrl":"https://img.stackshare.io/service/990/x57_Lorv.png","canonicalUrl":"/rails","path":"/rails","votes":5441,"fans":16797,"stacks":19470,"followingTool":false,"followContext":null,"__typename":"Tool"},"Tool:101231775357043443":{"id":"101231775357043443","name":"Redux","slug":"reduxjs","title":"Predictable state container for JavaScript apps","verified":false,"imageUrl":"https://img.stackshare.io/service/4074/13142323.png","canonicalUrl":"/reduxjs","path":"/reduxjs","votes":674,"fans":28476,"stacks":30542,"followingTool":false,"followContext":null,"__typename":"Tool"},"Tool:101231776176987604":{"id":"101231776176987604","name":"Create React App","slug":"create-react-app","title":"Create React apps with no build configuration","verified":true,"imageUrl":"https://img.stackshare.io/service/5537/oi64YzXY.jpg","canonicalUrl":"/create-react-app","path":"/create-react-app","votes":4,"fans":1298,"stacks":1039,"followingTool":false,"followContext":null,"__typename":"Tool"},"Tool:101231773770920543":{"id":"101231773770920543","name":"Jest","slug":"jest","title":"Painless JavaScript Unit Testing","verified":false,"imageUrl":"https://img.stackshare.io/service/830/jest.png","canonicalUrl":"/jest","path":"/jest","votes":175,"fans":5998,"stacks":9736,"followingTool":false,"followContext":null,"__typename":"Tool"},"Tool:101231778299095193":{"id":"101231778299095193","name":"react-testing-library","slug":"react-testing-library","title":"A lightweight solution for testing React components","verified":false,"imageUrl":"https://img.stackshare.io/service/9787/49996085.png","canonicalUrl":"/react-testing-library","path":"/react-testing-library","votes":4,"fans":278,"stacks":272,"followingTool":false,"followContext":null,"__typename":"Tool"},"Tool:101231774472965337":{"id":"101231774472965337","name":"RSpec","slug":"rspec","title":"Behaviour Driven Development for Ruby","verified":false,"imageUrl":"https://img.stackshare.io/service/2539/logo.png","canonicalUrl":"/rspec","path":"/rspec","votes":0,"fans":489,"stacks":2628,"followingTool":false,"followContext":null,"__typename":"Tool"},"Tool:101231773854768982":{"id":"101231773854768982","name":"Redis","slug":"redis","title":"Open source (BSD licensed), in-memory data structure store","verified":false,"imageUrl":"https://img.stackshare.io/service/1031/default_cbce472cd134adc6688572f999e9122b9657d4ba.png","canonicalUrl":"/redis","path":"/redis","votes":3943,"fans":54921,"stacks":59443,"followingTool":false,"followContext":null,"__typename":"Tool"},"Tool:101231774544144572":{"id":"101231774544144572","name":"React Native","slug":"react-native","title":"A framework for building native apps with React","verified":false,"imageUrl":"https://img.stackshare.io/service/2699/KoK6gHzp.jpg","canonicalUrl":"/react-native","path":"/react-native","votes":1156,"fans":34390,"stacks":33573,"followingTool":false,"followContext":null,"__typename":"Tool"},"Tool:101231776411419473":{"id":"101231776411419473","name":"Next.js","slug":"next-js","title":"A small framework for server-rendered universal JavaScript apps ","verified":false,"imageUrl":"https://img.stackshare.io/service/5936/nextjs.png","canonicalUrl":"/next-js","path":"/next-js","votes":326,"fans":6523,"stacks":6771,"followingTool":false,"followContext":null,"__typename":"Tool"},"Tool:101231775648895157":{"id":"101231775648895157","name":"Bit","slug":"bit","title":"An open source tool for code sharing","verified":false,"imageUrl":"https://img.stackshare.io/service/4616/QP1hRAU5_400x400.jpg","canonicalUrl":"/bit","path":"/bit","votes":0,"fans":152,"stacks":41,"followingTool":false,"followContext":null,"__typename":"Tool"}}

Shared insights
at

I'm working as one of the engineering leads in RunaHR. As our platform is a Saas, we thought It'd be good to have an API (We chose Ruby and Rails for this) and a SPA (built with React and Redux ) connected. We started the SPA with Create React App since It's pretty easy to start.

We use Jest as the testing framework and react-testing-library to test React components. In Rails we make tests using RSpec.

Our main database is PostgreSQL, but we also use MongoDB to store some type of data. We started to use Redis  for cache and other time sensitive operations.

We have a couple of extra projects: One is an Employee app built with React Native and the other is an internal back office dashboard built with Next.js for the client and Python in the backend side.

Since we have different frontend apps we have found useful to have Bit to document visual components and utils in JavaScript.

READ LESS
22 upvotes·3.1M views
Avatar of Bryam Rodriguez