Skip to content

Commit dbf328d

Browse files
authored
Merge branch 'main' into main
2 parents 4dc480d + 9da3edd commit dbf328d

File tree

10 files changed

+2321
-7
lines changed

10 files changed

+2321
-7
lines changed

.github/workflows/pr-validation.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: MDX Validation
2+
3+
on:
4+
pull_request:
5+
branches: [ main ]
6+
paths:
7+
- 'docs/**'
8+
- '.github/workflows/**'
9+
10+
jobs:
11+
mdx-validation:
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Checkout repo
15+
uses: actions/checkout@v4
16+
17+
- name: Setup Node.js
18+
uses: actions/setup-node@v4
19+
with:
20+
node-version: '18'
21+
cache: 'npm'
22+
23+
- name: MDX validation dependencies
24+
run: npm install --save-dev @mdx-js/mdx @mdx-js/loader glob
25+
26+
- name: Validate MDX files
27+
run: node scripts/validate-mdx.js
28+
29+
- name: Check for broken links
30+
run: |
31+
# Simple check for common broken link patterns
32+
echo "Checking for potential broken links..."
33+
if grep -r "http://localhost\|http://127.0.0.1" docs/; then
34+
echo "❌ Found localhost links that should be removed"
35+
exit 1
36+
fi
37+
echo "✅ No obvious broken links found"
38+
39+
- name: Validate frontmatter
40+
run: |
41+
# Check that all MDX files have required frontmatter
42+
find docs -name "*.mdx" -type f | while read file; do
43+
if ! head -n 10 "$file" | grep -q "^---$"; then
44+
echo "❌ $file - Missing frontmatter (no --- markers)"
45+
exit 1
46+
fi
47+
echo "✅ $file - Has frontmatter"
48+
done

docs/showcase/briefo.mdx

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
---
2+
title: Briefo | Perplexity Powered News & Finance Social App
3+
description: AI curated newsfeed, social discussion, and deep research reports built on the Sonar API
4+
sidebar_position: 1
5+
keywords: [Briefo, finance, news, social media, React Native, Supabase]
6+
---
7+
8+
# Briefo | Perplexity Powered News & Finance Social App
9+
10+
**Briefo** delivers a personalized, AI generated newsfeed and company deep dives. Readers can follow breaking stories, request on demand financial analyses, and discuss insights with friends, all in one mobile experience powered by Perplexity’s Sonar API.
11+
12+
## Features
13+
14+
* Personalized newsfeed across 17 categories with AI summaries and source links
15+
* Private and public threads for article discussion and sharing
16+
* Watch list with real time market snapshots and optional AI analyses
17+
* Deep research reports generated on 12 selectable criteria such as management, competitors, and valuation
18+
* General purpose chat assistant that remembers each user’s preferred topics
19+
20+
## Prerequisites
21+
22+
* Node 18 LTS or newer
23+
* npm, Yarn, or pnpm
24+
* Expo CLI (`npm i -g expo-cli`)
25+
* Supabase CLI 1.0 or newer for local emulation and Edge Function deploys
26+
27+
## Installation
28+
29+
git clone https://github.com/adamblackman/briefo-public.git
30+
cd briefo-public
31+
npm install
32+
### Environment variables
33+
34+
# .env (project root)
35+
MY_SUPABASE_URL=https://<project>.supabase.co
36+
MY_SUPABASE_SERVICE_ROLE_KEY=...
37+
PERPLEXITY_API_KEY=...
38+
LINKPREVIEW_API_KEY=...
39+
ALPACA_API_KEY=...
40+
ALPACA_SECRET_KEY=...
41+
42+
# .env.local (inside supabase/)
43+
# duplicate or override any secrets needed by Edge Functions
44+
45+
## Usage
46+
Run the Expo development server:
47+
48+
npx expo start
49+
50+
Deploy Edge Functions when you are ready:
51+
52+
supabase functions deploy perplexity-news perplexity-chat perplexity-research portfolio-tab-data
53+
54+
## Code Explanation
55+
56+
* Frontend: React Native with Expo Router (TypeScript) targeting iOS, Android, and Web
57+
* Backend: Supabase (PostgreSQL, Row Level Security, Realtime) for data and authentication
58+
* Edge Functions: TypeScript on Deno calling Perplexity, Alpaca, Alpha Vantage, and LinkPreview APIs
59+
* Hooks: Reusable React Query style data hooks live in lib/ and hooks/
60+
* Testing and Linting: ESLint, Prettier, and Expo Lint maintain code quality
61+
62+
## Links
63+
https://github.com/adamblackman/briefo-public
64+
https://www.briefo.fun/

docs/showcase/citypulse-ai-search.mdx

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
---
2+
title: CityPulse - AI-Powered Geospatial Discovery Search
3+
description: Real-time local discovery search using Perplexity AI for personalized location insights and recommendations
4+
sidebar_position: 2
5+
keywords: [perplexity, geospatial, location, real-time, maps, local-discovery, sonar]
6+
---
7+
8+
# CityPulse - AI-Powered Geospatial Discovery
9+
10+
![CityPulse Main Interface](https://raw.githubusercontent.com/anevsky/CityPulse/main/assets/CityPulse-GeoSearch-App-1.jpg)
11+
12+
CityPulse is an intelligent location-based discovery search that helps users explore what's happening around them right now. It demonstrates how to create personalized, real-time local insights using Perplexity's Sonar models.
13+
14+
[![Demo Video](https://cdn.loom.com/sessions/thumbnails/6507fa27571442e680edf787b0f0690d-2fa2c36169822631-full-play.gif)](https://youtu.be/Y0UIhh3diJg)
15+
16+
## What CityPulse Does
17+
18+
- **Real-time local discovery** - Find current events, restaurants, and local alerts near any location
19+
- **AI-powered search suggestions** - Get intelligent search recommendations as you type
20+
- **Personalized insights** - Receive AI-generated advice on what to try, best times to visit, and pro tips
21+
- **Interactive mapping** - Explore results on an interactive map with custom markers and detailed popups
22+
23+
![Search Interface](https://raw.githubusercontent.com/anevsky/CityPulse/main/assets/CityPulse-GeoSearch-App-2.jpg)
24+
25+
## How It Uses Perplexity Sonar
26+
27+
CityPulse leverages two key Perplexity models:
28+
29+
**Sonar for Real-Time Data**
30+
```python
31+
# Get current local information with geographic context
32+
response = client.chat.completions.create(
33+
model="sonar",
34+
messages=[{
35+
"role": "user",
36+
"content": f"Find current events, restaurants, and alerts near {lat}, {lng}"
37+
}],
38+
response_format={"type": "json_schema", "json_schema": {"schema": LOCAL_INFO_SCHEMA}}
39+
)
40+
```
41+
42+
**Sonar Reasoning for Personalized Insights**
43+
```python
44+
# Generate AI-powered location recommendations
45+
response = client.chat.completions.create(
46+
model="sonar-reasoning",
47+
messages=[{
48+
"role": "user",
49+
"content": f"Provide personalized insights for {location_name}: what to try, best times to visit, pro tips"
50+
}]
51+
)
52+
```
53+
54+
The app uses structured JSON schemas to ensure consistent data formatting and includes citation tracking for source verification.
55+
56+
![AI Insights](https://raw.githubusercontent.com/anevsky/CityPulse/main/assets/CityPulse-GeoSearch-App-3.jpg)
57+
58+
## Links
59+
60+
- [GitHub Repository](https://github.com/anevsky/CityPulse)
61+
- [Live Demo](https://citypulse-ppx.uc.r.appspot.com/)
62+
- [Video Demo](https://youtu.be/Y0UIhh3diJg)
63+
- **[Built with ❤️ by Alex Nevsky](https://alexnevsky.com)**

docs/showcase/fact-dynamics.mdx

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
---
2+
title: Fact Dynamics | Real-time Fact-Checking Flutter App
3+
description: Cross-platform app for real-time fact-checking of debates, speeches, and images using Perplexity's Sonar API
4+
sidebar_position: 3
5+
keywords: [Fact Dynamics, fact-checking, Flutter, Dart, real-time, speech-to-text, debate, image verification]
6+
---
7+
8+
# Fact Dynamics | Real-time Fact-Checking Flutter App
9+
<p align="center">
10+
<img
11+
src="https://raw.githubusercontent.com/vishnu32510/fact_pulse/main/assets/icon/icon.png"
12+
alt="Fact Dynamics logo"
13+
width="80"
14+
height="80"
15+
style={{ borderRadius: '14px' }}
16+
/>
17+
</p>
18+
19+
**Hackathon Submission** - Built for Perplexity Hackathon in Information Tools & Deep Research categories.
20+
21+
Fact Dynamics is a cross-platform Flutter app that provides real-time fact-checking for spoken content and images. Perfect for live debates, presentations, and on-the-fly information verification.
22+
23+
24+
## Features
25+
26+
* Real-time speech transcription and fact-checking during live conversations
27+
* Image text extraction and claim verification with source citations
28+
* Claim rating system (TRUE, FALSE, MISLEADING, UNVERIFIABLE) with explanations
29+
* Source Citations** - Provides authoritative URLs backing each verdict
30+
31+
* Debate mode with continuous speech recognition and streaming feedback
32+
* User authentication via Firebase (Google, Email) with persistent chat history
33+
* Cross-platform support for iOS, Android, and Web
34+
35+
## Prerequisites
36+
37+
* Flutter SDK 3.0.0 or newer
38+
* Dart SDK 2.17.0 or newer
39+
* Firebase CLI for authentication and database setup
40+
* Perplexity API key for Sonar integration
41+
* Device with microphone access for speech recognition
42+
43+
## Installation (Follow Detailed guideline on the Repository)
44+
45+
```bash
46+
git clone https://github.com/vishnu32510/fact_pulse.git
47+
cd fact_pulse
48+
flutter pub get
49+
```
50+
51+
## Usage
52+
53+
**Real-time Speech Fact-Checking:**
54+
- Streams 5-second audio chunks through Flutter's `speech_to_text`
55+
- Sends transcribed snippets to Sonar API with structured prompts
56+
- Returns JSON with claims, ratings (TRUE/FALSE/MISLEADING/UNVERIFIABLE), explanations, and sources
57+
58+
**Image Analysis:**
59+
- Uploads images/URLs to Sonar API for text extraction
60+
- Verifies extracted claims against authoritative sources
61+
- Provides comprehensive analysis with source attribution
62+
63+
## Screenshots
64+
65+
<table>
66+
<tr>
67+
<td>
68+
<img
69+
src="https://raw.githubusercontent.com/vishnu32510/fact_pulse/main/assets/screenshots/2.%20Dashboard.png"
70+
alt="Dashboard"
71+
width="200"
72+
/>
73+
</td>
74+
<td>
75+
<img
76+
src="https://raw.githubusercontent.com/vishnu32510/fact_pulse/main/assets/screenshots/4.%20Fact%20Checks(Speech,%20Debate,%20Image).png"
77+
alt="Fact checking interface"
78+
width="200"
79+
/>
80+
</td>
81+
</tr>
82+
</table>
83+
84+
## Code Explanation
85+
86+
* Frontend: Flutter with BLoC pattern for state management targeting iOS, Android, and Web
87+
* Backend: Firebase (Firestore, Authentication) for user data and chat history persistence
88+
* Speech Processing: speech_to_text package for real-time audio transcription
89+
* API Integration: Custom Dart client calling Perplexity Sonar API with structured prompts
90+
* Image Processing: Built-in image picker with base64 encoding for multimodal analysis
91+
* Data Architecture: Firestore collections per user with subcollections for debates, speeches, and images
92+
93+
## Open Source SDKs
94+
95+
Built two reusable packages for the Flutter community:
96+
- **[perplexity_dart](https://pub.dev/packages/perplexity_dart)** - Core Dart SDK for Perplexity API
97+
- **[perplexity_flutter](https://pub.dev/packages/perplexity_flutter)** - Flutter widgets and BLoC integration
98+
99+
100+
## Links
101+
102+
- **[GitHub Repository](https://github.com/vishnu32510/fact_pulse)** - Full source code
103+
- **[Live Demo](https://fact-pulse.web.app/)** - Try the web version
104+
- **[Demo Video](https://youtu.be/92IoX19Djtc)** - Watch it in action
105+
- **[Devpost Submission](https://devpost.com/software/fact-dynamics)** - Hackathon entry

docs/showcase/index.mdx

Lines changed: 0 additions & 7 deletions
This file was deleted.

docs/showcase/perplexigrid.mdx

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
---
2+
title: PerplexiGrid | Interactive Analytics Dashboards
3+
description: Instantly generate analytics dashboards from natural language using live data via Perplexity Sonar API.
4+
sidebar_position: 5
5+
keywords: [perplexigrid, dashboard, analytics, BI, AI, Perplexity, sonar, echarts, supabase]
6+
---
7+
8+
**PerplexiGrid** turns natural language into rich, interactive dashboards. Connect your data and mix it with live web data, ask a question, and let the Sonar API do the rest! Complete with drag-and-drop layout, AI widget generation, and ECharts-powered visualizations.
9+
10+
## Features
11+
12+
* **Natural Language to Dashboards**: Convert plain English prompts into fully functional analytics dashboards with 25+ widget types
13+
* **Live Data Integration**: Blend your own data sources with real-time web data for comprehensive insights
14+
* **Interactive Grid Layout**: Drag-and-drop interface for customizing dashboard layouts and styling
15+
* **AI-Powered Refinement**: Refine or add widgets using conversational updates
16+
* **Export & Share**: Generate PDF exports, high-res images, and shareable dashboard links
17+
18+
## How it uses Sonar
19+
20+
PerplexiGrid leverages the Sonar API through four specialized modes:
21+
22+
* **Full Dashboard Generation (f1)**: Creates comprehensive dashboards with multiple widgets using Sonar-pro's advanced capabilities
23+
* **Lightweight Mode (l1)**: Generates quick visualizations for embedded systems and real-time applications
24+
* **Dashboard Updates (r1)**: Enables dynamic modifications through natural language while maintaining context
25+
* **Widget Refinement (r2)**: Provides precise control over individual widget updates
26+
27+
The system uses structured JSON schema responses to ensure consistent, ECharts-compatible output that can be directly rendered as interactive visualizations.
28+
29+
## Usage
30+
31+
1. Open the app and start a new dashboard
32+
2. Prompt it like: _"Show me market trends in AI startups in 2024"_ (Sonar generates chart configs, which are parsed and rendered as live widgets)
33+
34+
![Prompt #1](https://www.perplexigrid.com/guide/prompt_dark.gif)
35+
36+
3. Rearrange and style the widgets with the grid interface
37+
38+
![Prompt #2](https://www.perplexigrid.com/guide/move_dark.gif)
39+
![Prompt #3](https://www.perplexigrid.com/guide/customize_dark.gif)
40+
41+
5. Add your own datasources to blend your data with live web data
42+
43+
![Prompt #4](https://www.perplexigrid.com/guide/datasource_dark.gif)
44+
45+
6. Refine them via text prompts or export the dashboard as needed
46+
7. Collaborate and share easily
47+
48+
![Prompt #5](https://www.perplexigrid.com/guide/invite_dark.gif)
49+
50+
## Code Explanation
51+
52+
The user sends messages that are turned into prompts to a Supabase Edge Function that wraps the Perplexity Sonar API.
53+
Depending on the mode (`f1`, `l1`, `r1`, or `r2`), the function generates full structured outputs for dashboards, lightweight visualizations, or targeted updates.
54+
The generated layout is parsed into structured widget definitions and passed through our widget creation engine.
55+
56+
Explore our [main sonar-api service here.](https://github.com/PetarRan/perplexigrid/blob/main/server/supabase/functions/_shared/perplexityService.ts)
57+
58+
## Prompt Modes
59+
60+
| Mode | Description | Use Case | Notes |
61+
|------|-------------|----------|-------|
62+
| `f1` | First-time full dashboard generation | User starts with an empty canvas and enters an initial prompt | Produces a complete dashboard layout with multiple widgets |
63+
| `l1` | Lightweight dashboard generation | Used for quick insights or previews with minimal tokens | Faster and cheaper, but returns fewer widgets with less instruction depth |
64+
| `r1` | Full dashboard regeneration | User wants to replace all existing widgets with a new prompt | Rebuilds the entire dashboard while keeping layout intact |
65+
| `r2` | Targeted widget update | User wants to change a specific widget (e.g. "make this a pie chart") | Only the selected widget is modified based on the new instruction |
66+
67+
## Tech Stack
68+
69+
* **Frontend**: React + Vite (TypeScript), ECharts, react-grid-layout
70+
* **Backend**: Supabase Edge Functions (TypeScript on Deno)
71+
* **AI Engine**: Perplexity Sonar-Pro
72+
* **Infrastructure**: Supabase (PostgreSQL, RLS, Auth), Vercel deployment
73+
74+
## Links
75+
76+
- [GitHub Repository](https://github.com/PetarRan/perplexigrid)
77+
- [Live Demo](https://app.perplexigrid.com)
78+
- [Website](https://www.perplexigrid.com)

0 commit comments

Comments
 (0)