An AI assistant for any website, in one script tag
askdare is an open source Next.js library by Boldare, on the OpenAI API. It answers from your documents, calls your tools and fits your brand, with security built in.
Click to chat
Everything a website chat needs, nothing it doesn't
One script tag
Your Next.js app serves the chat. Any website, Next.js or not, embeds it with one line.
Embedding the chat →Answers from your documents
Upload a folder once with kb sync. Every answer cites its sources as links to your pages.
Knowledge base →Your own tools
Let the assistant check an order or a price. Arguments are validated with Zod, end to end.
Tools →Images, PDFs and voice
Visitors attach files or dictate. The transcript lands in the field for them to check.
Attachments and voice →Secure by default
Short-lived tokens, rate limits and daily budgets. Visitors never pick the model or tools.
Going public →No database
Conversations live in OpenAI. Deploy to Vercel or Heroku with two environment variables.
Deployment →
From zero to a working chat in fifteen minutes
- 1
Install
Add the library and zod to your Next.js app.
Requirements and setup → - 2
Set up
init writes the chat route, a bot to start from and the environment template.
What init and doctor do → - 3
Embed
Paste one tag on any website. The chat is served from your app.
Embedding on other sites →
# 1. Install $ npm install @boldare/askdare zod # 2. Set up $ npx @boldare/askdare init # 3. Embed <script src="https://your-app.com/api/chat/widget.js?bot=support" async></script>
Four themes, light and dark, or your own
Pick one in a line of config, adjust its tokens, or style every part with your own CSS. Themes and styling in the docs.
- You are looking at it
Aura
Glossy and voice-first, around an iridescent bubble.
- Try Sage →
Sage
A calm companion with a face and a name.
- Try Halo →
Halo
Clean and bright: a frosted orb in rings of light.
- Try Care →
Care
Trust first: hyperlegible type, AAA contrast.
BLDR custom
A custom theme in Boldare's style: one of the presets, adjusted with defineTheme and a few lines of CSS.
defineTheme({ extends: 'halo', tokens: { radius: '0px', … } })See your brand in it →