Development
-
Configure NextJS with Storybook and TailwindCSS
In this article, we are going to show how you can create a NextJsproject with Storybook and TailwindCSS.
Read more
-
The git-rebase option no-one knows that will shock your coworkers!
A few weeks ago, a moment before pushing upstream a glorious bug-fix, I ran the test suite locally, just to discover that I broke it!
Read more
-
SCA payments with Solidus Stripe gem
Strong Customer Authentication (SCA) is a relatively new securityrequirement that came in into force in Europe during September 2019.In order to comply with the law, a...
Read more
-
What every reviewer would like to see in your next Pull Request
Everyone keeps telling us to be gentle when reviewing Pull Requests, and that’s the right thing to do,but are we nice with who reviews ours?
Read more
-
Nebulab's Home Office Setups Showcase
We really enjoyed this showcase of Basecamp’s home desk setups,and since our team is also 100% WFH these days, we thought we’d do something similar:
Read more
-
The Transformative Nature of Ownership in Engineering Orgs
During my career, I’ve had the honor of observing and being part of tens of engineering teams as aconsultant, IC and manager.
Read more
-
Testing Ruby decorators with super_method
Often we need to override a simple method which returns a data set, and most ofthe times you just need to add a couple of fields. In this blog post, I’m goingto sugges...
Read more
-
5 No-Code eCommerce Management Tools
As an eCommerce consulting firm, we know the value behind a custom store implementation: not goingwith a SaaS solution affords you maximum flexibility and endless inno...
Read more
-
A Guide to Solidus Events: Everyone's Invited!
Event programming (also known as the pub/sub pattern) hasbeen gaining lot of traction in recent times, not without reason. Events allowto easily add custom behavior to...
Read more
-
A Guide to Effective Pull Request Reviews
These days code is a collaborative matter. Good developers are expectedto both write great code and help others write code. Code reviews play a crucialpart in this: th...
Read more
-
Reverse Coverage: Find which tests execute which lines of code
Have you ever wondered what tests cover a specific part of a project?
Read more
-
Build a Rails application with VueJS using JSX
Have you ever wondered how many ways there are to build a Ruby on Rails application with VueJS?
Read more
-
Rails testing tips for newcomers
Writing effective tests is tricky. When working withRuby on Rails, a good startingbook about this matter is“Testing Rails”, published byThoughtbot. In this article, I ...
Read more
-
An introduction to mutation testing
Test-driven development (TDD) is one of the most useful skills you’ll learn as a software developer since it allows you to add new features, refactor old code, as well...
Read more
-
Improve your QA with GitHub Actions
In this article, I’m going to show you how I’ve automated a small part of myclient’s project’s QA using GitHub Actions.
Read more
-
12 Factor Rails Settings
Good apps are built following the The Twelve-Factor App principlesand we’ve been adhering to those for some time now; problem is: Ruby on Railsdoesn’t always follow th...
Read more
-
A weird Capybara error in `within` block
At Nebulab we are encouraged in spending Fridays on opensource projects, and I simply love it.
Read more
-
The Virtual DOM: enabling declarative thinking on the client-side
Despite some controversial opinions on React.js, aJavaScript library for building user interfaces, many will agree that certainunderlying concepts have changed the gam...
Read more
-
A Rails middleware to change log level at runtime
Have you ever found the Rails logs too verbose in development?
Read more
-
Boosting sales with browser cache!?!
Recently one of our customers informed us that they were getting weird numbers fromFacebook and Google in regards to order purchase amounts on their Solidus basedeComm...
Read more
-
Create a fast NuxtJS website using Prismic
Like all web developers, I love to experiment with new tools, libraries and frameworks.This time, for one of my side projects (my new portfolio), I decided to use Nuxt...
Read more
-
Your eCommerce Needs Authorization: Enter Solidus
Ensuring privacy of customer data is undoubtedly a matter of great importancefor any reputable retail business going online. Setting up an online presenceentails globa...
Read more
-
Preview your PRs with Docker
When we work on a project, we like working with short-lived featurebranches in the form of small pull requests. PRs are great, but sometimes it canbe hard for other pe...
Read more
-
Testing Ruby on Rails Migrations
100% code coverage, right? Yes, I know, you don’t merge code in master that isnot fully tested and all that stuff. Yet I’m almost sure there’s one thingthat you may be...
Read more
-
Action Cable vs AnyCable: fight!
Introduction
Read more
-
6 Design Principles for your HTTP APIs
There’s no debate around the fact that good API design is an art. When we stumble into a properlydesigned API, we can feel it. Just like good visual UIs, good APIs are...
Read more
-
The strange case of ActiveRecord ConcurrentMigrationError
A few weeks ago, after deploying some new code to production I receiveda notification about a strange new-to-me error:
Read more
-
How to switch a Solidus eCommerce to Multi-tenant
In this blogpost I’ll show how to migrate a Solidus app from single tomulti-tenant. But what is multi-tenancy? Here I’ll give a little introductionon what multi-tenant...
Read more
-
Fully Scalable CSS Grid
CSS Grid is a great feature! What I want to share here is a little tweak thatshould be used when working with grids and scalable contents. In a responsivecontext, a wa...
Read more
-
Why on Rails: Story of a former PHP developer
In this article I want to share with you my first experience with Ruby on Rails,but before that, I think an introduction to the Ruby language and the relatedRuby on Ra...
Read more
-
Using ActiveSupport to deprecate gems code
Often, when writing Ruby gems, there’s the common problem of changing thingsthat our project’s users could be using in their own code. When they willupdate our gem, th...
Read more
-
Help your Solidus customers with a chatbot
I want to show you how to make a Ruby bot for Telegram that canhelp your customers use your Solidus store through Wit.
Read more
-
AB(C) testing with Ruby on Rails
I’d have never expected A/B testing would be so easy with Ruby on Rails. At thevery beginning I didn’t even have an idea on what A/B tests were but after alittle inves...
Read more
-
Deploy Solidus to Heroku like a boss
In this tutorial we’ll show you how to deploy a Solidus eCommerce applicationto Heroku, the most famous cloud platform.
Read more
-
RSpec Basic: Using Test Doubles
In this blog post we’ll focus on differences between stubs, mocks and spiesin RSpec. We think that there’s a lot of wording confusion for those who startusing these te...
Read more
-
Integrate Solidus with external services using Cangaroo
In this article we’ll create a simple application to show how tointegrate and use Cangaroo to handle any external serviceintegration with your Solidus store. Our goal ...
Read more
-
The birth of a Cangaroo
Before getting deeper into some technical Cangaroo guide I wanted to givesome more insights about how Cangaroo was born. This is the story that tellshow the death of a...
Read more
-
The Soliton Hackathon
In order to let the creativity to flow, we decided to organize an hackathoninvolving all the team.Nebulab believes in side projects, they help to form the junior membe...
Read more
-
Why Solidus?
Spree or Solidus? Which OSS project Nebulab, as an agency involved inRuby on Rails eCommerce development, should invest on? This blog posttells the story about what’s ...
Read more
-
Neat - A semantic approach to Grid
As a result of a Responsive approach in Web Design and therefore tothe need to create adaptable layouts suitable from different devices, has becomeusual, I would say a...
Read more
-
Authentication with Rails, JWT and ReactJS
Here at Nebulab we love to hack with new exciting technologies, that’s why we dedicate20% of our work time for study and open source contribution. In this post we’ll c...
Read more
-
Installing Devise Invitable on Spree
Usually it’s easy to add a gem (not an extension) to Spree but sometimes thingscan get a little rough, devise_invitableis just like that, at first it might seem easy t...
Read more
-
Using npm like Bundler
Coming from a Ruby and Rails background, we’ve always found very strange hownowadays most JavaScript libraries that require Node Packaged Modulesrecommend some depende...
Read more
-
Using Ember.js with Spree
For some time we’ve been wondering what would it be like to integrate Ember.jswith a Spree Ecommerce application. In this post we’ll see how to create a simpleEmber.js...
Read more
-
Our Ember.js Toolchain
Now that we’ve been working with Ember.js for a while, we wanted to give a quick updateon what we found works out for us while working with it, both client and server ...
Read more
-
One Page Checkout with Spree
The purpose of this post is to show one way to implement one page checkoutwith Spree. The goal here is to build a solution which is clean and elegant,especially taking...
Read more
-
Monitoring Unicorn with Monit
It’s been a while since we switched all our infrastructure from Apache2 + Passenger to Nginx + Unicorn and we’ve really been satisfied with such a choice.
Read more
-
Developing Spree extension with TDD
Here at Nebulab, we have just built an extension (Spree Subscriptions) that adds to Spree features needed to buy and manage subscription based items, ideal for magazin...
Read more
-
Awesome MOTDs with Ubuntu
As computer geeks, we all get a warm and fuzzy feeling when looking at ASCII art and well structured information and it seems that the Ubuntu Community loves us so much.
Read more
-
ABC of SEO for Ruby on Rails developers
This article focuses on best practices for optimizing a Ruby on Rails web application for search engines (SEO). It’s not meant to be a definitive or complete solution ...
Read more
-
Ruby performance showdown
Ever since Ruby 1.9.3’s first stable release (October 31 2011), we started thinking Nebulab required some updates.To keep things lean and simple, we wanted to run some...
Read more
-
How to create a single patch from different git commit
We don’t like to write the same code multiple times. If you have to apply any changes to projects that share files (the files you are editing), you can use git to acco...
Read more
-
Maintenance Page with Apache and Capistrano
Sometimes our apps have to remain offline for maintenance purposes, sometimes for a short time, sometimes for more than a while. In both cases it’s a good practice to ...
Read more