NEETO BLOG

nanos make Neeto better

Neeraj Singh

Neeraj Singh

July 20, 2023

In a previous blog, we saw that at neeto, we are building many products. In most of these products, some things are common, like inviting team members, integrating with Slack, filtering results, etc.

In this blog, we will see how we use nanos to share code at Neeto.

All the products need to manage their team members. It means people need to be invited, their roles need to be managed, and they need to be deactivated. This feature will be the same in all the products. So, copying and pasting the same code into multiple products is unnecessary.

We call this style of breaking a feature into the lowest level of business component that can be plugged into any product a “nano”. neeto-team-members It is a nano. It consists of a single repository, but in that repository, we have two folders neeto-team-members-engine and neeto-team-members-frontend.

nano-1.png

At Neeto, we use lots of nanos. Here is the complete list of nanos as of this writing. Every month, we add new nanos when the need arises.

  • neeto-team-members

  • neeto-integrations

  • neeto-ip-restrictions

  • neeto-github

  • neeto-form

  • neeto-approvals

  • neeto-filters

  • neeto-invite-links

  • neeto-slack

  • neeto-rules

  • neeto-custom-domains

  • neeto-payments

  • neeto-notifications

  • neeto-area51

  • neeto-tags

  • neeto-emails

  • neeto-compliance

  • neeto-monitor-ruby

  • neeto-bugtrap-ruby

  • neeto-sso

  • neeto-commons-backend

  • neeto-mail-interceptor

  • neeto-email-prefixer

  • neeto-org-incineration

  • neeto-webhooks-engine

NeetoDesk, NeetoCourse, NeetoDeploy, and other products need to integrate with GitHub. We encapsulated the whole logic in a nano called neeto-github. Any product that needs this feature can quickly add GitHub integrations.

Similarly, neeto-payments is a nano that makes it easier for any product to accept payment via Stripe. Currently, work is being done to add support for PayPal and Square. When this feature is done and released to the nano then all the products using this nano will get the new features without much extra work. Currently, NeetoCal, NeetoForm, and NeetoInvoice can accept payment via Stripe using neeto-payments.

We have automation rules in NeetoDesk and need automation rules in NeetoPlanner. So we started extracting all the rules-related work to neeto-rules nano. After all, any rule will have almost the same type of UI—define some conditions and then take some actions.

As the name suggests neeto-slack nano makes it easier for any product to have Slack integrations. Similarly, neeto-custom-domains make it easier for any product to have a custom domain.

It would be an understatement to say that Nanos drives Neeto. Every time we need to copy a feature from one product to another, we convert that feature into a nano. Now, we don’t need to copy-paste; that feature can be used for any Neeto product.

Subscribe to get future posts via email.

Ready to try Neeto?

Let’s get started now.