<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: sateshcharan</title>
    <description>The latest articles on Forem by sateshcharan (@sateshcharan).</description>
    <link>https://forem.com/sateshcharan</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2242011%2F19248617-50a4-4d2c-b99e-2045c1e20d26.png</url>
      <title>Forem: sateshcharan</title>
      <link>https://forem.com/sateshcharan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/sateshcharan"/>
    <language>en</language>
    <item>
      <title>🔐 Benefits and Drawbacks of Passkey-Only Login Systems</title>
      <dc:creator>sateshcharan</dc:creator>
      <pubDate>Sun, 27 Oct 2024 10:32:42 +0000</pubDate>
      <link>https://forem.com/sateshcharan/benefits-and-drawbacks-of-passkey-only-login-systems-cf6</link>
      <guid>https://forem.com/sateshcharan/benefits-and-drawbacks-of-passkey-only-login-systems-cf6</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fikj96zo0g2775dq5utro.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fikj96zo0g2775dq5utro.png" alt="hanko hero image" width="800" height="709"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Guest Author: sateshcharan&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you've recently noticed a "Sign in with a passkey" option on sites like GitHub, Vercel or Google, you're not alone – passkeys are gaining traction quickly. Here's a quick rundown of the pros and cons of switching to a passkey-only system. 🔐&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3k2edw4mr9c8qhmn5p9n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3k2edw4mr9c8qhmn5p9n.png" alt="google passkey" width="586" height="422"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;🔹 Quick Overview of Passkeys&lt;/strong&gt;&lt;br&gt;
Passkeys, aka WebAuthn credentials, are secure, public-key-based authentication credentials designed to replace passwords and make logging in both easier and safer. They let you log in to apps and websites without needing a password by using biometrics like Face ID, Touch ID, or a device PIN. 💻&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;✅ Benefits of Passkey-Only Systems&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Superior Security&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🛡️ Since passkeys are tied to specific websites, they’re a inherently defensive against &lt;strong&gt;phishing&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;🔒 No more weak or reused passwords, and database breaches have less impact.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Smooth User Experience&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🧠 Users don’t need to create, remember, or manage passwords.&lt;/li&gt;
&lt;li&gt;⚡ Log in with a quick biometric scan or PIN.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Low Support Costs&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;💸 Fewer Password Resets: No more forgotten passwords to reset!&lt;/li&gt;
&lt;li&gt;🔄 Simplified Account Recovery: Account recovery can be managed through the user’s device or platform account.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Cross-Platform friendly&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📲 Passkeys can sync across devices seamlessly on many platforms.&lt;/li&gt;
&lt;li&gt;🌐 Works on different operating systems and browsers supporting WebAuthn.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;❌ Drawbacks of Passkey-Only Login Systems&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Low User Adoption Trend&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📚 Many users are still new to passkeys, so some guidance may be needed.&lt;/li&gt;
&lt;li&gt;🌍 Not all browsers or platforms support passkeys yet.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Device Dependent&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📱 If a user loses access to their device, **recovery **might be tricky.&lt;/li&gt;
&lt;li&gt;🚚 Moving passkeys to a new device can be a bit of a hassle.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Complex to Implement&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🛠️ Developers need to make substantial changes to &lt;strong&gt;backend authentication&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;🌐 Different device capabilities mean extra work to ensure fallback options.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Lock-In Risk&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔒 Some users might feel locked into specific **ecosystem **providers like Apple or Google.&lt;/li&gt;
&lt;li&gt;🔍 Passkey management by these platforms can raise &lt;strong&gt;privacy&lt;/strong&gt;concerns.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;🎉 Wrapping Up&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Passkey-only login systems offer a lot of advantages in terms of security, ease of use, and support savings. However, challenges with adoption, implementation, and platform dependency remain. As the tech evolves, many of these challenges may get easier. For developers interested in implementing passkeys, it's best to offer clear user instructions, create strong fallback options, and consider a phased approach that combines passkeys with traditional logins. 🚀&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔒 Complete Authentication and User Management solution&lt;/strong&gt;&lt;br&gt;
If you’re looking for a complete management solution, Hanko should be your go to choice. You can integrate from passwords all the way to passkeys, 2FA, and SSO. (MFA coming in Oct).&lt;/p&gt;

&lt;p&gt;The best part is it’s Open-source. You can checkout their &lt;a href="https://github.com/teamhanko/hanko" rel="noopener noreferrer"&gt;Github&lt;/a&gt;. Star the repo to show your support!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fys2xm9ntpkf9hqd5bglg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fys2xm9ntpkf9hqd5bglg.png" alt="hanko footer" width="720" height="316"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>passkey</category>
      <category>hanko</category>
      <category>authentication</category>
      <category>credentials</category>
    </item>
    <item>
      <title>🚀 Supercharge Your Marketing with TwentyCRM + n8n</title>
      <dc:creator>sateshcharan</dc:creator>
      <pubDate>Fri, 25 Oct 2024 18:42:12 +0000</pubDate>
      <link>https://forem.com/sateshcharan/supercharge-your-marketing-with-twentycrm-n8n-1hfd</link>
      <guid>https://forem.com/sateshcharan/supercharge-your-marketing-with-twentycrm-n8n-1hfd</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmwomotg7fs2hh3aqucn9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmwomotg7fs2hh3aqucn9.png" alt="twentycrm with n8n" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're managing customer relationships, you need to check out TwentyCRM! I recently discovered it through oss.gg, and after years of using clunky traditional CRMs with limited flexibility, TwentyCRM has been a game-changer. It’s packed with modern integrations right out of the box, offering flexibility that feels like a night-and-day difference.&lt;/p&gt;

&lt;p&gt;But here’s where it gets really exciting—what if you could automate your marketing tasks, email campaigns, or even perform sentiment analysis using tools like n8n? With TwentyCRM and n8n, you can! Let’s dive in to see how it’s done. 🧠✨&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6g6nb6dsefnbmjwrg4xi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6g6nb6dsefnbmjwrg4xi.png" alt="twentycrm banner" width="800" height="454"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;From "Self hosting with modified docker files" section:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set up &lt;code&gt;.env&lt;/code&gt; file with necessary environment variables.&lt;/li&gt;
&lt;li&gt;Use the code for &lt;code&gt;docker-compose.yml&lt;/code&gt; and run:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker compose up -d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Login to your applications:

&lt;ul&gt;
&lt;li&gt;Generate API keys for CRUD operations in TwentyCRM, save the 
credentials in n8n, and use them with the HTTP Request module in n8n.&lt;/li&gt;
&lt;li&gt;Set up a Webhook trigger in n8n for event-driven communication if 
needed, and save the generated URL in TwentyCRM.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Build, test, and deploy your workflow to automate your processes seamlessly.&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;🧩 &lt;strong&gt;Why Integrate TwentyCRM with n8n?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;TwentyCRM provides a solid, modern CRM foundation, and when integrated with automation tools like n8n, it eliminates repetitive tasks, boosts productivity, and expands functionality by integrating with &lt;strong&gt;hundreds&lt;/strong&gt; of modules.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7b1r57lmujyqrytsswtp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7b1r57lmujyqrytsswtp.png" alt="twentycrm feedback" width="800" height="362"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://twenty.com/" rel="noopener noreferrer"&gt;Visit TwentyCRM to know more&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6j2hrlzv7oeb32ayk2mj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6j2hrlzv7oeb32ayk2mj.png" alt="n8n integrations" width="800" height="482"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://n8n.io" rel="noopener noreferrer"&gt;Visit n8n to know more&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🖥️ &lt;strong&gt;System Requirements&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Managed Environment with Official Support&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No requirements; all resources are handled by the service provider&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Self Hosting&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;RAM&lt;/strong&gt;: A minimum of 2GB is recommended to prevent crashes due to insufficient memory.-&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docker &amp;amp; Docker Compose:&lt;/strong&gt; Ensure both are installed and up-to-date.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚙️ &lt;strong&gt;Setting Up the Environment&lt;/strong&gt;&lt;br&gt;
There are two options for setting up TwentyCRM and n8n:&lt;/p&gt;

&lt;p&gt;☁️&lt;strong&gt;Managed Environment with Official Support&lt;/strong&gt;&lt;br&gt;
TwentyCRM and n8n offer managed services that are super easy to set up and affordable. If you're looking for a hassle-free start, this option would suit you best&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fofcxgtmov4b7sjr76ex0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fofcxgtmov4b7sjr76ex0.png" alt="homepage of twentycrm &amp;amp; n8n" width="800" height="307"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Visit the websites of &lt;a href="https://twenty.com" rel="noopener noreferrer"&gt;TwentyCRM&lt;/a&gt; and &lt;a href="https://n8n.io" rel="noopener noreferrer"&gt;n8n&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Click “Sign Up” and register.&lt;/li&gt;
&lt;li&gt;Upon successful registration you'll be able to login.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🏠&lt;strong&gt;Self-Hosting Setup&lt;/strong&gt;&lt;br&gt;
If you prefer self-hosting, TwentyCRM and n8n have open-source versions that you can install with limited features:&lt;/p&gt;

&lt;p&gt;🖥️💾&lt;strong&gt;Self Hosting with Official docker-compose files&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi4iujvwm6mzs9bzej4ld.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi4iujvwm6mzs9bzej4ld.png" alt="twentycrm one click docker compose" width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TwentyCRM offers a convenient One-line script:&lt;/strong&gt;&lt;br&gt;
From your terminal, run:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Download the docker-compose.yml file:
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bash &amp;lt;(curl -sL https://git.new/20)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Launch TwentyCRM Containers
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd twentycrm
docker-compose up -d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;You can then access TwentyCRM by opening: &lt;code&gt;http://localhost:3000&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create volume for n8n persistence
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker volume create n8n_data
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Start n8n docker container
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;This command will download all required n8n images and start your container, exposed on port 5678. To save your work between container restarts, it also mounts a docker volume, n8n_data, to persist your data locally.&lt;/p&gt;

&lt;p&gt;You can then access n8n by opening: &lt;code&gt;http://localhost:5678&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;🖥️🤖&lt;strong&gt;Self Hosting with modified docker-compose files&lt;/strong&gt;(⚠️ Advisable only for advanced users)&lt;br&gt;
Alternatively, you can leverage AI to generate a combined &lt;code&gt;docker-compose.yml&lt;/code&gt; file by merging individual files into a single container setup. This approach simplifies troubleshooting and streamlines networking between containers, making your workflow much easier to manage.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;version: "3.9"
name: twenty

services:
  change-vol-ownership:
    image: ubuntu
    user: root
    volumes:
      - server-local-data:/tmp/server-local-data
      - docker-data:/tmp/docker-data
    command: &amp;gt;
      bash -c "
      chown -R 1000:1000 /tmp/server-local-data
      &amp;amp;&amp;amp; chown -R 1000:1000 /tmp/docker-data"

  server:
    image: twentycrm/twenty:${TAG}
    volumes:
      - server-local-data:/app/packages/twenty-server/${STORAGE_LOCAL_PATH:-.local-storage}
      - docker-data:/app/docker-data
    ports:
      - "3000:3000"
    mem_limit: 2g  # Memory limit for standalone Docker Compose setup

    environment:
      PORT: 3000
      PG_DATABASE_URL: postgres://twenty:twenty@${PG_DATABASE_HOST}/default
      SERVER_URL: ${SERVER_URL}
      FRONT_BASE_URL: ${FRONT_BASE_URL:-$SERVER_URL}
      REDIS_PORT: ${REDIS_PORT:-6379}
      REDIS_HOST: ${REDIS_HOST:-redis}

      ENABLE_DB_MIGRATIONS: "true"

      SIGN_IN_PREFILLED: ${SIGN_IN_PREFILLED}
      STORAGE_TYPE: ${STORAGE_TYPE}
      STORAGE_S3_REGION: ${STORAGE_S3_REGION}
      STORAGE_S3_NAME: ${STORAGE_S3_NAME}
      STORAGE_S3_ENDPOINT: ${STORAGE_S3_ENDPOINT}

      ACCESS_TOKEN_SECRET: ${ACCESS_TOKEN_SECRET}
      LOGIN_TOKEN_SECRET: ${LOGIN_TOKEN_SECRET}
      REFRESH_TOKEN_SECRET: ${REFRESH_TOKEN_SECRET}
      FILE_TOKEN_SECRET: ${FILE_TOKEN_SECRET}
    depends_on:
      change-vol-ownership:
        condition: service_completed_successfully
      db:
        condition: service_healthy
    healthcheck:
      test: curl --fail http://localhost:3000/healthz
      interval: 5s
      timeout: 5s
      retries: 10
    restart: always   

  worker:
    image: twentycrm/twenty:${TAG}
    command: ["yarn", "worker:prod"]
    environment:
      PG_DATABASE_URL: postgres://twenty:twenty@${PG_DATABASE_HOST}/default
      SERVER_URL: ${SERVER_URL}
      FRONT_BASE_URL: ${FRONT_BASE_URL:-$SERVER_URL}
      REDIS_PORT: ${REDIS_PORT:-6379}
      REDIS_HOST: ${REDIS_HOST:-redis}

      ENABLE_DB_MIGRATIONS: "false" # it already runs on the server

      STORAGE_TYPE: ${STORAGE_TYPE}
      STORAGE_S3_REGION: ${STORAGE_S3_REGION}
      STORAGE_S3_NAME: ${STORAGE_S3_NAME}
      STORAGE_S3_ENDPOINT: ${STORAGE_S3_ENDPOINT}

      ACCESS_TOKEN_SECRET: ${ACCESS_TOKEN_SECRET}
      LOGIN_TOKEN_SECRET: ${LOGIN_TOKEN_SECRET}
      REFRESH_TOKEN_SECRET: ${REFRESH_TOKEN_SECRET}
      FILE_TOKEN_SECRET: ${FILE_TOKEN_SECRET}
    depends_on:
      db:
        condition: service_healthy
      server:
        condition: service_healthy
    restart: always

  db:
    image: twentycrm/twenty-postgres:${TAG}
    volumes:
      - db-data:/bitnami/postgresql
    environment:
      POSTGRES_PASSWORD: ${POSTGRES_ADMIN_PASSWORD}
    healthcheck:
      test: pg_isready -U twenty -d default
      interval: 5s
      timeout: 5s
      retries: 10
    restart: always

  redis:
    image: redis
    ports:
      - "6379:6379"
    restart: always

  n8n:
    image: docker.n8n.io/n8nio/n8n
    container_name: n8n.twenty
    ports:
      - "5678:5678"
    volumes:
      - ./n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
    restart: unless-stopped

volumes:
  docker-data:
  db-data:
  server-local-data:

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;⚠️before starting ensure that you have setup the environment variables correctly using &lt;a href="https://twenty.com/developers/section/self-hosting/self-hosting-var" rel="noopener noreferrer"&gt;TwentyCRM docs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Start the containers with &lt;code&gt;docker compose up -d&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6wg6n69jh4e21ut022qp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6wg6n69jh4e21ut022qp.png" alt="login page for twentycrm &amp;amp; n8n in selfhosting" width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Now you should have working applications of TwentyCRM &amp;amp; n8n to which you must be able to login to.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚡ &lt;strong&gt;Interacting with TwentyCRM&lt;/strong&gt;&lt;br&gt;
TwentyCRM provides APIs for CRUD operations in both REST and GraphQL formats, along with webhook support for event-driven integration.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;When an event occurs, TwentyCRM will make a POST request to the configured webhook URL based on the permissions set.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The API endpoints are organized into Metadata and Core categories, allowing flexible access based on your needs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;API Access Based on Subscription Plans&lt;/strong&gt;&lt;br&gt;
Some API endpoints are only accessible with a subscription plans. Here’s a breakdown of the accessible APIs for Free and Paid plans:&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;API Type&lt;/th&gt;
      &lt;th&gt;Description&lt;/th&gt;
      &lt;th&gt;Free Plan Access&lt;/th&gt;
      &lt;th&gt;Paid Plan Access&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Core API&lt;/td&gt;
      &lt;td&gt;Access to customer data, records, etc.&lt;/td&gt;
      &lt;td&gt;Restricted&lt;/td&gt;
      &lt;td&gt;Full&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Metadata API&lt;/td&gt;
      &lt;td&gt;Access to account settings and configurations&lt;/td&gt;
      &lt;td&gt;Full&lt;/td&gt;
      &lt;td&gt;Full&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Webhook Support&lt;/td&gt;
      &lt;td&gt;Event-based triggers to external services&lt;/td&gt;
      &lt;td&gt;Limited&lt;/td&gt;
      &lt;td&gt;Full&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;GraphQL API&lt;/td&gt;
      &lt;td&gt;Flexible data queries&lt;/td&gt;
      &lt;td&gt;Restricted&lt;/td&gt;
      &lt;td&gt;Full&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The Webhook Support offer limited access on the Free plan, while the Paid plan provides full access, ideal for more complex workflows and automation tasks involving mutations.&lt;/p&gt;

&lt;p&gt;Detailed docs can be found at &lt;a href="https://twenty.com/developers" rel="noopener noreferrer"&gt;TwentyCRM&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ll0laowftqdramh6yo2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ll0laowftqdramh6yo2.png" alt="twentycrm api playground" width="800" height="431"&gt;&lt;/a&gt;&lt;br&gt;
TwentyCRM also provides a playground like setup to test endpoint communication:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://twenty.com/developers/section/rest-apis" rel="noopener noreferrer"&gt;Rest Api's&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twenty.com/developers/section/graphql-apis" rel="noopener noreferrer"&gt;Graphql Api's&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🛠️ &lt;strong&gt;Setting Up the Integration&lt;/strong&gt;&lt;br&gt;
Seamless integration primarily revolves around three key concepts. Let’s quickly explore these concepts and illustrate them with a simple workflow example.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Create Your TwentyCRM API Access&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You’ll need an API key to enable communication between TwentyCRM and your automation tool.&lt;/li&gt;
&lt;li&gt;Login to TwentyCRM and navigate to Account Settings &amp;gt; Developers &amp;gt; API &amp;amp; Webhooks.&lt;/li&gt;
&lt;li&gt;Generate a New API Key with permissions to read customer data and update records as required.&lt;/li&gt;
&lt;li&gt;Use the generated key in n8n's HTTP Request module header as follows:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Authorization: Bearer {API_KEY}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxnaivxuf3xq78lk4lr70.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxnaivxuf3xq78lk4lr70.png" alt="twentycrm &amp;amp; n8n webhook apikey pages" width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Setup n8n Webhook endpoint&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a new workflow in n8n and add a trigger, such as a Webhook, that listens for new customer events in TwentyCRM.&lt;/li&gt;
&lt;li&gt;Set the webhook method to POST and copy the generated URL.&lt;/li&gt;
&lt;li&gt;Paste the URL into the designated field for the webhook URL in TwentyCRM.&lt;/li&gt;
&lt;li&gt;Remember to replace this URL with the production webhook URL once development is complete.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Access TwentyCRM data in n8n&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set up the HTTP Request node in n8n.&lt;/li&gt;
&lt;li&gt;In this node, use the {API_KEY} generated in Step 1 to fetch customer details from TwentyCRM.
[Image idea: Screenshot of n8n workflow canvas with a Webhook and HTTP Request node visible, illustrating the flow setup.]&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🧠🤖 &lt;strong&gt;AI-Powered API Request Generation (for low and no-code devs)&lt;/strong&gt;&lt;br&gt;
You might be thinking, "But I don’t know how to write API requests." Don’t worry! Here’s where AI comes in.&lt;/p&gt;

&lt;p&gt;GPT-based natural language processing tools can help you write API requests, even if you’re not a coder. You simply describe what your needs as prompts and AI generates the API request for you.&lt;/p&gt;

&lt;p&gt;Here’s how we can leverage it:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Step 1: Describe Your Request&lt;/strong&gt;&lt;br&gt;
Ask the AI with a prompt like, "Generate a cURL API request to fetch {example} data from TwentyCRM in n8n." &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Step 2: Use the Response&lt;/strong&gt;&lt;br&gt;
Copy and paste the response into n8n’s HTTP Request node using the Import cURL feature. Adjust any credentials or parameters as needed, and n8n will automatically set up the request for you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkqu83issz5cqmqnf0hgq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkqu83issz5cqmqnf0hgq.png" alt="import curl option in n8n" width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This approach streamlines API setup, making it easier to integrate various services into your workflows.&lt;br&gt;
⚠️Do remember that AI may not always yield the desired result so use with caution.&lt;/p&gt;

&lt;p&gt;🧑‍🏫 &lt;strong&gt;Using n8n to automate workflow with TwentyCRM&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fghm9i2omcpjgioih9jhc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fghm9i2omcpjgioih9jhc.png" alt="Image description" width="800" height="663"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Workflow Overview&lt;/strong&gt;&lt;br&gt;
This workflow is triggered when a new order is created in Shopify. Then:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The order information is stored in TwentyCRM,&lt;/li&gt;
&lt;li&gt;An invoice is created in Harvest and stored in Trello,&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If the order value is above 50, an email with a discount coupon is sent to the customer and they are added to a MailChimp campaign for high-value customers; otherwise, only a "thank you" email is sent to the customer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Step 1: Shopify Trigger&lt;/strong&gt;&lt;br&gt;
Trigger: This workflow starts when a new order is created in Shopify.&lt;br&gt;
Details: The “Shopify Trigger” node listens for the orders/create event from Shopify, capturing essential details like customer information, order number, and order total.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Step 2: Extract Key Information (Set Fields)&lt;/strong&gt;&lt;br&gt;
Purpose: This step formats the Shopify order details to make them easily accessible for downstream nodes.&lt;br&gt;
Details: The “Set Fields” node extracts relevant data, including:&lt;br&gt;
Customer’s first name, last name, email, and phone number.&lt;br&gt;
Order total, which is crucial for later decision-making steps.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Step 3: Store Customer Data in TwentyCRM&lt;/strong&gt;&lt;br&gt;
Purpose: To create or update the customer’s information in TwentyCRM for centralized customer management.&lt;br&gt;
Details: The “TwentyCRM - Upsert Customer” node sends an HTTP request to TwentyCRM’s API to save the customer’s first name, last name, email, and phone number.(AI models can be used to write the required API requests)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Step 4: Generate an Invoice in Harvest&lt;/strong&gt;&lt;br&gt;
Purpose: To automatically generate an invoice for the order in Harvest.&lt;br&gt;
Details: The “Harvest” node uses the customer’s information and order details to create an invoice with the specified currency and the order number as the purchase order reference.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Step 5: Log Order in Trello&lt;/strong&gt;&lt;br&gt;
Purpose: To create a Trello card for tracking the order fulfillment process.&lt;br&gt;
Details: The “Trello” node generates a card with the order number and basic order information on a designated Trello list, allowing the team to manage tasks related to this order.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Step 6: Evaluate Order Value (IF - Order Value)&lt;/strong&gt;&lt;br&gt;
Purpose: To determine if the order qualifies as a high-value purchase.&lt;br&gt;
Condition: The “IF - Order Value” node checks whether the order total exceeds 50. This decision directs the workflow to either send a coupon email or a basic “thank you” email.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Step 7A: Send High-Value Customer Coupon Email (If Order &amp;gt; 50)&lt;/strong&gt;&lt;br&gt;
Purpose: To encourage repeat purchases for high-value customers.&lt;br&gt;
Details: If the order total is greater than 50, the “Gmail - Send Coupon Email” node sends an email containing a 15% discount coupon for the next purchase.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Step 7B: Add Customer to Mailchimp High-Value Campaign&lt;/strong&gt;&lt;br&gt;
Purpose: To target high-value customers for future marketing campaigns.&lt;br&gt;
Details: After sending the coupon email, the “Mailchimp” node adds the customer to a Mailchimp list with a “high-order” tag, enabling personalized marketing campaigns.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Step 8: Send Thank You Email (If Order ≤ 50)&lt;/strong&gt;&lt;br&gt;
Purpose: To acknowledge smaller orders with a personalized thank-you message.&lt;br&gt;
Details: If the order total is 50 or less, the “Gmail - Send Thank You Email” node sends a simple thank-you email to the customer.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🤝&lt;strong&gt;Show your support for these amazing projects&lt;/strong&gt;&lt;br&gt;
🌐&lt;a href="//https:/twenty.com"&gt;TwentyCRM&lt;/a&gt; | ✨Star &lt;a href="https://github.com/twentyhq/twenty" rel="noopener noreferrer"&gt;TwentyCRM&lt;/a&gt; on github |  📦&lt;a href="https://twenty.com/developers" rel="noopener noreferrer"&gt;TwentyCRM docs&lt;/a&gt;&lt;br&gt;
🌐&lt;a href="https://n8n.io/" rel="noopener noreferrer"&gt;n8n&lt;/a&gt; | ✨Star &lt;a href="https://github.com/n8n-io/n8n" rel="noopener noreferrer"&gt;n8n&lt;/a&gt; on github | 📦&lt;a href="https://docs.n8n.io/" rel="noopener noreferrer"&gt;n8n docs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🎯 &lt;strong&gt;Exited to try? have a go at these workflows:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creating automatic reminders when leads go cold 🔔&lt;/li&gt;
&lt;li&gt;Scoring customer sentiment using AI analysis 🔍&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Do you have any cool integration ideas or questions? Drop them in the comments! 👇 Let's brainstorm together!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgoeooh2pfhfem92nrf5e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgoeooh2pfhfem92nrf5e.png" alt="footer image" width="800" height="81"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>twentycrm</category>
      <category>n8n</category>
      <category>ai</category>
      <category>lowcode</category>
    </item>
    <item>
      <title>Unlocking Fundamental Analysis with OpenBB: A Comprehensive Guide</title>
      <dc:creator>sateshcharan</dc:creator>
      <pubDate>Mon, 21 Oct 2024 18:40:38 +0000</pubDate>
      <link>https://forem.com/sateshcharan/unlocking-fundamental-analysis-with-openbb-a-comprehensive-guide-2pbo</link>
      <guid>https://forem.com/sateshcharan/unlocking-fundamental-analysis-with-openbb-a-comprehensive-guide-2pbo</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffurme0s2otz168t2y4mh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffurme0s2otz168t2y4mh.png" alt="openbb" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the world of investing, understanding the intrinsic value of stocks is crucial for making informed decisions. Fundamental analysis (FA) focuses on evaluating a company's financial health, performance metrics, and overall market conditions to determine its true value. OpenBB, an open-source investment research platform, empowers investors to perform in-depth fundamental analysis with advanced tools and real-time data. This blog post will guide you through using OpenBB for FA in stock markets.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Fundamental Analysis?&lt;/strong&gt;&lt;br&gt;
Fundamental analysis involves examining various financial metrics and qualitative factors to evaluate a company's stock. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsa3p7mgip6f6fo78mnbs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsa3p7mgip6f6fo78mnbs.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key components include:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Financial Statements:&lt;/strong&gt; Understanding the balance sheet, income statement, and cash flow statement.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Valuation Ratios:&lt;/strong&gt; Using metrics like Price-to-Earnings (P/E), Price-to-Book (P/B), and Dividend Yield.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Market Conditions:&lt;/strong&gt; Considering economic indicators, industry trends, and competitive positioning.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why Choose OpenBB for Fundamental Analysis?&lt;/strong&gt;&lt;br&gt;
OpenBB offers a suite of powerful features that make it an ideal tool for &lt;br&gt;
fundamental analysis:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Comprehensive Data Access:&lt;/strong&gt; OpenBB aggregates vast amounts of financial data from diverse sources, enabling users to analyze multiple asset classes seamlessly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User-Friendly Interface:&lt;/strong&gt; The platform is designed for both seasoned investors and beginners, offering intuitive tools to navigate complex data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customization:&lt;/strong&gt; Being open-source, OpenBB allows users to tailor their analysis tools and scripts according to their unique needs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Getting Started with OpenBB&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Installation&lt;/strong&gt;&lt;br&gt;
To begin, you need to install OpenBB. The process is straightforward:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Clone the repository
git clone https://github.com/OpenBB-finance/OpenBBTerminal.git

# Change directory to the cloned repository
cd OpenBBTerminal

# Install dependencies
pip install -r requirements.txt

# Launch OpenBB
python main.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 2: Accessing Financial Data&lt;/strong&gt;&lt;br&gt;
Once OpenBB is running, you can access financial data for various stocks. Here’s how to pull fundamental data for a specific stock, such as Apple (AAPL):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; stock.load("AAPL")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command loads Apple’s financial data, including key metrics from its latest quarterly and annual reports.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Analyzing Financial Statements&lt;/strong&gt;&lt;br&gt;
OpenBB provides detailed views of financial statements. To analyze Apple's income statement, use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; financials.income_statement()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You’ll see key figures like revenue, net income, and earnings per share (EPS), which are crucial for assessing the company’s profitability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Evaluating Valuation Ratios&lt;/strong&gt;&lt;br&gt;
Valuation ratios help investors determine if a stock is undervalued or &lt;br&gt;
overvalued. To compute the P/E ratio, simply run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; valuation.pe_ratio()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also check other ratios such as P/B and Dividend Yield:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; valuation.pb_ratio()
&amp;gt; valuation.dividend_yield()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 5: Comparative Analysis&lt;/strong&gt;&lt;br&gt;
OpenBB allows users to compare different stocks easily. For example, if you want to compare AAPL with Microsoft (MSFT):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; stock.compare("AAPL", "MSFT")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command displays a side-by-side comparison of key financial metrics, helping you make informed investment decisions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 6: Utilizing Advanced Features&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;OpenBB includes various advanced features for in-depth analysis:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI-Driven Insights:&lt;/strong&gt; Utilize machine learning models to predict trends based on historical data.&lt;/p&gt;

&lt;p&gt;![Uploading&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyt2ux97fwfb3nqbf467r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyt2ux97fwfb3nqbf467r.png" alt="openbb copilot" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Custom Scripts:&lt;/strong&gt; Write Python scripts to automate repetitive analysis tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Visualizations:&lt;/strong&gt; Use built-in charts and graphs to visualize data for better understanding.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Real-World Use Case&lt;/strong&gt;&lt;br&gt;
Let’s consider a practical example of using OpenBB for fundamental analysis of AAPL:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Financial Health:&lt;/strong&gt; You find that Apple has consistently increased its revenue year-over-year, indicating strong growth potential.&lt;br&gt;
Valuation Ratios: After calculating the P/E ratio, you see it is lower than the industry average, suggesting the stock might be undervalued.&lt;br&gt;
Comparative Analysis: Comparing AAPL to MSFT shows that while both are strong performers, AAPL has a higher profit margin, making it a more attractive investment.&lt;br&gt;
Conclusion&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OpenBB is a powerful tool&lt;/strong&gt; for anyone looking to conduct fundamental analysis in the stock market. Its robust data access, user-friendly interface, and customization options make it an invaluable resource for both novice and experienced investors. By leveraging OpenBB's capabilities, you can gain deeper insights into your investments, empowering you to make informed decisions and potentially enhance your financial success.&lt;/p&gt;

&lt;p&gt;Ready to elevate your fundamental analysis? Download &lt;a href="https://openbb/co" rel="noopener noreferrer"&gt;OpenBB&lt;/a&gt; today and explore the wealth of information it offers! For more insights and tutorials, check out the &lt;a href="https://docs.openbb.co/pro" rel="noopener noreferrer"&gt;OpenBB&lt;/a&gt; documentation.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>OpenBB vs. Proprietary Financial Tools: Why Open Source is the Future of Investment Research</title>
      <dc:creator>sateshcharan</dc:creator>
      <pubDate>Mon, 21 Oct 2024 17:22:20 +0000</pubDate>
      <link>https://forem.com/sateshcharan/openbb-vs-proprietary-financial-tools-why-open-source-is-the-future-of-investment-research-5617</link>
      <guid>https://forem.com/sateshcharan/openbb-vs-proprietary-financial-tools-why-open-source-is-the-future-of-investment-research-5617</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw4faebg38ehehxls0xdh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw4faebg38ehehxls0xdh.png" alt="openbb" width="800" height="330"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the world of finance, information is everything. Having access to real-time data, advanced analytics, and comprehensive tools can make or break investment decisions. Traditionally, platforms like Bloomberg and Reuters have dominated the market by providing high-end tools, but they come with significant costs, often out of reach for the average investor. Enter OpenBB, an open-source alternative that’s challenging the status quo by providing robust financial research tools for free.&lt;/p&gt;

&lt;p&gt;In this article, we’ll compare OpenBB with proprietary financial tools, focusing on its key features and emphasizing the benefits of an open-source approach to investment research.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Rise of OpenBB&lt;/strong&gt;&lt;br&gt;
OpenBB is an open-source investment research platform designed to give everyone—from individual investors to seasoned analysts—access to powerful financial tools. It leverages real-time data, advanced visualizations, and AI-driven analytics to make sophisticated financial research accessible. Whether you're analyzing stocks, cryptocurrencies, commodities, or ETFs, OpenBB offers a broad range of tools at no cost.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fajpv936eatt9vsftq7gq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fajpv936eatt9vsftq7gq.png" alt="openbb hero" width="800" height="586"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Proprietary Tools: The Financial Giants&lt;/strong&gt;&lt;br&gt;
For decades, proprietary platforms like Bloomberg Terminal and Reuters Eikon have dominated the industry. These platforms provide an unparalleled level of data, real-time analytics, and integration with global financial markets. However, the downside is their high price—Bloomberg Terminal, for example, costs upwards of $24,000 per year. These tools are out of reach for many independent investors, smaller firms, and enthusiasts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OpenBB vs. Proprietary Tools: Key Comparisons&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs8q0nvys1a88l5qp29bp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs8q0nvys1a88l5qp29bp.png" alt="Image description" width="800" height="476"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let’s break down some key areas where OpenBB competes against proprietary platforms:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Cost&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Proprietary Tools:&lt;/strong&gt; As mentioned, tools like Bloomberg and Reuters Eikon come with a hefty price tag, making them accessible mostly to institutional investors or large firms. The subscription fees often run into the thousands of dollars annually.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenBB:&lt;/strong&gt; This is where OpenBB shines the most—it's completely free. Built by a community of developers and financial experts, OpenBB provides high-quality tools without the barrier of cost. This democratizes access to data and analytics, leveling the playing field for all types of investors.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Data Access&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Proprietary Tools:&lt;/strong&gt; Bloomberg and Reuters provide an extensive and reliable network of financial data, ranging from stock markets to commodities and even niche sectors. They aggregate data from global markets in real-time and offer deep historical data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenBB:&lt;/strong&gt; OpenBB sources its data from multiple open and free APIs, covering a wide range of financial assets including stocks, crypto, commodities, and more. While it may not have the extensive market coverage of Bloomberg, OpenBB’s data access is sufficient for most retail investors and smaller financial firms.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Advanced Analytics&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Proprietary Tools:&lt;/strong&gt; Bloomberg and Reuters offer sophisticated analytics, including real-time charting, economic indicators, news sentiment analysis, and machine learning integrations. These platforms are designed to handle large-scale institutional analytics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenBB:&lt;/strong&gt; OpenBB also provides AI and machine learning-powered analytics, allowing users to track market trends, predict asset movements, and optimize their portfolios. While it may not be as expansive as Bloomberg, OpenBB's analytics capabilities are more than sufficient for most users, and they’re constantly improving thanks to the open-source community.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Customization and Flexibility&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Proprietary Tools:&lt;/strong&gt; Proprietary platforms come with strict frameworks that limit user flexibility. While they provide rich features, customization often comes at an additional cost, and users are constrained by what the software can offer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenBB:&lt;/strong&gt; As an open-source platform, OpenBB allows users to fully customize the experience. Developers can tweak the code, integrate their own tools, or modify features to fit specific needs. This level of flexibility is a key benefit for developers and analysts who want a tailored experience. The power of open source means that users aren’t dependent on a single company for updates or improvements—anyone can contribute.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5. Transparency and Security&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Proprietary Tools:&lt;/strong&gt; With proprietary platforms, users don’t have access to the underlying code. They must trust the vendor to ensure that their data is secure and the platform operates correctly. Bugs and security flaws are typically fixed in private by the company, which may take time to address.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenBB:&lt;/strong&gt; OpenBB’s open-source nature ensures complete transparency. Anyone can audit the code to verify its security and reliability. The open-source model encourages quicker identification of bugs, security flaws, and feature gaps, as the global developer community can actively contribute to the platform's improvement.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;6. Community and Support&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Proprietary Tools:&lt;/strong&gt; Platforms like Bloomberg and Reuters come with dedicated customer support teams, which is useful for handling issues or learning how to maximize the platform’s features. However, these services often come at an additional cost.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenBB:&lt;/strong&gt; While OpenBB may not offer 24/7 support teams, it benefits from an active and passionate community. The open-source community frequently contributes new features, fixes bugs, and shares tutorials. OpenBB users can access free documentation, community forums, and even contribute directly to the platform’s development.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Concrete Use Case: Individual Investor&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foo99spi95g3o6ef11yhp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foo99spi95g3o6ef11yhp.png" alt="Image description" width="800" height="385"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Imagine a retail investor who wants to manage their personal portfolio and explore opportunities in both stocks and cryptocurrencies. With a limited budget, they can’t afford Bloomberg or Reuters, but they still need access to high-quality data and advanced analytics. Here’s where OpenBB offers a perfect solution:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Data Aggregation:&lt;/strong&gt; The investor can track stocks, crypto, and commodities all in one place using OpenBB's powerful data collection features.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI-Powered Insights:&lt;/strong&gt; With machine learning, they can predict market movements and optimize their portfolio based on historical data.&lt;/li&gt;
&lt;li&gt;**Custom Tools: **If they need a specific feature, they can code it themselves or request it from the OpenBB community.&lt;/li&gt;
&lt;li&gt;The Benefits of &lt;strong&gt;Open-Source&lt;/strong&gt; in Finance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The rise of OpenBB highlights a broader trend:&lt;/strong&gt; open-source tools are becoming increasingly viable in professional spaces that were once dominated by proprietary giants. OpenBB’s open-source approach offers several benefits:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost-Efficiency:&lt;/strong&gt; Free access to powerful tools makes high-quality financial research more accessible to everyone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Innovation:&lt;/strong&gt; An open-source platform benefits from continuous updates and innovations contributed by a global community.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flexibility:&lt;/strong&gt; Full control over the software means users can customize it to meet their specific needs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo67w20yh27wg65xwutwu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo67w20yh27wg65xwutwu.png" alt="openbb compliance" width="800" height="170"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While proprietary tools like Bloomberg and Reuters offer a wealth of features, they come with high costs and limited flexibility. OpenBB, on the other hand, provides a robust, open-source alternative that empowers individual investors, small firms, and even professionals to access advanced financial tools without breaking the bank.&lt;/p&gt;

&lt;p&gt;As the open-source movement continues to grow, platforms like OpenBB are setting a new standard for financial research—one that prioritizes accessibility, transparency, and innovation. If you're looking to elevate your investment research without the heavy price tag, OpenBB is a solution worth exploring.&lt;/p&gt;

&lt;p&gt;Ready to take control of your financial future with open-source tools? Explore &lt;a href="https://www.openbb.co/" rel="noopener noreferrer"&gt;OpenBB&lt;/a&gt; today!&lt;/p&gt;

&lt;p&gt;#OpenSource #Finance #InvestmentResearch #OpenBB #DataAnalytics&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Streamlined Self-Hosting with Twenty CRM: 1-Click Docker Compose Setup</title>
      <dc:creator>sateshcharan</dc:creator>
      <pubDate>Mon, 21 Oct 2024 14:54:18 +0000</pubDate>
      <link>https://forem.com/sateshcharan/streamlined-self-hosting-with-twenty-crm-1-click-docker-compose-setup-188o</link>
      <guid>https://forem.com/sateshcharan/streamlined-self-hosting-with-twenty-crm-1-click-docker-compose-setup-188o</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4lll3f8pm1qgwj92vhva.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4lll3f8pm1qgwj92vhva.png" alt="twenty crm" width="800" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hey folks! In my continued work with open-source projects, I recently came across Twenty CRM, an open-source CRM platform that has been making waves in the business world. Today, I’m going to walk you through how you can set up Twenty CRM in just a few clicks using Docker Compose. Whether you're self-hosting or setting up for production, this guide will show you how easy it is to get up and running with minimal effort.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffutvbq7rxp3zp58yc8ln.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffutvbq7rxp3zp58yc8ln.png" alt="docker compose" width="800" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Docker Compose?&lt;/strong&gt;&lt;br&gt;
Docker Compose is a tool that simplifies running multi-container Docker applications by defining services, networks, and volumes in a single docker-compose.yml file. This makes it perfect for deploying an application like Twenty CRM in a streamlined, easy-to-manage way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overview of the 1-Click Docker Compose Setup&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcean2rv7v0w38s5la208.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcean2rv7v0w38s5la208.png" alt="twenty crm" width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Setting up &lt;strong&gt;&lt;a href="https://twenty.com/" rel="noopener noreferrer"&gt;Twenty CRM&lt;/a&gt;&lt;/strong&gt; using Docker Compose is designed to be simple and efficient. Follow the steps in this guide to install and configure the CRM platform with minimal hassle.&lt;/p&gt;

&lt;p&gt;However, before jumping in, make sure you’ve got the required system specifications and Docker tools installed. Let's walk through the steps to get you started!&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;System Requirements&lt;/strong&gt;&lt;br&gt;
Before we begin, ensure you meet the following system requirements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;RAM:&lt;/strong&gt; At least 2GB of RAM is required. Insufficient memory can cause processes to crash.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Docker &amp;amp; Docker Compose:&lt;/strong&gt; Make sure both Docker and Docker Compose are installed and up-to-date on your system.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;Option 1: One-Line Script Installation&lt;/strong&gt;&lt;br&gt;
The quickest way to install Twenty CRM is by running a single command. This option is perfect for users who want a fast and easy setup.&lt;/p&gt;

&lt;p&gt;Run this command to install the latest stable version:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bash &amp;lt;(curl -sL https://git.new/20)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To install a specific version or branch, use the following command, replacing x.y.z with your desired version number, and branch-name with the branch you want:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VERSION=x.y.z BRANCH=branch-name bash &amp;lt;(curl -sL https://git.new/20)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;&lt;strong&gt;Option 2: Manual Setup&lt;/strong&gt;&lt;br&gt;
For users who prefer a more hands-on approach, follow these manual steps:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Set Up the Environment File&lt;br&gt;
Create an &lt;strong&gt;.env&lt;/strong&gt; file to configure your environment variables.&lt;/p&gt;

&lt;p&gt;Copy the example environment file to a new &lt;strong&gt;.env&lt;/strong&gt; file in your working directory:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -o .env https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docker/.env.example
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Generate Secret Tokens by running this command four times to create unique strings:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;openssl rand -base64 32
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Update your .env file with the generated values:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ACCESS_TOKEN_SECRET=first_random_string
LOGIN_TOKEN_SECRET=second_random_string
REFRESH_TOKEN_SECRET=third_random_string
FILE_TOKEN_SECRET=fourth_random_string
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Set the Postgres Password:&lt;/p&gt;

&lt;p&gt;In the .env file, replace the placeholder POSTGRES_ADMIN_PASSWORD with a strong password:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;POSTGRES_ADMIN_PASSWORD=my_strong_password
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Download the Docker Compose File&lt;br&gt;
Download the docker-compose.yml file into your working directory:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -O https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docker/docker-compose.yml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Launch the Application&lt;br&gt;
Start the Docker containers with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker-compose up -d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Access the Application&lt;br&gt;
Once the containers are running, open your browser and navigate to &lt;a href="http://localhost:3000" rel="noopener noreferrer"&gt;http://localhost:3000&lt;/a&gt; to access Twenty CRM.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Configuration&lt;/strong&gt;&lt;br&gt;
Exposing Twenty CRM to External Access&lt;br&gt;
By default, Twenty runs on localhost at port 3000. If you want to expose it to external access, you need to configure the SERVER_URL in your .env file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understanding the SERVER_URL&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Protocol:&lt;/strong&gt; Use http or https, depending on whether you have SSL configured.&lt;br&gt;
&lt;strong&gt;Domain/IP:&lt;/strong&gt; Set this to the domain name or IP address where your application will be accessible.&lt;br&gt;
&lt;strong&gt;Port:&lt;/strong&gt; Include the port number if you're not using the default ports (80 for http, 443 for https).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Examples:&lt;/strong&gt;&lt;br&gt;
Direct access without SSL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SERVER_URL=http://123.45.67.89:3000
Access via domain with SSL:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SERVER_URL=https://mytwentyapp.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once updated, restart the containers for changes to take effect:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker-compose down
docker-compose up -d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Troubleshooting&lt;/strong&gt;&lt;br&gt;
Unable to Log In&lt;br&gt;
If you encounter login issues, try the following commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker exec -it twenty-server-1 yarn
docker exec -it twenty-server-1 npx nx database:reset
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, restart the containers:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker-compose down
docker-compose up -d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Connection Issues Behind a Reverse Proxy&lt;/strong&gt;&lt;br&gt;
Make sure the SERVER_URL in your .env file matches the external access URL. Also, ensure your reverse proxy settings are properly configured to forward requests to the Twenty server, and restart both the reverse proxy and the Twenty containers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Persistence and Data Volumes&lt;/strong&gt;&lt;br&gt;
The Docker Compose configuration automatically uses volumes to persist data for the database and server storage. This ensures your data remains intact, even if the containers are stopped or restarted.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Setting up Twenty CRM with Docker Compose is straightforward and efficient, whether you’re self-hosting or deploying in a production environment. By following the steps in this guide, you’ll have a fully functioning CRM in no time, with complete control over your data and infrastructure.&lt;/p&gt;

&lt;p&gt;Give it a try, and experience &lt;strong&gt;&lt;a href="https://twenty.com" rel="noopener noreferrer"&gt;Twenty CRM&lt;/a&gt;&lt;/strong&gt; that grows with your business!&lt;/p&gt;

&lt;p&gt;Thanks for reading! I hope you found this guide helpful. If you have any questions or run into issues, feel free to reach out to the Twenty CRM community for support. Cheers!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Twenty CRM: A Fresh Start for Modern Businesses</title>
      <dc:creator>sateshcharan</dc:creator>
      <pubDate>Mon, 21 Oct 2024 14:22:24 +0000</pubDate>
      <link>https://forem.com/sateshcharan/twenty-crm-a-fresh-start-for-modern-businesses-46kf</link>
      <guid>https://forem.com/sateshcharan/twenty-crm-a-fresh-start-for-modern-businesses-46kf</guid>
      <description>&lt;p&gt;Hey everyone! I've recently been diving into open-source projects during Hacktoberfest 2024, and I came across an incredible CRM platform that I just had to share. It’s called Twenty, and it’s truly a breath of fresh air for businesses in need of a streamlined CRM solution.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F842w4otxl2y52itdyo77.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F842w4otxl2y52itdyo77.png" alt="twenty crm" width="800" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What is Twenty?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Two decades ago, CRM platforms transformed business operations by moving to the cloud, making it easier and more cost-effective to manage customer relationships. But over time, these platforms became bloated, expensive, and cumbersome. What started as a tool to streamline sales processes ended up overwhelming businesses with complexity.&lt;/p&gt;

&lt;p&gt;Today, many companies feel stuck—struggling to customize their CRMs to fit their needs, manage ballooning costs, and work with convoluted interfaces. That’s where Twenty CRM steps in, offering a much-needed reset. It’s an open-source platform designed to bring back simplicity, control, and efficiency.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhti63va7ep263ohg2g87.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhti63va7ep263ohg2g87.png" alt="twenty crm" width="438" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Problem with Legacy CRMs&lt;/strong&gt;&lt;br&gt;
Over time, CRMs evolved beyond sales into other departments like finance, marketing, and customer support. However, this growth came at a cost:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Rising costs:&lt;/strong&gt; Finance teams struggled with increasing expenses as vendors added more features.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customization headaches:&lt;/strong&gt; Software engineers spent weeks or even months tweaking CRM systems to fit unique business needs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data rigidity:&lt;/strong&gt; Data engineers found it difficult to move data between systems, trapped by restrictive structures.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User frustration:&lt;/strong&gt; Sales teams, the original CRM users, were slowed down by cluttered interfaces, turning CRMs into a chore rather than a tool.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Somewhere along the way, businesses lost control of these essential tools. But Twenty is here to change that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enter Twenty CRM: The Solution to Bloated CRMs&lt;/strong&gt;&lt;br&gt;
Twenty is a CRM platform built to empower businesses by giving them flexibility, control, and an intuitive user experience. Here’s why it stands out:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F89g8g84gwyn39tqf9801.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F89g8g84gwyn39tqf9801.png" alt="twenty crm" width="800" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Open-Source Flexibility&lt;/strong&gt;&lt;br&gt;
Forget the old “build vs. buy” debate. With Twenty, you get the best of both worlds: the option to customize the platform as you see fit. Since it’s open-source, you can fork the project, adapt it to your needs, and even contribute to its growth alongside a global community of developers. No more waiting for vendors to release features—you control the roadmap.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Data-Centric Approach&lt;/strong&gt;&lt;br&gt;
Today’s businesses collect data from multiple sources. Instead of forcing you into rigid templates, Twenty lets you work with your data as it is. It seamlessly integrates with your existing data systems, giving you the freedom to visualize and interact with your data in a way that makes sense for your business.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Design-Driven Experience&lt;/strong&gt;&lt;br&gt;
Inspired by platforms like Notion, Twenty prioritizes design and user experience. Whether you’re managing a sales pipeline or tweaking backend workflows, the platform offers a clean, customizable interface that’s both functional and enjoyable. Developers and end users alike will find the experience seamless and intuitive.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Twenty is the Future of CRM&lt;/strong&gt;&lt;br&gt;
Twenty isn’t just another CRM platform—it’s a movement to bring control back to businesses. Here’s why it’s the future of CRM:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ownership:&lt;/strong&gt; With its open-source foundation, you’re in control of the features and updates. No more vendor lock-in.&lt;br&gt;
Data at the core: Your data from sales, finance, marketing, and more is easily accessible and actionable.&lt;br&gt;
Community-driven development: Thousands of developers are actively contributing, ensuring the platform evolves with the needs of modern businesses.&lt;br&gt;
If you’re fed up with bloated, expensive CRM systems, now is the time to explore Twenty.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Getting Started with Twenty: A Quick Overview&lt;/strong&gt;&lt;br&gt;
Upon logging in, you’ll be greeted with an intuitive onboarding screen where you can set up your workspace. The navigation bar allows easy access to search, settings, and workspace management.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0rgda88uygsgjmd75j7b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0rgda88uygsgjmd75j7b.png" alt="twenty crm" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Twenty comes with pre-built models like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;People&lt;/li&gt;
&lt;li&gt;Companies&lt;/li&gt;
&lt;li&gt;Opportunities&lt;/li&gt;
&lt;li&gt;Tasks&lt;/li&gt;
&lt;li&gt;Notes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let me walk you through how I manage invoices and tasks using Twenty.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Create a Custom Data Model&lt;/strong&gt;&lt;br&gt;
To create an invoice model, head to the Settings panel and click on Data Model. You’ll then see an option to create a new object.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxrm15d4ops6ivvppy10z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxrm15d4ops6ivvppy10z.png" alt="twenty crm" width="800" height="470"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For singular, enter "invoice."&lt;br&gt;
For plural, enter "invoices."&lt;br&gt;
Add a description if needed and hit Save.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgltex2sqnsum2ozp5hne.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgltex2sqnsum2ozp5hne.png" alt="twenty crm" width="800" height="256"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Twenty automatically adds essential fields like attachments, creation date, notes, and tasks, but you can customize it further by clicking Add Field.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe0ctqslivtklef4n8l2j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe0ctqslivtklef4n8l2j.png" alt="twenty crm" width="656" height="763"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Manage Your Invoices&lt;/strong&gt;&lt;br&gt;
Once your data object is created, return to the dashboard and select Invoice. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwj4zsnxl09k03z7rprmv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwj4zsnxl09k03z7rprmv.png" alt="twenty crm" width="518" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You’ll be able to add new invoices with all the fields you specified earlier. Easily keep track of invoice details, saving you the hassle of endless client emails.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsk2idjxadaed95p5ndjc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsk2idjxadaed95p5ndjc.png" alt="twenty crm" width="800" height="77"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Twenty CRM&lt;/strong&gt; offers a clean, flexible, and powerful solution to the cluttered CRM landscape. If you’re looking for a tool that will help you take control of your business, streamline your processes, and offer a superior user experience, I highly recommend giving it a try. You’ll find that Twenty transforms the way you manage customer relationships and data. Checkout &lt;strong&gt;&lt;a href="https://twenty.com/" rel="noopener noreferrer"&gt;TwentyCRM &lt;/a&gt;&lt;/strong&gt; today!&lt;/p&gt;

&lt;p&gt;Thanks for reading! If you found this helpful, don’t forget to like and support. Cheers!&lt;/p&gt;

</description>
      <category>crm</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
