← Back to all articlesCategory

Technical articles

61 articles

Technical articles

Authentication and Role-Based Access Control in Next.js

In today's modern web development, the need for a robust authentication mechanism has become a common requirement. Many websites and web applications of all sizes need secure access controls to safeguard sensitive information and ensure a tailored user experience. Even in scenarios where access restrictions are not really needed, authentication can be used as a [...]

Read more →
Technical articles

The multi-cloud approach and useful tools for it like Kubernetes, Terraform & Ansible

When I started this series of articles I had something in mind, the way the cloud companies have categorized their services marketing strategies. It was a good starting point to organize what I wanted to say, but as I progressed with the series I realized there was more I should be saying. The focus of [...]

Read more →
Technical articles

Moving to the Cloud: What if you don't deal with infrastructure at all?

In my previous articles we covered the general view, what you should do first and what your end goal should be. But there is one last approach to cover, what if you do not run things at all? This is what's called Software as a Service (SaaS), you simply use services. You no longer pay [...]

Read more →
Technical articles

Embracing the cloud model for your Application Development

In my previous articles I covered the general view and the first "seamless" step you can take when moving to the cloud. As you progress with cloud adoption you will realize that's only a stepping stone in your path. It reduces the amount of work you'll need to do initially, but it shouldn't be your [...]

Read more →
Technical articles

Moving to the cloud with IaaS

As we covered in my previous article the first thing you can get from the cloud is a way of running your servers for you. You no longer need to have a data center, deal with communications, power, refrigeration, etc… You simply pay for your servers and data center needs on a monthly basis. This [...]

Read more →
Technical articles

Decoupling Drupal with Next.js

Introduction Drupal is undoubtedly a powerful and feature-rich Content Management System (CMS) that has earned its reputation for robust content management capabilities. However, when it comes to the presentation, Drupal’s built-in Twig-based Front End layer sometimes falls short when compared to more modern alternatives like ReactJS or other Front End frameworks. The use of ReactJS [...]

Read more →
Technical articles

The Cloud Shift

This will be a series of articles where I will cover different cloud technologies, companies and tendencies. When someone says cloud, people think different things. Some think about how their phone can be lost and found, others think about how they need the internet to do anything, but this series of articles will focus mainly [...]

Read more →
Technical articles

How to Integrate Snowflake with Drupal

Snowflake is a cloud-based data warehouse that allows companies to keep and analyze huge amounts of data. Snowflake offers a high degree of scalability, performance, and security. Many companies choose Snowflake because it's a reliable and efficient way to manage their data. So, if you are using Drupal and would like to take advantage of [...]

Read more →
Technical articles

Creating a Bottom Navigation Bar in Flutter

In this article, we will explore the creation of a bottom navigation bar in Flutter, taking advantage of the capabilities of this powerful framework for mobile application development. The bottom navigation bar is a fundamental widget that allows you to build an intuitive and efficient tab-based user interface for your application. Throughout this article, I [...]

Read more →
Technical articles

Introduction to automation with GitHub Actions

GitHub Actions is a powerful and flexible automation tool built into GitHub. It allows developers to automate build, test, and deploy tasks. If you already use GitHub as your code repository, you should at least consider what GitHub Actions can offer you to automate repetitive tasks and replace the use of additional tools. With GitHub [...]

Read more →
Technical articles

CircleCI 101

Today there are many CI/CD options. Most services include some CI/CD services in their free offer (like GitHub and GitLab). Alternatively you can host your solution with Jenkins and avoid using a online service. But even with such a fearse competition, I think CircleCI free offering is an interesting choice. The documentation is amazing, it [...]

Read more →
Technical articles

Tailwind CSS

Tailwind CSS is an open source CSS framework thought of as "Utility-first", which, having predefined functionalities, can add classes to the styles and is reflected in the elements. It helps a lot to speed up the development process since less code is written because everything is done by including the code directly within the HTML [...]

Read more →
Technical articles

How to have a good LinkedIn profile if you are a software developer

Every day it becomes more and more necessary for companies to have a website, a mobile application, or technological solutions that optimize their processes. For this reason, the demand for software developers doesn’t stop growing, and more and more offers are coming through LinkedIn for thousands of developers. However, even with all this, many developers [...]

Read more →
Technical articles

Drupal Configuration Split

One of the best tools for a good configuration management in Drupal is configuration split. In Drupal 8+ exporting and importing site configurations to other sites is very common, the problem comes when developers have development functions enabled that they do not want or should not bring to production. A clear example of this would [...]

Read more →
Technical articles

The other side to Drupal migrations

Up until now, site migrations have been studied from a development point of view in our “Understanding migrations in Drupal 8” blog, considering the ins and outs of what is required to make it all happen. However, there is another aspect that is less talked about but equally important in the process, and it is [...]

Read more →
Technical articles

Tips for upgrading Drupal 8 to Drupal 9!

This article is a step-by-step guide to upgrading Drupal 8 to 9. Through this tutorial find some tricks and tips that could help you apply the proceeding with updating. As we know, Drupal 8 is dependent on Symfony 3, and Symfony 3's end of life was November 2021. Consequently, Drupal 8 support ended on November [...]

Read more →
Technical articles

Landmarks and Accessibility

What are landmarks? Landmarks are website elements that make the structure to define different sections or regions that are navegables for the screen readers such as NVDA in Windows and Voice Over in iOS. This structure offer assistive technologies to the users that needs to be oriented by their self using the keyboard only. Landmarks [...]

Read more →
Technical articles

Adding context to our application in Next.js

Today we will be looking at how to use context within React applications. The first thing to note is that context is an easier way to pass data through the component tree without having to manually pass information at each level. In a typical React application, data is passed from the top down through props, [...]

Read more →
Technical articles

Creating a new page and layout using Next.js

Next.js is a React framework that allows you to create applications that run on both the client and the server, also known as JavaScript end-to-end applications. This framework helps to create end-to-end applications in less time by optimizing basic functions, such as client-side routing and page layout. At the same time, it simplifies advanced functions, [...]

Read more →
Technical articles

Docksal vs. Lando: comparison

I have compared some aspects of Docksal and Lando. Next I will present a summary of particular features I have focused on. It is not a complete list of features; nonetheless, I consider that they are some of the most important for a local development environment focused on customer work. User interface Both Docksal and [...]

Read more →
Technical articles

My first app using NextJs and MongoDB

Today, we’re going to create our first NextJS app that uses MongoDB to store information. This will be a simple products app that shows a list of products on the homepage. We will also build the tools to let us add, edit or delete products as needed. Let’s start? First, we run this command: npx [...]

Read more →
Technical articles

First steps with Next.js

Next.js is a JavaScript framework that allows you to build static, server-side rendering web applications using React. To get started we need to have Node.js installed, if you don't already have it: You can install it from here: NodeJs Next, we must install Nextjs on the local by executing the following command: npm install next [...]

Read more →
Technical articles

Easy REST API testing with PHPStorm

We all had been there, suddenly you need to get your feet wet on a REST API, you have a copy of PHPStorm for IDE and you want your testing to be a part of your project for later use. If you had been paying attention to the title of this Article then you guessed [...]

Read more →
Technical articles

Managing multiple git repositories together

First stop git submodule Git submodule is quite simple but it falls short quite rapidly. As soon as you need anything but a basic reference, you will need to look somewhere else. Even though you can pull all together, they still remain separate repositories. Options There is a world of options, but two main options [...]

Read more →
Technical articles

Outline Wiki and Google's SSO integration

We've started using outline's wiki a couple of years ago. We liked it due to its integration with Google's Single-Sign-On (SSO) and Google's documents. In addition to this is quite simple and we have it running on a Heroku instance of our own. It is a nodeJS applicaction (7usd p/m), a Postgres DB and a [...]

Read more →
Technical articles

Create a Gatsby site with multiple types of Markdown pages

In the previous blog post I explained the method we used to export the content of the old 7Sabores Drupal 7 site into Markup files. In this blog post I am going to review how these files became the content source of a new Gatsby site, replacing both the CMS and its database. One of [...]

Read more →
Technical articles

Exporting content from Drupal 7 to Markdown

Recently, we decided to rebuild the 7Sabores website in GatsbyJS, a front end framework and static site generator based on React. Once that decision was made, the next step was to define how to move the content stored in the database of the original Drupal 7 site. While it is possible to use Drupal as [...]

Read more →
Technical articles

Open Commerce (formerly Reaction Commerce) development environment using Traefik

When dealing with Open Commerce (formerly Reaction Commerce) you will probably want to have a server. In this article, we explain how to set it up. Introduction Open Commerce (formerly Reaction Commerce) has a lot of moving parts. The new 4.0 version will reduce the footprint, but it still packs 3 different parts: A backend, [...]

Read more →
Technical articles

Things you need to know before starting with Open Commerce (formerly Reaction Commerce)

Introduction In a nutshell what Open Commerce is: A backend/GraphQL API An admin written with meteor An example frontend (which now is NextJS based) and you can either build on top or rewrite from scratch The Dockerized environments are custom NodeJS pre-built images of each module, but you can change them to be development environments [...]

Read more →
Technical articles

Create a custom Mailchimp Open Commerce (formerly Reaction Commerce) payment method

Mailchimp Open Commerce (formerly Reaction Commerce) is primarily a headless GraphQL API with a great storefront and administrator interface that you can fork or use as a base for creating your own, that it’s great for customization given you the choice of how to build the entire store. Mailchimp Open Commerce came with great documentation [...]

Read more →
Technical articles

Mailchimp Open Commerce (formerly Reaction Commerce): does the world really need another e-commerce platform?

It feels like the e-commerce arena is already flooded with too many options that aren't that different from each other. Shopify, WooCommerce, PrestaShop, Magento, Weebly, BigCommerce… The list goes on and on. So, considering that bloated landscape, is there a case to be made for yet another option?  The answer is yes.  After spending over [...]

Read more →
Technical articles

How every developer should learn how to learn Part 1

If you are an avid learner there is a chance you probably have heard of the famous course Learning How to Learn: Powerful mental tools to help you master tough subjects from Coursera, taught by PhD Barbara Okley and PhD Terrence Sejnowski. I already took this course once and it’s second part Mindshift: Break Through [...]

Read more →
Technical articles

How to add support for multiple authors per page on GatsbyJS

While working on a Gatsby site, we have a requirement to provide support for multiple authors/contributors per page. We got this working by following the excellent Gatsby documentation Mapping node types. In this post, I will be describing the steps we followed. Adding gatsby-transformer-yaml dependency using npm Run this on your Gatsby project within the [...]

Read more →
Technical articles

Drupal and Gatsby Live Preview

After attending Decoupled Days at NYC and watching Shane Thomas talking about Live Preview with Gatsby and Drupal and showing the Drupal Gatsby Live Preview module. I got excited about it and decided to try the module and invest time improving some features. I also decided to add this feature to weKnow contributed Boina projects [...]

Read more →
Technical articles

Web Performance Basics—Also What Makes Gatsby Sites Fast?

At weKnow, we’re all about making the best user experiences for our clients. Whenever we get a project, we always try to ensure that the end product is a smooth UX that comes with a convenient UI and an aesthetically pleasing website layout. Our weapon of choice is, of course, Gatsby and to that end [...]

Read more →
Technical articles

How do we maintain a powerful team culture within our distributed team

Behind every successful company, there’s a strong team culture as its foundation. Team culture brings together the values, beliefs, behaviors and attitudes shared by a group of individuals who work together for a common goal. It is built overtime through the interaction of people who are constantly sharing their knowledge and support one another. A [...]

Read more →
Technical articles

How to export your Drupal 8 content to Markdown files

This is the second blog post in the series Migrate to Markdown files. You can read the first one How to migrate a Drupal 7 site to Markdown files here. We've been asked numerous times how to export Drupal 8 content to markdown files. We have tackled this task by using Drupal Console Snippets and, [...]

Read more →
Technical articles

How to create a text/markdown node to process content using Gatsby

Sometimes when building Gatsby sites, there is a need to consume and transform markdown content from a source that is not a markdown file. In our case, it was a JSON file containing markdown data. In this post, we will show you how you can consume markdown content from a JSON file to create a [...]

Read more →
Technical articles

How to embed React components in markdown using Gatsby, MDX, and short-codes

After finishing a project that involved migrating a Sculpin site to GatsbyJS using MDX to allow embeding React components in markdown files, we decided to publish a series of posts to share our experience. Welcome to the first post of the series. In this post, you will learn how to use MDXRenderer and MDXProvider to [...]

Read more →
Technical articles

How to migrate a Drupal 7 site to Markdown files

We decided to migrate our old 7sabores blog site from Drupal7 to Markdown to be consumed using GatsbyJS. The first question was, is there any contributed module available to do that easily? The answer was no. Even in D7, finding a module with this behaviour could be very tricky. The only solution was PHP scripts [...]

Read more →
Technical articles

From MacBook Pro to Thinkpad X1 Extreme: A survival guide

Recently my Mac was constantly warning me that it was running out of space, and with that warning it was reminding me that I didn’t have a good Apple option to upgrade. Apple lately has put a lot of effort in destroying what was once the perfect laptop (because, you know, courageTM). Among many other [...]

Read more →
Technical articles

Basic Guide to GraphQL

With the arrival of REST API the developers world became prettier, REST allowed us to have a central space to hold all our data in one place while using multiple environments (website, android app, ios app or connect third-party systems.) But developers reached the point where we noticed something wrong on the numerous endpoint and [...]

Read more →
Technical articles

Improving Drupal and Gatsby Integration – The Gatsby Boina Starter

This is the latest post of the “Improving Drupal and Gatsby Integration” series. This time I will be talking about the Gatsby Boina Starter; we are contributing to make your Drupal-Gatsby integration easier. The Boina starter ships with the main Gatsby configuration files you might need to get up and running on your Gatsby site. [...]

Read more →
Technical articles

Improving Drupal and Gatsby Integration – The Drupal Boina Distribution

Drupal 8 has plenty of contributed modules to help you building a headless/decoupled web application. However, getting all those set up correctly could be a daunting task. Understanding this is an issue that should be addressed and as mentioned previously in our blog posts of this “Improving Drupal and Gatsby Integration” series we wrote and [...]

Read more →
Technical articles

Improving Drupal and Gatsby Integration – The Gatsby Plugin

On the first post of this series “Improving Drupal and Gatsby Integration – The Drupal Modules”. I introduced two contributed modules we wrote to simplify the Drupal usage while working with Gatsby. One of the modules mentioned was tui_editor a WYSIWYG markdown editor integration with the Toast UI Editor project. This module allows content editors [...]

Read more →
Technical articles

Improving Drupal and Gatsby Integration – The Drupal Modules

At weKnow we are not only using Drupal, we also take contributing back very seriously and now is the time for improving the Drupal and Gatsby integration. As mentioned in my personal blog, Moving weKnow's personal blog sites from Drupal to GatsbyJS , we have been using Gatsby with Drupal for projects as our decouple [...]

Read more →
Technical articles

Creating a modern web application using Symfony API Platform

During this year and at several events SANDCamp, DrupalCamp LA, DrupalCon Nashville, and DrupalCamp Colorado I had a chance to talk and show how at WeKnow we approached the development of API driven applications. For all of you that use Drupal, this is something like decoupled or headless Drupal but without the Drupal part. This [...]

Read more →
Technical articles

Debugging SOLR results

I recently worked on a project which used SOLR and the search results were not showing as expected. The client had very specific requirements on the order of the search results, comprised by complex data types with lots of fields that affected the result score. Fortunately we had a sample result-set, such that that certain [...]

Read more →
Technical articles

Creating a Custom Ajax Command in Drupal 8

Drupal 8 provides the option to include an Ajax Callback within our applications using the Ajax Framework. There are some existing functions which can be used: Methods to hide/show elements in the html document, attach content to an element, redirect a page after a submit, and so on. Sometimes we need to implement something particular, [...]

Read more →
Technical articles

Drupal 8 Add Cache Metadata to Render Arrays

Some operations are time consuming, really heavy memory and/or CPU intensive. By performing an operation one time, and then caching the output, the next requests could be executed faster. Drupal provides an easy cache API in order to store, retrieve and invalidate cache data. I did this tutorial because I couldn’t find a step by [...]

Read more →
Technical articles

How to install Drupal 8 from an existing configuration

The Configuration Management (CM) system, is probably one of the most well known and exciting features of Drupal 8. But wouldn't it be even more awesome to be able to install a site, export configuration and then re-install site from scratch importing the previously exported configuration? For those who are not yet clear on what [...]

Read more →
Technical articles

Triggering MailChimp campaigns with Node.js

We are living in an era of interconnected systems, and there are better ways to provide a complete solution to a technical challenge than inventing everything from scratch or coming up with a mega app to control all the things. Instead, the key is to connect with other products that are really good at solving [...]

Read more →
Technical articles

Running Multiple Python Versions in Mac OSX

Last few months I have been delving into Data Science and Machine Learning. Both fields are related. In fact, in my opinion Data Science could be considered almost a prerequisite for Machine Learning. These are not only related to data manipulation and statistic concepts, but they are also connected in terms of what program language [...]

Read more →
Technical articles

How To Remove Duplicates In MongoDB

If you ever find yourself in a position where you need to remove duplicate entries on a MongoDB collection, as per version 3.0 you will need to use Aggregation . This might seem a bit confusing because in SQL you only need to use a simple “Group By”, which will display the data fields grouped [...]

Read more →
Technical articles

How To Develop Skills For Amazon’s Alexa Voice

As of January 2018, it would be a fair bet to say that Amazon’s Alexa is arguably the leading voice recognition service for end users.* The Amazon Appstore for Voice has seen a gigantic surge since its launch in 2015, going from 130 to over 1,400 skills only in the first year. Today there are [...]

Read more →
Technical articles

Survival guide to Backup & Restore MongoDB

Despite being on the market for over a decade, to many, MongoDB still carries a mythical tone with a hint of ‘wizardry’. The popular misconception is that MongoDB is only suitable for hip startups and former startups that are still considered ‘hip’ and out of the box, such as AirBnB. Even with all the buzz [...]

Read more →
Technical articles

Switching from Vagrant to Docker

Setting up a new local environment can be challenging and really time-consuming if you're doing it from scratch. While this might not be a big deal when working as a single developer on a project, in a team-based scenario it's important to share the same infrastructure configuration. That's why we highly recommended using a tool [...]

Read more →
Technical articles

A first taste of Drupal theming using Pattern Lab

A few months ago I had the pleasure of starting a new journey in my professional career, joining the weKnow family. This was a natural step after collaborating in the last couple of years with Jesús and Enzo in open source projects like DrupalConsole. Right from the start, working to reach our projects’ milestones has [...]

Read more →
Technical articles

How we approached building the new weKnow site

It’s been a little over a year since weKnow came to life as a rebranding for Anexus, which allowed me to join the company as a new business partner. My main goal within the company is directing our efforts to explore new fields and technologies (that’s right, we are not just a Drupal shop anymore!) [...]

Read more →
Technical articles

The WordPress Console Story

During a ‘workation’ (vacation while working) with my family in Colombia in late December 2016, I was brainstorming on how best to use all the knowledge acquired while developing the Drupal Console . Drupal Console is a CLI tool that can be used to generate boilerplate code, interact with, and debug Drupal. Drupal Console was [...]

Read more →
Technical articles

The Drupal Console Journey

Before the existence of the Drupal Console as a project, it all began with an idea to make Drupal 8 better. Every great invention/innovation begins with an idea, and the Drupal transition from 7 to 8 came with massive changes to the fundamental operating procedures of yesterday. Symfony components were making a splash into Drupal [...]

Read more →