Welcome to the Tangent project! We're excited you're interested in contributing. This document will help you get started.
Tangent is an AI chat canvas that grows with you. Instead of a linear chat interface, it's a canvas where you can branch off into different threads and explore ideas organically.
Here's a brief overview of the project structure:
simplified-ui/
: Contains all frontend code using React.src/components/
: React components for the UI.chat/
: Components related to the chat interface.visualization/
: Components for the visualization canvas.shared/
: Shared components used across the app.core/
: Core components for styling and functionality.feedback/
Feedback and metrics componentsforms/
: Components for handling user forms.layout/
: Components for application layoutsproviders/
: Context providersnavigation/
: Navigation componentsoverlay/
: Overlay components
src/utils/
: Utility functions.src/index.js
: Entry point for the UI.
tsne.py
: Python backend code using Flask for processing and embeddings.
We'd love your help with:
-
Backend Overhaul (
tsne.py
):- Implementing fuzzy matching or sentence-wise embedding matching for better reflection analysis.
- Refactoring for better organization and readability
- Making the API OpenAI compatible.
-
Frontend Improvements (
simplified-ui/
):- Cleaning up hardcoded configurations.
- Adding a proper configuration system (e.g., using config file).
- Improving the overall code organization and file structure.
- Implementing keyboard shortcuts
- Adding more unit tests.
-
Feature Enhancements:
- Adding a Python interpreter for running/debugging scripts in chat.
- Implementing a React-based Artifacts feature (like Claude's).
- Enhancing multi-modal implementation for image drag & drop.
- Fork the repository.
- Clone your fork to your local machine.
- Install dependencies for the frontend and backend:
# For frontend, go to the simplified-ui directory cd simplified-ui npm install # For backend, requirements.txt is provided pip install -r requirements.txt
- Create a new branch for your changes:
git checkout -b my-feature
- Make your changes and commit them.
- Push your branch to your fork:
git push origin my-feature
- Create a pull request.
- Use descriptive names for variables and functions.
- Add comments to explain complex logic.
- Follow a consistent style (e.g. using Prettier).
Open up a ticket to start any discussions.
Discord server will be up soon!