8.8 KiB
Customizing and Creating Derivative Applications
Creating a derivative application from big-AGI allows you to extend its capabilities, tailor the experience to your needs, or even target a completely new audience. This guide provides an overview of how to start this exciting journey.
Manual Customization
Customizing the application happens through manual code alterations or at best through environment variables. At the moment there is no "Wizard" or administation panel to customize the application. You will need to manually edit the source code to make changes, and this includes modifying the personas, adding new features, or integrating additional APIs.
| Code Alteration Required | Not Required |
|---|---|
| - Change personas - Customize UI Theme - Add or modify features |
- Setting API keys in environment variables - Toggle some dynamic features with environment variables |
When changes are needed/used:
- Code alterations: on the source, before building the application
- Authentication: requires a code alteration (renaming a file) before starting the build, see deploy-authentication.md
- Environment variables: after building the application on your local computers or deploying to the cloud, and before running it
Code Alterations
Begin by forking the big-AGI repository. This will create a copy under your GitHub account, providing a personal workspace for your project.
Understand the Architecture: big-AGI is built using Next.js, leveraging React for the frontend and Node.js for the backend. Familiarize yourself with the project structure and the technologies used. This understanding is crucial for making meaningful modifications.
Customize the Personas
You can customize the personas by editing the src/data.ts file. This file contains the default personas used in the application. You can add new personas, remove existing ones, or modify the existing ones to fit your project's requirements.
- edit
src/data.tsto change the default personas
Customize the UI
The UI can be customized to fit your project's theme, add new features, or remove existing ones that are not needed.
- edit
src/common/app.theme.tsto change the theme: colors, spacing, looks of buttons, animations, etc. - edit
src/common/app.config.tsxto change the name of the application - edit
src/common/app.nav.tsxto change the navigation bar
Other: Add or Modify Features
- Integrate New APIs: You can integrate additional APIs by adding new endpoints in the
pages/apidirectory. - Enhance Functionality: Modify existing features or add new ones by editing the React components and the backend logic.
Testing & Deployment
Ensure to thoroughly test your application, by means of local development (see the README.md for how to build locally, it's simple). Deploy your application using your preferred hosting service. big-AGI can be deployed on Vercel, Docker, or any platform that supports Node.js applications, and in particular platforms that support the "Edge Runtime" of NextJS.
- see deploy-cloudflare.md for an example of deploying to Cloudflare Workers
- see deploy-docker.md for instructions and examples with Docker
Share Your Project
Once your variant is live, don't forget to share it with the community, and we will link to your project, for instance:
| Project | Features | GitHub |
|---|---|---|
🚀 CoolAGI: Where AI meets Imagination![]() |
Code Interpreter, Vision, Mind maps, Web Searches, Advanced Data Analytics, Large Data Handling and more! | nextgen-user/CoolAGI |
| HL-GPT | Fully remodeled UI | harlanlewis/nextjs-chatgpt-app |
If your project is public, please highlight your updates in the README.md and open a pull request to add your project to the list. This will help others discover your project and learn from your experience.
Best Practices
- Stay Updated: Regularly merge updates from the original big-AGI repository to benefit from bug fixes and new features
- Keep It Open Source: Consider keeping your derivative open source to encourage community contributions
- Engage with the Community: Use platforms like GitHub, Discord, or Reddit to gather feedback, find collaborators, and showcase your project
Creating a derivative application is not just about adding new features; it's about reimagining what's possible with AI and sharing it with the world. We can't wait to see what you build!
