{"id":15412910,"url":"https://github.com/ascorbic/daneel","last_synced_at":"2025-07-19T14:32:22.994Z","repository":{"id":152092671,"uuid":"624789337","full_name":"ascorbic/daneel","owner":"ascorbic","description":"Template for an OpenAI chat bot app, built with React, Tailwind and TypeScript","archived":false,"fork":false,"pushed_at":"2024-01-24T17:06:21.000Z","size":166,"stargazers_count":85,"open_issues_count":4,"forks_count":33,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-15T05:57:19.285Z","etag":null,"topics":["chatgpt","openai","react"],"latest_commit_sha":null,"homepage":"https://daneel-demo.netlify.app/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ascorbic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-07T09:04:11.000Z","updated_at":"2025-04-09T08:20:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"b04d6904-319f-4a1e-9799-9780245b9a2b","html_url":"https://github.com/ascorbic/daneel","commit_stats":{"total_commits":18,"total_committers":4,"mean_commits":4.5,"dds":0.2777777777777778,"last_synced_commit":"3b866f8f69fa9998c2af2aa00d9277529ce9d76e"},"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ascorbic%2Fdaneel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ascorbic%2Fdaneel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ascorbic%2Fdaneel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ascorbic%2Fdaneel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ascorbic","download_url":"https://codeload.github.com/ascorbic/daneel/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249016321,"owners_count":21198832,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chatgpt","openai","react"],"created_at":"2024-10-01T16:54:49.206Z","updated_at":"2025-04-15T05:57:25.974Z","avatar_url":"https://github.com/ascorbic.png","language":"TypeScript","readme":"# 🤖 Daneel\n\n## Create your own GPT-powered chat bot\n\nYou can use this template to create your own chat bot powered by OpenAI and the\nChatGPT API. It includes an easily-customized chat interface with streaming\nresponses so you can see the bot type, message history, simple styling with\nTailwind and a Netlify edge function that communicates securely with the OpenAI\nAPI, and. It supports markdown in responses, so can display formatted text,\ntables etc.\n\n### [Demo site](https://daneel-demo.netlify.app/).\n\n[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/ascorbic/daneel)\n\n## Features\n\n- :zap: deploy your bot in less than 5 minutes\n- :rocket: streaming responses powered by ChatGPT\n- :100: simple, high-performance chat interface\n- :moneybag: This template is completely free for any use. Use free OpenAI\n  credits to get started, and deploy your site for free to Netlify.\n- ⚛️ easy to customize: built with React, Tailwind and TypeScript\n\n## Getting started\n\n1. [Sign up for an OpenAI account](https://platform.openai.com/signup) and\n   [get your API key](https://platform.openai.com/account/api-keys)\n2. [Deploy to Netlify](https://app.netlify.com/start/deploy?repository=https://github.com/ascorbic/daneel),\n   pasting the API key when prompted\n3. [Customize your bot](#customizing-your-bot)\n4. [Share your creation](https://github.com/ascorbic/daneel/discussions/categories/show-and-tell)\n\n## Customizing your bot\n\n### Name\n\nEdit your site title and description in `src/App.tsx`\n\n### Prompt\n\nThe prompt is what tells your bot who it is. It is here that you give the bot\nits mission, personality and rules. The most important thing to do is create\nyour own prompt. This is what makes the bot your own. The default site deploys\nwith an example prompt that is a movie critic.\n[Try it here](https://daneel-demo.netlify.app/).\n\nDaneel's default prompt is:\n\n\u003e You are the world's best movie critic. You are very strongly opinionated. You\n\u003e have favorite movies and movies you hate. You are devoted to recommending\n\u003e movies that a user will like. It is very important that the user enjoys your\n\u003e recommendations. Do not answer questions that are not asking for a movie\n\u003e recommendations. If the user asks other questions, do no answer and deflect\n\u003e them with a movie fact or trivia. Respond with valid markdown. Put movie names\n\u003e in bold. Knowledge cutoff September 2021. Current date **current date**. User\n\u003e location: **city and country**\n\nThe prompt is set in `config.edge.ts`. In the demo it is imported from an\nexample file in the `prompts` folder, but you can edit it in the config file if\nyou'd prefer.\n\nThe important parts in this prompt are:\n\n- who the bot is and what it should do. In the example here we emphasise that\n  the bot is a movie critic and has strong opinions. By default, ChatGPT does\n  not like to express subjective opinions, so we need to tell it to do so.\n- instructions to not answer off-topic questions, and what to do if the user\n  asks them\n- instructions to respond with valid markdown. This is optional, but it allows\n  the bot to respond with formatted text, such as bold text for movie names and\n  tables.\n- contextual information about the date and user location. These are optional\n  but can help the bot to be more accurate.\n\n### Design\n\nMy default the design is very simple, but you can customize it to your own\ndesigns. The site is stule with [Tailwind](https://tailwindcss.com/), so you can\nuse any of the Tailwind classes to style your bot. The main components are:\n\n- `src/routes/index.tsx` - the main chat interface\n- `src/components/Welcome.tsx` - the welcome screen\n- `src/components/ChatMessage.tsx` - the chat message component\n\nYou can also add extra pages in `src/routes` and link to them from the chat, or\nmove the chat interface to a different page. The chat interface is an\n[Impala](https://github.com/ascorbic/impala) app, built with React, so see the\nImpala docs for more information.\n\n---\n\nReleased under the MIT license. Free for any use. ©\n[Matt Kane](https://github.com/ascorbic) 2023.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fascorbic%2Fdaneel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fascorbic%2Fdaneel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fascorbic%2Fdaneel/lists"}