Building a modern alternative to Salesforce, powered by the community.
Go to file
Charles Bochet 02673a82af
Feat/put target object identifier on use activities (#4682)
When writing to the normalized cache (record), it's crucial to use _refs
for relationships to avoid many problems. Essentially, we only deal with
level 0 and generate all fields to be comfortable with their defaults.

When writing in queries (which should be very rare, the only cases are
prefetch and the case of activities due to the nested query; I've
reduced this to a single file for activities
usePrepareFindManyActivitiesQuery 🙂), it's important to use queryFields
to avoid bugs. I've implemented them on the side of query generation and
record generation.

When doing an updateOne / createOne, etc., it's necessary to distinguish
between optimistic writing (which we actually want to do with _refs) and
the server response without refs. This allows for a clean write in the
optimistic cache without worrying about nesting (as the first point).

To simplify the whole activities part, write to the normalized cache
first. Then, base queries on it in an idempotent manner. This way,
there's no need to worry about the current page or action. The
normalized cache is up-to-date, so I update the queries. Same idea as
for optimisticEffects, actually.

Finally, I've triggered optimisticEffects rather than the manual update
of many queries.

---------

Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
2024-04-01 13:12:37 +02:00
.github Fix Vale CI and change vision (#4724) 2024-04-01 11:39:04 +02:00
.nx Migrate to a monorepo structure (#2909) 2023-12-10 18:10:54 +01:00
.vscode Update yarn commands (#4644) 2024-03-25 12:31:18 +01:00
.yarn/releases Fix docker install (#2925) 2023-12-11 13:36:24 +01:00
packages Feat/put target object identifier on use activities (#4682) 2024-04-01 13:12:37 +02:00
tools/eslint-rules [ESLint rule] prevent useRecoilCallback without a dependency array (#4411) 2024-03-12 15:12:17 +01:00
.dockerignore feat: merge front and server dockerfiles and optimize build (#4589) 2024-03-21 19:22:21 +01:00
.eslintrc.js TWNTY-3825 - ESLint rule: const naming (#4171) 2024-02-25 13:52:48 +01:00
.gitignore File token chores (#4664) 2024-03-26 13:42:09 +01:00
.nvmrc Embrace nx monorepo structure with root package.json (#3255) 2024-01-05 14:59:58 +01:00
.prettierignore POC: chore: use Nx workspace lint rules (#3163) 2024-01-03 23:07:25 +01:00
.prettierrc POC: chore: use Nx workspace lint rules (#3163) 2024-01-03 23:07:25 +01:00
.vale.ini Fix vale ci (#3353) 2024-01-10 17:05:23 +01:00
.yarnrc.yml Fix docker install (#2925) 2023-12-11 13:36:24 +01:00
install.sh feat: reinforce one liner experience (#4688) 2024-03-29 15:25:41 +01:00
jest.config.js POC: chore: use Nx workspace lint rules (#3163) 2024-01-03 23:07:25 +01:00
jest.preset.js POC: chore: use Nx workspace lint rules (#3163) 2024-01-03 23:07:25 +01:00
LICENSE Update LICENSE (#714) 2023-07-17 10:08:37 +02:00
Makefile Re-add docker-compose up command 2024-01-13 11:02:00 +01:00
nx Migrate to a monorepo structure (#2909) 2023-12-10 18:10:54 +01:00
nx.json Setup the foundation for Twenty UI library. (#4423) 2024-03-13 14:21:18 +01:00
package.json Fix overlay scroll gaps (#4512) 2024-03-31 10:53:37 +02:00
README.md Update demo link (#4483) 2024-03-14 17:51:27 +01:00
render.yaml File token chores (#4664) 2024-03-26 13:42:09 +01:00
tsconfig.base.json Setup the foundation for Twenty UI library. (#4423) 2024-03-13 14:21:18 +01:00
yarn.lock Fix overlay scroll gaps (#4512) 2024-03-31 10:53:37 +02:00


Twenty logo

The #1 Open-Source CRM

Tailored to your unique business needs

🌐 Website · 📚 Documentation · Discord · Figma


Companies view


Weve spent thousands of hours grappling with traditional CRMs like Pipedrive and Salesforce to align them with our business needs, only to end up frustrated — customizations are complex and the closed ecosystems of these platforms can feel restrictive.

We felt the need for a CRM platform that empowers rather than constrains. We believe the next great CRM will come from the open source community. And weve packed Twenty with powerful features to give you full control and help you run your business efficiently.


Demo

Go to demo.twenty.com and login with the following credentials:

email: noah@demo.dev
password: Applecar2025

See also:
🚀 Self-hosting
🖥️ Local Setup

Why Choose Twenty?

We understand that the CRM landscape is vast. So why should you choose us?

⛓️ Full control, Full Freedom: Contribute, self-host, fork. Break free from vendor lock-in and join us in shaping the open future of CRM.

📊 Data, Your Way: The days when the role of CRM platforms was to shift manual data entries to a database are over. Now, the data is already there. CRM 2.0 should be built around your data, allowing you to access and visualize any existing sources, not forcing you to retrofit your data into predefined objects on a remote cloud.

🎨 Effortlessly Intuitive: We set out to create something that we ourselves would always enjoy using. The main application draws inspiration from Notion, a tool known for its user-friendly interface and customization capabilities.


What You Can Do With Twenty

We're currently in the development phase of Twenty's alpha version.

Please feel free to flag any specific need you have need by creating an issue.

Below are some features we have implemented to date:

Add, filter, sort, edit and track customers:

Companies view

Create one or several opportunities for each company:

Companies view

Track deals effortlessly with the email integration:

Companies view

Tailor your data model to meet business needs:

Companies view

See rich notes displayed in a timeline:

Companies view

Create tasks on records

Companies view

Companies view

Connect your CRM to all your tools through our APIs and Webhooks.

Companies view


What's In Store

Heres what you can look forward to:

Frequent updates: Were shipping fast! Expect regular updates and new features that enhance your experience.

🔗 Extensibility: Were putting the power in your hands. Soon, youll have the tools to extend and customize Twenty with plugins and more.


Join the Community