löschen von nicht benötigten Datein
This commit is contained in:
3
.github/FUNDING.yml
vendored
3
.github/FUNDING.yml
vendored
@ -1,3 +0,0 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: baptisteArno
|
BIN
.github/images/logo-dark.png
vendored
BIN
.github/images/logo-dark.png
vendored
Binary file not shown.
Before Width: | Height: | Size: 35 KiB |
BIN
.github/images/logo-light.png
vendored
BIN
.github/images/logo-light.png
vendored
Binary file not shown.
Before Width: | Height: | Size: 34 KiB |
BIN
.github/images/star-project.gif
vendored
BIN
.github/images/star-project.gif
vendored
Binary file not shown.
Before Width: | Height: | Size: 275 KiB |
BIN
.github/videos/demo.mp4
vendored
BIN
.github/videos/demo.mp4
vendored
Binary file not shown.
16
.github/workflows/auto-add-to-project.yml
vendored
16
.github/workflows/auto-add-to-project.yml
vendored
@ -1,16 +0,0 @@
|
||||
name: Automatically add issues to projects when labeled
|
||||
|
||||
on:
|
||||
issues:
|
||||
types:
|
||||
- labeled
|
||||
|
||||
jobs:
|
||||
add-to-project:
|
||||
name: Add issue to project
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/add-to-project@v0.3.0
|
||||
with:
|
||||
project-url: https://github.com/users/baptisteArno/projects/4
|
||||
github-token: ${{ secrets.PERSONAL_TOKEN }}
|
41
.github/workflows/auto-create-tags.yml
vendored
41
.github/workflows/auto-create-tags.yml
vendored
@ -1,41 +0,0 @@
|
||||
name: Create Tag
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
create-tag:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
GITHUB_TOKEN: '${{ secrets.PERSONAL_TOKEN }}'
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: 'Create main tag'
|
||||
id: 'main'
|
||||
uses: butlerlogic/action-autotag@1.1.2
|
||||
with:
|
||||
tag_prefix: 'v'
|
||||
|
||||
- name: 'Create latest tag'
|
||||
if: ${{ contains(steps.main.outputs.tagname, 'v') }}
|
||||
uses: EndBug/latest-tag@latest
|
||||
|
||||
- name: 'Create js tag'
|
||||
uses: butlerlogic/action-autotag@1.1.2
|
||||
with:
|
||||
root: '/packages/embeds/js'
|
||||
tag_prefix: 'js-v'
|
||||
|
||||
- name: 'Create react tag'
|
||||
uses: butlerlogic/action-autotag@1.1.2
|
||||
with:
|
||||
root: '/packages/embeds/react'
|
||||
tag_prefix: 'react-v'
|
||||
|
||||
- name: 'Create nextjs tag'
|
||||
uses: butlerlogic/action-autotag@1.1.2
|
||||
with:
|
||||
root: '/packages/embeds/nextjs'
|
||||
tag_prefix: 'nextjs-v'
|
@ -1,34 +0,0 @@
|
||||
name: Check and report chats usage
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 * * * *'
|
||||
|
||||
jobs:
|
||||
send:
|
||||
runs-on: ubuntu-latest
|
||||
defaults:
|
||||
run:
|
||||
working-directory: ./packages/scripts
|
||||
env:
|
||||
DATABASE_URL: '${{ secrets.DATABASE_URL }}'
|
||||
ENCRYPTION_SECRET: '${{ secrets.ENCRYPTION_SECRET }}'
|
||||
NEXTAUTH_URL: '${{ secrets.NEXTAUTH_URL }}'
|
||||
NEXT_PUBLIC_VIEWER_URL: '${{ secrets.NEXT_PUBLIC_VIEWER_URL }}'
|
||||
NEXT_PUBLIC_POSTHOG_KEY: '${{ secrets.NEXT_PUBLIC_POSTHOG_KEY }}'
|
||||
NEXT_PUBLIC_POSTHOG_HOST: '${{ secrets.NEXT_PUBLIC_POSTHOG_HOST }}'
|
||||
SMTP_USERNAME: '${{ secrets.SMTP_USERNAME }}'
|
||||
SMTP_PASSWORD: '${{ secrets.SMTP_PASSWORD }}'
|
||||
SMTP_HOST: '${{ secrets.SMTP_HOST }}'
|
||||
SMTP_PORT: '${{ secrets.SMTP_PORT }}'
|
||||
NEXT_PUBLIC_SMTP_FROM: '${{ secrets.NEXT_PUBLIC_SMTP_FROM }}'
|
||||
STRIPE_SECRET_KEY: '${{ secrets.STRIPE_SECRET_KEY }}'
|
||||
STRIPE_STARTER_PRICE_ID: '${{ secrets.STRIPE_STARTER_PRICE_ID }}'
|
||||
STRIPE_STARTER_CHATS_PRICE_ID: '${{ secrets.STRIPE_STARTER_CHATS_PRICE_ID }}'
|
||||
STRIPE_PRO_PRICE_ID: '${{ secrets.STRIPE_PRO_PRICE_ID }}'
|
||||
STRIPE_PRO_CHATS_PRICE_ID: '${{ secrets.STRIPE_PRO_CHATS_PRICE_ID }}'
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: pnpm/action-setup@v4
|
||||
- run: pnpm i --frozen-lockfile
|
||||
- run: pnpm turbo run checkAndReportChatsUsage
|
22
.github/workflows/clean-database.yml
vendored
22
.github/workflows/clean-database.yml
vendored
@ -1,22 +0,0 @@
|
||||
name: Daily database cleanup
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 6 * * *'
|
||||
|
||||
jobs:
|
||||
clean:
|
||||
runs-on: ubuntu-latest
|
||||
defaults:
|
||||
run:
|
||||
working-directory: ./packages/scripts
|
||||
env:
|
||||
DATABASE_URL: '${{ secrets.DATABASE_URL }}'
|
||||
ENCRYPTION_SECRET: '${{ secrets.ENCRYPTION_SECRET }}'
|
||||
NEXTAUTH_URL: 'http://localhost:3000'
|
||||
NEXT_PUBLIC_VIEWER_URL: 'http://localhost:3001'
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: pnpm/action-setup@v4
|
||||
- run: pnpm i --frozen-lockfile
|
||||
- run: pnpm turbo run db:cleanDatabase
|
23
.github/workflows/publish-lib-to-npm.yml
vendored
23
.github/workflows/publish-lib-to-npm.yml
vendored
@ -1,23 +0,0 @@
|
||||
name: Publish typebot-js to NPM
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'js-lib-v*'
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: pnpm/action-setup@v4
|
||||
- run: pnpm i --frozen-lockfile
|
||||
- run: pnpm turbo build --filter=typebot-js...
|
||||
- name: Set NPM_TOKEN in config
|
||||
run: pnpm config set //registry.npmjs.org/:_authToken ${NPM_TOKEN}
|
||||
working-directory: ./packages/typebot-js
|
||||
- name: Publish
|
||||
run: pnpm publish --no-git-checks --access public
|
||||
working-directory: ./packages/typebot-js
|
18
.github/workflows/publish-typebot-js.yml
vendored
18
.github/workflows/publish-typebot-js.yml
vendored
@ -1,18 +0,0 @@
|
||||
name: Publish @typebot.io/js package to NPM
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'js-v*'
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: pnpm/action-setup@v4
|
||||
- run: pnpm i --frozen-lockfile
|
||||
- run: pnpm turbo build --filter=@typebot.io/js...
|
||||
- run: cd packages/embeds/js && pnpm publish --no-git-checks --access public
|
18
.github/workflows/publish-typebot-nextjs.yml
vendored
18
.github/workflows/publish-typebot-nextjs.yml
vendored
@ -1,18 +0,0 @@
|
||||
name: Publish @typebot.io/nextjs package to NPM
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'nextjs-v*'
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: pnpm/action-setup@v4
|
||||
- run: pnpm i --frozen-lockfile
|
||||
- run: pnpm turbo build --filter=@typebot.io/nextjs...
|
||||
- run: cd packages/embeds/nextjs && pnpm publish --no-git-checks --access public
|
18
.github/workflows/publish-typebot-react.yml
vendored
18
.github/workflows/publish-typebot-react.yml
vendored
@ -1,18 +0,0 @@
|
||||
name: Publish @typebot.io/react package to NPM
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'react-v*'
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: pnpm/action-setup@v4
|
||||
- run: pnpm i --frozen-lockfile
|
||||
- run: pnpm turbo build --filter=@typebot.io/react...
|
||||
- run: cd packages/embeds/react && pnpm publish --no-git-checks --access public
|
173
.github/workflows/release.yml
vendored
173
.github/workflows/release.yml
vendored
@ -1,173 +0,0 @@
|
||||
name: Release new Typebot version
|
||||
|
||||
on:
|
||||
push:
|
||||
tags: ['v*', 'next']
|
||||
|
||||
jobs:
|
||||
build-amd:
|
||||
env:
|
||||
DATABASE_URL: 'postgresql://'
|
||||
strategy:
|
||||
matrix:
|
||||
app: ['builder', 'viewer']
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out the repo
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Extract existing image metadata
|
||||
id: image-meta
|
||||
uses: docker/metadata-action@v4
|
||||
with:
|
||||
images: baptistearno/typebot-${{ matrix.app }}
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Log in to Docker Hub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- name: Build image
|
||||
id: docker_build
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
context: .
|
||||
labels: ${{ steps.image-meta.outputs.labels }}
|
||||
platforms: linux/amd64
|
||||
cache-from: type=gha,scope=${{ matrix.app }}-amd
|
||||
cache-to: type=gha,scope=${{ matrix.app }}-amd,mode=max
|
||||
build-args: |
|
||||
SCOPE=${{ matrix.app }}
|
||||
outputs: type=image,name=baptistearno/typebot-${{ matrix.app }},push-by-digest=true,name-canonical=true,push=true
|
||||
|
||||
- name: Export digest
|
||||
run: |
|
||||
mkdir -p /tmp/digests/${{ matrix.app }}
|
||||
digest="${{ steps.docker_build.outputs.digest }}"
|
||||
touch "/tmp/digests/${{ matrix.app }}/${digest#sha256:}"
|
||||
|
||||
- name: Upload digest
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: digests-${{ matrix.app }}
|
||||
path: /tmp/digests/${{matrix.app}}/*
|
||||
if-no-files-found: error
|
||||
retention-days: 1
|
||||
|
||||
build-arm:
|
||||
env:
|
||||
DATABASE_URL: 'postgresql://'
|
||||
strategy:
|
||||
matrix:
|
||||
app: ['builder', 'viewer']
|
||||
runs-on: buildjet-4vcpu-ubuntu-2204-arm
|
||||
steps:
|
||||
- name: Check out the repo
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Extract existing image metadata
|
||||
id: image-meta
|
||||
uses: docker/metadata-action@v4
|
||||
with:
|
||||
images: baptistearno/typebot-${{ matrix.app }}
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Log in to Docker Hub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- name: Build image
|
||||
id: docker_build
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
context: .
|
||||
labels: ${{ steps.image-meta.outputs.labels }}
|
||||
platforms: linux/arm64
|
||||
cache-from: type=gha,scope=${{ matrix.app }}-arm
|
||||
cache-to: type=gha,scope=${{ matrix.app }}-arm,mode=max
|
||||
build-args: |
|
||||
SCOPE=${{ matrix.app }}
|
||||
outputs: type=image,name=baptistearno/typebot-${{ matrix.app }},push-by-digest=true,name-canonical=true,push=true
|
||||
|
||||
- name: Export digest
|
||||
run: |
|
||||
mkdir -p /tmp/digests/${{ matrix.app }}
|
||||
digest="${{ steps.docker_build.outputs.digest }}"
|
||||
touch "/tmp/digests/${{ matrix.app }}/${digest#sha256:}"
|
||||
|
||||
- name: Upload digest
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: digests-${{ matrix.app }}
|
||||
path: /tmp/digests/${{matrix.app}}/*
|
||||
if-no-files-found: error
|
||||
retention-days: 1
|
||||
|
||||
merge-and-push:
|
||||
if: ${{ github.event_name != 'pull_request' }}
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- build-amd
|
||||
- build-arm
|
||||
strategy:
|
||||
matrix:
|
||||
app: ['builder', 'viewer']
|
||||
steps:
|
||||
- name: Download AMD digests
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: digests-${{ matrix.app }}
|
||||
path: /tmp/digests/${{ matrix.app }}
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
- name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
with:
|
||||
images: baptistearno/typebot-${{ matrix.app }}
|
||||
tags: |
|
||||
type=ref,event=branch
|
||||
type=semver,pattern={{version}}
|
||||
type=semver,pattern={{major}}.{{minor}}
|
||||
type=semver,pattern={{major}}
|
||||
next
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
- name: Create manifest list and push
|
||||
working-directory: /tmp/digests/${{ matrix.app }}
|
||||
run: |
|
||||
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
|
||||
$(printf 'baptistearno/typebot-${{ matrix.app }}@sha256:%s ' *)
|
||||
- name: Inspect image
|
||||
run: |
|
||||
docker buildx imagetools inspect baptistearno/typebot-${{ matrix.app }}:${{ steps.meta.outputs.version }}
|
||||
|
||||
create-release:
|
||||
name: Create Release
|
||||
runs-on: ubuntu-latest
|
||||
needs: merge-and-push
|
||||
if: startsWith(github.ref, 'refs/tags/v')
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
- name: Extract body from changelog
|
||||
run: |
|
||||
NEW_VERSION=$(echo '${{ github.ref }}' | sed 's/refs\/tags\/v//')
|
||||
echo $NEW_VERSION
|
||||
sed -n -e "/## ${NEW_VERSION}/,/<a/ p" ./CHANGELOG.md | sed -e '1,2d' | sed -e '$d' | sed -e '$d' > extractedBody.md
|
||||
- name: Create Release
|
||||
uses: ncipollo/release-action@v1
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
bodyFile: 'extractedBody.md'
|
3762
CHANGELOG.md
3762
CHANGELOG.md
File diff suppressed because it is too large
Load Diff
@ -1,3 +0,0 @@
|
||||
# Contributing to Typebot
|
||||
|
||||
All the content has been moved [here](https://docs.typebot.io/contribute/overview). ❤️
|
113
README.md
113
README.md
@ -1,113 +0,0 @@
|
||||
<br />
|
||||
<p align="center">
|
||||
<a href="https://typebot.io/#gh-light-mode-only" target="_blank">
|
||||
<img src="./.github/images/logo-light.png" alt="Typebot illustration" width="350px">
|
||||
</a>
|
||||
<a href="https://typebot.io/#gh-dark-mode-only" target="_blank">
|
||||
<img src="./.github/images/logo-dark.png" alt="Typebot illustration" width="350px">
|
||||
</a>
|
||||
</p>
|
||||
<br />
|
||||
|
||||
<p align="center">
|
||||
Typebot is an open-source chatbot builder. It allows you to create advanced chatbots visually, embed them anywhere on your web/mobile apps, and collect results in real-time
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/baptistearno/typebot.io/stargazers"><img src="https://img.shields.io/github/stars/baptistearno/typebot.io" alt="Github Stars"></a>
|
||||
</a>
|
||||
<a href="https://github.com/baptistearno/typebot.io/pulse"><img src="https://img.shields.io/github/commit-activity/m/baptistearno/typebot.io" alt="Commits per month"></a>
|
||||
<a href="https://docs.typebot.io/self-hosting/guides/docker">
|
||||
<img src="https://img.shields.io/docker/pulls/baptistearno/typebot-builder">
|
||||
</a>
|
||||
<a href="https://github.com/baptistearno/typebot.io/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-AGPLv3-purple" alt="License">
|
||||
<a href="https://status.typebot.io"><img height="20px" src="https://betteruptime.com/status-badges/v1/monitor/a9kf.svg" alt="Uptime"></a>
|
||||
<a href="https://github.com/baptisteArno/typebot.io/issues/new"><img src="https://img.shields.io/badge/Report a bug-Github-%231F80C0" alt="Report a bug"></a>
|
||||
<a href="https://github.com/baptisteArno/typebot.io/discussions/new?category=q-a"><img src="https://img.shields.io/badge/Ask a question-Github-%231F80C0" alt="Ask a question"></a>
|
||||
<a href="https://console.algora.io/org/typebot/bounties?status=open"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Fconsole.algora.io%2Fapi%2Fshields%2Ftypebot%2Fbounties%3Fstatus%3Dopen" alt="Ask a question"></a>
|
||||
<a href="https://typebot.io/discord"><img src="https://img.shields.io/badge/Join community-Discord-%23404EED" alt="Ask a question"></a>
|
||||
|
||||
</p>
|
||||
|
||||
<h3 align="center">
|
||||
<b><a href="https://app.typebot.io/register">Try Typebot</a></b>
|
||||
•
|
||||
<b><a href="https://docs.typebot.io/">Docs</a></b>
|
||||
|
||||
---
|
||||
|
||||
## Builder demo
|
||||
|
||||
https://user-images.githubusercontent.com/16015833/168876388-0310678d-080b-4eca-8633-e5cc4d7bd5d1.mp4
|
||||
|
||||
## Features
|
||||
|
||||
Typebot makes it easy to create advanced chatbots. It provides the building block that are adaptable to any business use case. I improve Typebot regularly with bug fixes, new features, and performance improvements regularly.
|
||||
|
||||
**Chat builder** with 34+ building blocks such as:
|
||||
|
||||
- 💬 Bubbles: Text, Image / GIF, video, audio, embed.
|
||||
- 🔤 Inputs: Text, email, phone number, buttons, picture choice, date picker, payment (Stripe), file picker... inputs
|
||||
- 🧠 Logic: Conditional branching, URL redirections, scripting (Javascript), A/B testing
|
||||
- 🔌 Integrations: Webhook / HTTP requests, OpenAI, Google Sheets, Google Analytics, Meta Pixel, Zapier, Make.com, Chatwoot, More to come...
|
||||
|
||||
**Theme** your chatbot to match your brand identity:
|
||||
|
||||
- 🎨 Customize the fonts, background, colors, roundness, shadows, and more
|
||||
- 💪 Advanced theming with custom CSS.
|
||||
- 💾 Reusable theme templates
|
||||
|
||||
**Share** your typebot anywhere:
|
||||
|
||||
- 🔗 Custom domain
|
||||
- 👨💻 Embed as a container, popup, or chat bubble easily with the native JS library.
|
||||
- ⚡ Blazing fast embed lib. No iframe, no external dependencies, no performance impact.
|
||||
- 💻 Executable with HTTP requests
|
||||
|
||||
Collect your **Results** and get insights:
|
||||
|
||||
- 📊 In-depth analytics with drop-off rates, completion rates, and more
|
||||
- 📥 Export results to CSV
|
||||
|
||||
Built for **developers**:
|
||||
|
||||
- 🔓 No vendor-locking. Features built with flexibility in mind.
|
||||
- 💻 Easy-to-use [APIs](https://docs.typebot.io/api-reference).
|
||||
|
||||
## Getting started with Typebot
|
||||
|
||||
The easiest way to get started with Typebot is with [the official managed service in the Cloud](https://app.typebot.io). You'll have high availability, backups, security, and maintenance all managed for you by me, [Baptiste, Typebot's founder](https://twitter.com/baptisteArno).
|
||||
|
||||
The cloud version can save a substantial amount of developer time and resources. For most sites this ends up being the best value option and the revenue goes to funding the maintenance and further development of Typebot.
|
||||
So you’ll be supporting open source software and getting a great service! 💙
|
||||
|
||||
## Support & Community
|
||||
|
||||
You'll find a lot of resources to help you get started with Typebot in the [documentation](https://docs.typebot.io/).
|
||||
|
||||
- Have a question? Join the [Discord server](https://typebot.io/discord) and get instant help.
|
||||
- Found a bug? [Create an issue](https://github.com/baptisteArno/typebot.io/issues/new)
|
||||
|
||||
## Self-hosting
|
||||
|
||||
Interested in self-hosting Typebot on your server? Take a look at the [self-hosting installation instructions](https://docs.typebot.io/self-hosting/get-started).
|
||||
|
||||
## How to Contribute
|
||||
|
||||
You are awesome, lets build great software together. Head over to the [Contribute docs](https://docs.typebot.io/contribute/overview) to get started. 💪
|
||||
|
||||
## Run the project locally
|
||||
|
||||
Follow the [Local installation](https://docs.typebot.io/contribute/guides/local-installation) section of in the Contributing docs.
|
||||
|
||||
### Top contributors
|
||||
|
||||
<a href="https://github.com/baptistearno/typebot.io/graphs/contributors">
|
||||
<img src="https://contrib.rocks/image?repo=baptistearno/typebot.io" />
|
||||
</a>
|
||||
|
||||
Made with [contrib.rocks](https://contrib.rocks).
|
||||
|
||||
## License
|
||||
|
||||
Most of Typebot's code is open-source under the GNU Affero General Public License Version 3 (AGPLv3). You will find more information about the license and how to comply with it [here](https://docs.typebot.io/self-hosting#license-requirements).
|
Reference in New Issue
Block a user