Skip to content

Commit 8fdd497

Browse files
feat: update 9Ruby site structure
1 parent f2a2e9b commit 8fdd497

52 files changed

Lines changed: 5781 additions & 1003 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.env.example

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
ELEVENLABS_AGENT_ID=agent_your_public_or_secured_agent_id
2+
ELEVENLABS_API_KEY=your_elevenlabs_api_key
3+
OPENROUTER_API_KEY=your_openrouter_api_key
4+
OPENROUTER_MODEL=openrouter/free
5+
GROQ_API_KEY=your_groq_api_key
6+
GROQ_MODEL=llama-3.1-8b-instant
7+
GEMINI_API_KEY=your_gemini_api_key
8+
GEMINI_MODEL=gemini-2.5-flash-lite
9+
10+
# Supabase CMS / directory data layer
11+
NEXT_PUBLIC_SUPABASE_URL=https://your-project-ref.supabase.co
12+
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
13+
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
14+
15+
# Product analytics and heatmapping
16+
# Keep disabled until the official project IDs are configured.
17+
NEXT_PUBLIC_ANALYTICS_ENABLED=false
18+
NEXT_PUBLIC_POSTHOG_KEY=phc_your_posthog_project_key
19+
NEXT_PUBLIC_POSTHOG_HOST=https://us.i.posthog.com
20+
NEXT_PUBLIC_CLARITY_PROJECT_ID=your_microsoft_clarity_project_id

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,14 @@
2828
npm-debug.log*
2929
yarn-debug.log*
3030
yarn-error.log*
31+
*.log
3132
.pnpm-debug.log*
3233
.codex-screens/
3334
.codex-dev-*.log
3435

3536
# env files (can opt-in for committing if needed)
3637
.env*
38+
!.env.example
3739

3840
# vercel
3941
.vercel
@@ -45,7 +47,10 @@ graphify-out/
4547

4648
# local runtime lead captures
4749
/data/audit-intake/
50+
/data/blog-events/
51+
/data/blog-subscribers/
4852
/data/income-leads/
53+
/data/revenue-score/
4954

5055
# typescript
5156
*.tsbuildinfo

docs/ai/PLG_HUB_INFRASTRUCTURE.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# 9Ruby PLG Hub Infrastructure
2+
3+
Date: 2026-05-27
4+
5+
## Direction Captured
6+
7+
9Ruby is moving toward a product-led growth and media hub model: AI tool directory, free utilities, wiki/docs, news, and services as the soft upsell. The current visual site should stay intact until the page architecture is approved.
8+
9+
## Installed Prerequisites
10+
11+
- Supabase client support was already present; `@supabase/ssr` and the Supabase CLI are now installed for the CMS/data layer.
12+
- PostHog and Microsoft Clarity are installed for analytics, heatmaps, session replay, and search/intent tracking.
13+
- `pdfjs-dist`, `@ffmpeg/ffmpeg`, and `@ffmpeg/util` are installed for future browser-based PDF/media utilities.
14+
15+
## Non-Visual Runtime Setup
16+
17+
- `src/instrumentation-client.ts` initializes PostHog and Microsoft Clarity only when `NEXT_PUBLIC_ANALYTICS_ENABLED=true` and the relevant project IDs are present.
18+
- `.env.example` documents the required Supabase, PostHog, and Clarity variables without storing secrets.
19+
- `supabase/config.toml` exposes the future `plg` schema locally.
20+
- `supabase/migrations/20260527000000_plg_hub_foundation.sql` creates the first data model for tools, categories, news, wiki guides, comparisons, service offers, search events, and intent events.
21+
22+
## Still Needed Before Production Activation
23+
24+
- Create or link the official Supabase project under the 9Ruby organization.
25+
- Add real Supabase URL, anon key, and service role key in Vercel/project environment variables.
26+
- Create the official PostHog and Microsoft Clarity projects, then add their public IDs to Vercel/project environment variables.
27+
- Decide consent behavior before enabling tracking on production traffic.
28+
- Apply the Supabase migration to the official project after reviewing the schema.

docs/ai/source-reports/9ruby-Website Launch Strategy.txt

Lines changed: 179 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
This is the exact blueprint to take 9Ruby from an agency site to an elite, product-led AI hub (think Futurepedia meets There's An AI For That, but with a built-in agency backend).
2+
Since you are running on Vercel, Supabase, and PostHog, you have the absolute best modern stack to execute this efficiently and for practically zero cost on the infrastructure side.
3+
Here is the master plan for your UI, architecture, database, and SEO to make 9Ruby dominate.
4+
1. Global UI & Layout Architecture
5+
To handle massive amounts of data without looking cluttered, we will use a Sidebar + Main Content layout (like Stripe or high-end SaaS dashboards). You mentioned using clean, minimal icons (like Lucide React)—this is perfect for the sidebar.
6+
The App Store & Directory Structure
7+
Separate your directories clearly so users know exactly what they are looking at:
8+
The Hub (Homepage): A massive search bar ("What do you want to automate today?") surrounded by trending categories.
9+
AI Tools Directory: For SaaS products (ChatGPT, Midjourney, Vapi).
10+
App Store (Free Utilities): Your in-house, white-labeled mini-apps (PDF tools, JSON formatters).
11+
Open-Source Repos: A wiki-style section for local models and GitHub setups.
12+
Page-by-Page Layout Map
13+
Page Type
14+
Layout & Key Elements
15+
Category Page
16+
Grid layout. Filters on top (Free, Freemium, Paid). Sort by (Trending, Newest).
17+
Single Tool Page
18+
Tool Name, Pricing Tag, "Visit Site" button. Below: Description, Pros/Cons, and an embedded YouTube review.
19+
App Store (In-House)
20+
Card layout. "Launch App" button. A subtle upsell: "Need this integrated into your CRM? Hire 9Ruby."
21+
AI News / Blog
22+
Feed style. "TL;DR" summary bullet points at the top of every article for scannability.
23+
2. The Database Schema (Supabase)
24+
To scale to thousands of tools and apps without breaking a sweat, your relational database needs to be pristine.
25+
Key insight: By linking Categories to both Tools (external SaaS) and Apps (your internal utilities), you can dynamically query Supabase to show "Related Free Apps" on every external tool page.
26+
3. The SEO & AEO (Answer Engine Optimization) Blueprint
27+
Google search is changing. People are using Perplexity, ChatGPT, and AI Overviews. You must optimize for AEO (Answer Engine Optimization). Answer engines don't read "fluff"; they read structured data and semantic HTML.
28+
AEO Architecture (How to feed the AI bots):
29+
The "TL;DR" Block: At the top of every single Tool Page and Blog Post, include a <div id="summary"> with 3 bullet points summarizing the page. AI bots scrape this first.
30+
Semantic HTML: Do not use <div> for everything. Use <article> for blog posts, <aside> for related tools, and <nav> for your Lucide icon sidebar.
31+
Programmatic SEO: Use Next.js dynamic routing ([category]/[tool].tsx) to generate thousands of pages from your Supabase database automatically.
32+
Example URL: [9ruby.com/tools/ai-voice/vapi](https://9ruby.com/tools/ai-voice/vapi)
33+
Comparison URL: [9ruby.com/compare/vapi-vs-retell](https://9ruby.com/compare/vapi-vs-retell) (This generates dynamically based on tool tags).
34+
Schema Markup (JSON-LD)
35+
Inject this into the <head> of your pages using Next.js Metadata:
36+
Tools: Use SoftwareApplication schema.
37+
Blog: Use NewsArticle schema.
38+
Guides: Use HowTo schema (This is how you get the step-by-step rich snippets on Google).
39+
4. Analytics & Monetization (PostHog + Vercel)
40+
Since you are using PostHog and Vercel, your stack is perfectly primed for "Product-Led Upselling."
41+
1.Set Up PostHog Event Tracking:Track user frustration.
42+
Set custom events for copy-pasting code, failed app launches, or spending more than 2 minutes on a GitHub installation guide.
43+
2.Create the 'Frustration Funnel':
44+
When a user triggers the "stuck" event from Step 1, trigger a Next.js / PostHog conditional modal: "Open source is hard. Let 9Ruby's team deploy this for you securely for $X."
45+
3.Vercel Edge Caching:
46+
Because you will have thousands of tool pages, use Vercel's Edge CDN (stale-while-revalidate) to cache your Supabase queries. Your site will load in under 100ms globally, which is a massive ranking factor for Google.
47+
5. The "Best-in-Class" Blog Structure
48+
To beat competitors, your blog cannot just be a wall of text. It must be an interactive workspace.
49+
Floating Table of Contents: On the left sidebar (using Lucide icons).
50+
Inline Tool Hover: When an article mentions a tool like "Midjourney", hovering over the word should fetch a quick summary card from your Supabase database via a Vercel Edge function.
51+
The "Run This Prompt" Button: If your blog has a prompt tutorial, include a button that copies the prompt directly to the user's clipboard and redirects them to ChatGPT/Claude.
52+
By building this exact structure, you stop being an "agency looking for clients" and become a platform that clients use daily, capturing their intent the moment they decide a project is too technical to do themselves.

0 commit comments

Comments
 (0)