A full-stack application for generating custom signatures from text prompts using AI models. DSPy program implmentation here: https://www.modaic.dev/fadeleke/prompt-to-signature
- Node.js (v18 or higher)
- Python 3.11+
- uv (Python package manager)
- Make
Create a .env file in the server/ directory:
cd server
cp .env.example .envEdit server/.env and add your API keys:
MODAIC_TOKEN="your-modaic-token-here"
GEMINI_API_KEY="your-gemini-api-key-here"
OPENAI_API_KEY="your-openai-api-key-here"
OPENROUTER_API_KEY="your-openrouter-api-key-here"
API_URL="http://localhost:8000"
CLIENT_URL="http://localhost:3000"Note on API Keys: The API key you need depends on which model you're using:
- Default: The application uses
openrouter/claude-haiku-4.5, so you'll need to setOPENROUTER_API_KEY - Custom Model: You can override the model in
server/main.py:29by passingconfig_options:In this case, you would need to setAutoAgent.from_precompiled( "fadeleke/prompt-to-signature", config_options={"lm": "openai/gpt-4o"} )
OPENAI_API_KEYinstead.
Create a .env file in the client/ directory:
cd client
cp .env.example .envEdit client/.env and set the API URL:
NEXT_PUBLIC_API_URL="http://localhost:8000"cd client
npm installcd server
uv syncFrom the root directory, you can use the following commands:
make start-all# Start frontend only
make start-frontend
# Start backend only
make start-backend# Stop both services
make stop-all
# Stop frontend only
make stop-frontend
# Stop backend only
make stop-backend- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- Frontend: Next.js, React, TypeScript
- Backend: FastAPI, Python
- AI Models: Modaic, Gemini, OpenAI