Research anything. Astera searches the web, reads trusted sources, reconciles evidence, and writes comprehensive research reports.
Astera is an open-source deep research application designed to turn complex research prompts into clear, highly structured, evidence-backed reports.
Unlike standard conversational search bots that summarize snippet search results, Astera behaves as an autonomous research team:
- Plans Research Strategy: Breaks a prompt into multiple distinct search angles.
- Discovers & Scores Sources: Ranks web domains by authority and trust.
- Scrapes Full Web Pages: Reads full text rather than relying on brief snippets.
- Reconciles Evidence: Compares facts, removes duplicate citations, and drafts report sections.
- Evaluates Completeness: Runs a Critic agent pass to verify quality before delivering the final report.
Astera supports both anonymous users (zero storage, transient sessions) and authenticated users (persistent cloud history, multi-turn follow-up conversations, search, and title auto-generation).
Traditional search engines leave you clicking through dozens of tabs, while standard LLMs are prone to hallucinating facts or citing superficial snippets.
How Astera is different:
- Evidence-First: Every report section is built directly from scraped web content.
- Multi-Turn Workspace: Continue any research session by asking follow-up questions beneath the original report, exactly like ChatGPT.
- Authority Ranking: Filters out clickbait and content farms by scoring domain authority (
.gov,.edu, trusted journalism, academic portals). - Cloud-Synced History: Authenticated users can restore, search, pin, rename, or archive past research sessions effortlessly.
- π Multi-Query Expansion: Automatically plans 3-4 distinct search queries per topic.
- π Deep Web Reading: Scrapes full article content from top authority sources.
- β‘ Real-Time Progress Streaming: Emits live Server-Sent Events (SSE) detailing every step (
Searching,Reading X/Y,Writing,Checking). - π¬ Continuous Multi-Turn Chat: Follow-up prompts append seamlessly without losing past research reports.
- π Production Auth.js (NextAuth v5): OAuth sign-in via Google & GitHub, with zero-friction anonymous access.
- ποΈ Supabase PostgreSQL & Prisma ORM: Scalable schema built for conversations, messages, sessions, sources, bookmarks, and tags.
- π± Mobile-First & Accessible: Fully responsive drawer sidebar, touch controls, keyboard navigation, and ARIA live regions.
- π¨ Modern Aesthetics: Sleek dark mode, glassmorphism, auto-expanding textarea, and domain favicons.
Astera connects a high-performance FastAPI multi-agent backend with a Next.js App Router frontend.
graph TD
User["π€ User / Browser"] -->|Next.js App Router| Frontend["π» Next.js Frontend (React 19)"]
Frontend -->|Auth.js v5| Auth["π Auth.js (Google / GitHub)"]
Auth -->|Prisma Client| DB[("ποΈ Supabase PostgreSQL")]
Frontend -->|SSE Progress / GET| Backend["β‘ FastAPI Backend (Python)"]
Backend -->|Multi-Query Planner| Planner["π― Query Generator"]
Planner -->|Search API| Tavily["π Tavily Web Search"]
Tavily -->|Domain Authority Ranking| Scraper["π Playwright / BeautifulSoup Scraper"]
Scraper -->|Full Text Context| Writer["βοΈ Writer Agent (LLM)"]
Writer -->|Draft Report| Critic["π§ Critic Review Agent"]
Critic -->|Final Verified Result| Frontend
Astera/
βββ .github/ # Issue & PR templates
β βββ ISSUE_TEMPLATE/
β β βββ bug_report.md
β β βββ feature_request.md
β βββ PULL_REQUEST_TEMPLATE.md
βββ agents/ # Multi-agent definitions (Planner, Scraper, Writer, Critic)
βββ chains/ # LangChain execution chains
βββ models/ # Multi-provider LLM connector (Groq, Cerebras, Gemini, Mistral)
βββ pipelines/ # Deep research orchestrator & SSE generator
βββ tools/ # Web search & deep scraping tools
βββ api.py # FastAPI production application
βββ ui/ # Next.js App Router frontend
β βββ app/ # App router pages, routes & metadata
β βββ components/ # React UI components (Sidebar, SearchInput, ChatContainer)
β βββ hooks/ # Custom React hooks (useConversation, useResearch)
β βββ lib/ # Auth.js, Prisma, API clients, TypeScript definitions
β βββ prisma/
β βββ schema.prisma # Production Supabase PostgreSQL schema
βββ CONTRIBUTING.md # Contribution guidelines
βββ LICENSE # MIT License
βββ SECURITY.md # Security reporting policy
βββ requirements.txt # Backend Python dependencies
| Layer | Technologies |
|---|---|
| Frontend Framework | Next.js 16 (App Router), React 19, TypeScript, Tailwind CSS, Framer Motion |
| Authentication | Auth.js (NextAuth v5), Google OAuth, GitHub OAuth |
| Database & ORM | Supabase PostgreSQL, Prisma ORM (v6) |
| Backend API | Python 3.11+, FastAPI, Uvicorn, SSE Streaming |
| Agent Orchestration | LangChain, Pydantic, Custom Evidence Pipeline |
| Web Search & Scraping | Tavily API, BeautifulSoup4, Playwright |
| Deployment | Vercel (Frontend), Railway (Backend), Supabase (Database) |
- Node.js: v20+ and
npm - Python: v3.11+
- Database: PostgreSQL connection URI (e.g. Supabase)
git clone https://github.com/your-username/Astera.git
cd Astera# Create virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Configure environment variables
cp .env.example .envFill your API keys in .env:
TAVILY_API_KEY=tvly-your-key
GROQ_API_KEY=gsk_your_key
GEMINI_API_KEY=your_key
ALLOWED_ORIGINS=http://localhost:3000Start the backend server:
python api.pyBackend runs on http://localhost:8000 (Docs available at http://localhost:8000/docs).
Open a new terminal window:
cd ui
# Install dependencies
npm install
# Setup local environment
cp .env.example .env.localConfigure ui/.env.local:
NEXT_PUBLIC_API_URL=http://localhost:8000
DATABASE_URL=postgresql://postgres:password@localhost:5432/astera
DIRECT_URL=postgresql://postgres:password@localhost:5432/astera
AUTH_SECRET=your-random-auth-secret
AUTH_GOOGLE_ID=your-google-client-id
AUTH_GOOGLE_SECRET=your-google-client-secret
AUTH_GITHUB_ID=your-github-client-id
AUTH_GITHUB_SECRET=your-github-client-secretGenerate Prisma Client & run migrations:
npm exec prisma generateStart Next.js dev server:
npm run devFrontend runs on http://localhost:3000.
- Push your repository to GitHub.
- Import project into Vercel and select root directory
ui. - Set Environment Variables (
NEXT_PUBLIC_API_URL,DATABASE_URL,AUTH_SECRET,AUTH_GOOGLE_ID,AUTH_GOOGLE_SECRET, etc.). - Deploy!
- Deploy root directory to Railway using the included
DockerfileorProcfile. - Add environment variables (
TAVILY_API_KEY,GROQ_API_KEY,GEMINI_API_KEY,ALLOWED_ORIGINS).
- Multi-query research strategy & authority scoring
- Real-time SSE progress streaming
- Auth.js (NextAuth v5) Google & GitHub OAuth integration
- Supabase PostgreSQL & Prisma ORM persistent storage
- Continuous multi-turn conversation feed & auto-expanding input
- Bookmark specific report sections
- Group conversations into Folders & Collections
- One-click PDF & Markdown export
- Public shared conversation links
Distributed under the MIT License. See LICENSE for details.