2
0

📝 Add v2.22 newsletter

This commit is contained in:
Baptiste Arnaud
2024-02-06 15:18:02 +01:00
parent c2603d99b1
commit 272adc0e24
9 changed files with 2237 additions and 165 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1,19 @@
{
"name": "transactional",
"version": "1.0.0",
"description": "",
"scripts": {
"dev": "SKIP_ENV_CHECK=true dotenv -e ./.env -e ../../.env -- email dev --port=3005 --dir=templates"
},
"keywords": [],
"author": "Baptiste Arnaud",
"license": "ISC",
"dependencies": {
"@react-email/components": "0.0.14",
"react-email": "2.0.0",
"@typebot.io/env": "workspace:*"
},
"devDependencies": {
"dotenv-cli": "7.2.1"
}
}

View File

@ -0,0 +1,248 @@
import {
Body,
Container,
Head,
Html,
Img,
Link,
Preview,
Text,
Hr,
Heading,
Button,
Section,
} from '@react-email/components'
import * as React from 'react'
import { env } from '@typebot.io/env'
type Props = {
firstName?: string
}
const imagesBaseUrl = `${env.NEXTAUTH_URL}/images/emails/V2dot22Update`
export const V2dot22Update = ({}: Props) => (
<Html>
<Head />
<Preview>January hottest new features on Typebot 🔥</Preview>
<Body style={main}>
<Container style={container}>
<Img
src={`${env.NEXTAUTH_URL}/images/logo.png`}
width="32"
height="32"
alt="Typebot's Logo"
style={{
margin: '24px 0',
}}
/>
<Text style={text}>
Hi, <br />
<br />
We started 2024 on fire. What a productive month! Some of it has been
possible thanks to the new in-house framework to build new blocks:{' '}
<Link
href="https://docs.typebot.io/contribute/guides/create-block"
target="_blank"
style={{ ...link }}
>
The Forge
</Link>
<br />
<br />
So I want to thank all new contributors for their work this month. 🙏
</Text>
<Button
href="https://app.typebot.io"
style={{
backgroundColor: '#0042DA',
padding: '10px 16px',
borderRadius: '4px',
color: 'white',
fontFamily:
"-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
fontSize: '15px',
fontWeight: 'bold',
margin: '20px 0',
}}
>
Try the new features
</Button>
<Section style={featureSection}>
<Heading style={heading}>New graph gestures</Heading>
<Text style={text}>
At last! You can select multiple groups, move them together, and
duplicate them, accross all typebots.
</Text>
<Img
src={`${imagesBaseUrl}/groupSelection.gif`}
alt="Group selection demo"
style={image}
/>
</Section>
<Section style={featureSection}>
<Heading style={heading}>3 new blocks in town</Heading>
<Text style={text}>
We've added 3 new blocks to the library:
<br />
<br />
<span style={{ fontWeight: 'bold' }}>QR Code</span>: generate a QR
code image URL on the fly to use in your chat. Super useful for
typebots displayed on physical devices in a store or at an event.
<br />
<br />
<span style={{ fontWeight: 'bold' }}>Mistral</span>: an alternative
to the OpenAI block. It uses the same parameters. This block allows
you to consume Mistral AI models.
<br />
<br />
<span style={{ fontWeight: 'bold' }}>Dify.AI</span>: craft your own
AI agent on Dify and consume it directly on Typebot to have the best
of both worlds.
</Text>
<Img
src={`${imagesBaseUrl}/newblocks.jpg`}
width="550"
alt="3 new blocks"
style={image}
/>
</Section>
<Section style={featureSection}>
<Heading style={heading}>OpenAI block: Ask assistant</Heading>
<Text style={text}>
Probably the easiest way to use OpenAI's new Assistant features.
Drag and drop a block, plug a few things and you're good to go ✨
</Text>
<Img
src={`${imagesBaseUrl}/openaiAssistantGif.gif`}
width="550"
alt="OpenAI Assistant demo"
style={image}
/>
</Section>
<Section style={featureSection}>
<Heading style={heading}>Other notable improvements</Heading>
<Text style={text}>
⏰ You can now select a time window in the Analytics graph for a
finer analysis.
<br />
<br />
⌨️ Improved typing emulation settings. You can now set a global wait
time between each messages.
<br />
<br />
🧠 Tools / functions support in OpenAI block
<br />
<br />
🔒 New "Allowed origins" typebot settings to make sure your typebot
can only be ran from your domain.
<br />
<br />
🗄️ New visibility option in the File upload block. You can now set
your uploaded file URL as private.
<br />
<br />
👨‍💻 You can now use the `setVariable` function in any custom code to
set the value of a specific variable.
</Text>
</Section>
<Hr style={hr} />
<Text style={{ ...text, marginBottom: '60px' }}>
Feel free to reply to this email, I read and answer all of them. ❤️
<br />
<br />
Baptiste.
</Text>
<Img
src={`${env.NEXTAUTH_URL}/images/logo.png`}
width="32"
height="32"
alt="Typebot's Logo"
style={{
marginTop: '24px',
}}
/>
<Text style={footer}>Typebot.io - Powering Conversations at Scale</Text>
<Link
href="{{unsubscribe}}"
target="_blank"
style={{ ...link, color: '#898989', fontSize: '12px' }}
>
Unsubscribe
</Link>
</Container>
</Body>
</Html>
)
V2dot22Update.PreviewProps = {
firstName: 'John',
}
export default V2dot22Update
const main = {
backgroundColor: '#ffffff',
}
const image = {
maxWidth: '100%',
borderRadius: '8px',
}
const container = {
paddingLeft: '12px',
paddingRight: '12px',
margin: '0 auto',
}
const link = {
color: '#2754C5',
fontFamily:
"-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
fontSize: '15px',
textDecoration: 'underline',
}
const text = {
color: '#333',
fontFamily:
"-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
fontSize: '15px',
marginBottom: '24px',
}
const footer = {
color: '#898989',
fontFamily:
"-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
fontSize: '14px',
lineHeight: '22px',
marginTop: '12px',
marginBottom: '24px',
}
const heading = {
color: '#333',
fontFamily:
"-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
fontSize: '18.5px',
fontWeight: 'bold',
margin: '32px 0 14px 0',
padding: '0',
}
const featureSection = {
marginBottom: '32px',
}
const hr = {
margin: '60px 0',
}

View File

@ -0,0 +1,130 @@
import {
Body,
Container,
Head,
Heading,
Html,
Img,
Link,
Preview,
Text,
} from '@react-email/components'
import * as React from 'react'
import { env } from '@typebot.io/env'
interface Props {
magicLinkUrl: string
}
const imagesBaseUrl = `${env.NEXTAUTH_URL}/images`
export const MagicLink = ({ magicLinkUrl }: Props) => (
<Html>
<Head />
<Preview>Log in with this magic link</Preview>
<Body style={main}>
<Container style={container}>
<Img
src={`${imagesBaseUrl}/logo.png`}
width="32"
height="32"
alt="Typebot's Logo"
style={{
margin: '24px 0',
}}
/>
<Heading style={heading}>Your magic link</Heading>
<Link
href={magicLinkUrl}
target="_blank"
style={{
...clickLink,
display: 'block',
marginBottom: '24px',
}}
>
👉 Click here to sign in 👈
</Link>
<Text
style={{
...text,
color: '#ababab',
marginTop: '14px',
marginBottom: '16px',
}}
>
If you didn&apos;t try to login, you can safely ignore this email.
</Text>
<Text style={footer}>
<Link
href="https://notion.so"
target="_blank"
style={{ ...link, color: '#898989' }}
>
Typebot.io
</Link>
- Powering Conversations at Scale
</Text>
</Container>
</Body>
</Html>
)
MagicLink.PreviewProps = {
magicLinkUrl: 'http://localhost:3000',
} as Props
export default MagicLink
const main = {
backgroundColor: '#ffffff',
}
const container = {
paddingLeft: '12px',
paddingRight: '12px',
margin: '0 auto',
}
const clickLink = {
color: '#2754C5',
fontFamily:
"-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
fontSize: '18px',
}
const link = {
color: '#2754C5',
fontFamily:
"-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
fontSize: '14px',
textDecoration: 'underline',
}
const heading = {
color: '#333',
fontFamily:
"-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
fontSize: '24px',
fontWeight: 'bold',
margin: '32px 0',
padding: '0',
}
const text = {
color: '#333',
fontFamily:
"-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
fontSize: '14px',
margin: '24px 0',
}
const footer = {
color: '#898989',
fontFamily:
"-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
fontSize: '12px',
lineHeight: '22px',
marginTop: '12px',
marginBottom: '24px',
}

2004
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@ -5,3 +5,4 @@ packages:
- 'packages/forge/*'
- 'packages/forge/blocks/*'
- 'apps/*'
- 'packages/transactional/.react-email'