# nanos make Neeto better

- **Authors**: Neeraj Singh
- **Published**: 2023-07-20
- **URL**: https://neeto.com/neeto/blog/nanos-make-neeto-better

---

In a [<u>previous blog</u>](https://blog.neeto.com/p/neeto-products-and-people), 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&nbsp;nanos&nbsp;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](https://assets-cdn.neetopublish.com/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6ImM2Mzg1MTNiLTg3YmMtNDUwNy1hNzNmLTVmMTYwNDAwMTAyMSIsInB1ciI6ImJsb2JfaWQifX0=--97406a6b09db043081d3d5be04dff691762917c1/nano-1.png)](https://assets-cdn.neetopublish.com/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6ImM2Mzg1MTNiLTg3YmMtNDUwNy1hNzNmLTVmMTYwNDAwMTAyMSIsInB1ciI6ImJsb2JfaWQifX0=--97406a6b09db043081d3d5be04dff691762917c1/nano-1.png)

At [<u>Neeto</u>](https://neeto.com/)<u>,</u> 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`

[<u>NeetoDesk</u>](https://www.neeto.com/neetodesk), [<u>NeetoCourse</u>](https://www.neeto.com/neetocourse), [<u>NeetoDeploy</u>](https://www.neeto.com/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, [<u>NeetoCal</u>](https://www.neeto.com/neetocal), [<u>NeetoForm</u>](https://www.neeto.com/neetoform), and [<u>NeetoInvoice</u>](https://www.neeto.com/neetoinvoice) can accept payment via Stripe using `neeto-payments`.

We have automation rules in [<u>NeetoDesk</u>](https://www.neeto.com/neetodesk) and need automation rules in [<u>NeetoPlanner</u>](https://www.neeto.com/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.