Merge pull request #4 from AeThex-Corporation/feat/database-migration-and-dev-platform

feat: Improve developer platform navigation and discoverability
This commit is contained in:
MrPiglr 2026-01-09 19:35:29 -07:00 committed by GitHub
commit d9b3fc625e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 54 additions and 1 deletions

View file

@ -831,7 +831,14 @@ const App = () => (
{/* Developer Platform Routes */} {/* Developer Platform Routes */}
<Route path="/dev-platform" element={<DeveloperPlatform />} /> <Route path="/dev-platform" element={<DeveloperPlatform />} />
<Route path="/dev-platform/dashboard" element={<DeveloperDashboard />} /> <Route
path="/dev-platform/dashboard"
element={
<RequireAccess>
<DeveloperDashboard />
</RequireAccess>
}
/>
<Route path="/dev-platform/api-reference" element={<ApiReference />} /> <Route path="/dev-platform/api-reference" element={<ApiReference />} />
<Route path="/dev-platform/quick-start" element={<QuickStart />} /> <Route path="/dev-platform/quick-start" element={<QuickStart />} />
<Route path="/dev-platform/templates" element={<Templates />} /> <Route path="/dev-platform/templates" element={<Templates />} />

View file

@ -88,6 +88,8 @@ export default function CodeLayout({ children, hideFooter }: LayoutProps) {
{ name: "Templates", href: "/dev-platform/templates" }, { name: "Templates", href: "/dev-platform/templates" },
{ name: "Marketplace", href: "/dev-platform/marketplace" }, { name: "Marketplace", href: "/dev-platform/marketplace" },
{ name: "Examples", href: "/dev-platform/examples" }, { name: "Examples", href: "/dev-platform/examples" },
{ name: "divider", href: "#" },
{ name: "Main Dashboard", href: "/dashboard" },
{ name: "Exit Dev Mode", href: "/" }, { name: "Exit Dev Mode", href: "/" },
]; ];

View file

@ -411,6 +411,41 @@ export default function Dashboard() {
{/* Realms Tab */} {/* Realms Tab */}
<TabsContent value="realms" className="space-y-6 animate-fade-in"> <TabsContent value="realms" className="space-y-6 animate-fade-in">
{/* Developer CTA Card */}
{user && (
<Card className="p-6 bg-gradient-to-br from-primary/10 to-primary/5 border-primary/20 hover:border-primary/40 transition-all">
<div className="flex flex-col md:flex-row items-start gap-4">
<div className="p-3 bg-primary/20 rounded-lg shrink-0">
<Code className="w-6 h-6 text-primary" />
</div>
<div className="flex-1">
<h3 className="text-lg font-semibold mb-2">Building with AeThex?</h3>
<p className="text-sm text-muted-foreground mb-4">
Get API keys, access comprehensive documentation, and explore developer tools to integrate AeThex into your applications.
</p>
<div className="flex flex-wrap gap-3">
<Link to="/dev-platform/dashboard">
<Button size="sm">
<Rocket className="w-4 h-4 mr-2" />
Get API Keys
</Button>
</Link>
<Link to="/dev-platform/api-reference">
<Button size="sm" variant="outline">
View API Docs
</Button>
</Link>
<Link to="/dev-platform/templates">
<Button size="sm" variant="outline">
Browse Templates
</Button>
</Link>
</div>
</div>
</div>
</Card>
)}
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4"> <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
{ARMS.map((arm) => { {ARMS.map((arm) => {
const IconComponent = arm.icon; const IconComponent = arm.icon;

View file

@ -1,5 +1,6 @@
import Layout from "@/components/Layout"; import Layout from "@/components/Layout";
import SEO from "@/components/SEO"; import SEO from "@/components/SEO";
import { Breadcrumbs } from "@/components/dev-platform/Breadcrumbs";
import { ThreeColumnLayout } from "@/components/dev-platform/layouts/ThreeColumnLayout"; import { ThreeColumnLayout } from "@/components/dev-platform/layouts/ThreeColumnLayout";
import { ApiEndpointCard } from "@/components/dev-platform/ui/ApiEndpointCard"; import { ApiEndpointCard } from "@/components/dev-platform/ui/ApiEndpointCard";
import { CodeTabs } from "@/components/dev-platform/CodeTabs"; import { CodeTabs } from "@/components/dev-platform/CodeTabs";
@ -68,6 +69,7 @@ export default function ApiReference() {
return ( return (
<Layout> <Layout>
<SEO pageTitle="API Reference" description="Complete documentation for the AeThex Developer API" /> <SEO pageTitle="API Reference" description="Complete documentation for the AeThex Developer API" />
<Breadcrumbs className="mb-6" />
<ThreeColumnLayout <ThreeColumnLayout
sidebar={sidebarContent} sidebar={sidebarContent}
aside={asideContent} aside={asideContent}

View file

@ -1,6 +1,7 @@
import { useState } from "react"; import { useState } from "react";
import Layout from "@/components/Layout"; import Layout from "@/components/Layout";
import SEO from "@/components/SEO"; import SEO from "@/components/SEO";
import { Breadcrumbs } from "@/components/dev-platform/Breadcrumbs";
import { ExampleCard } from "@/components/dev-platform/ExampleCard"; import { ExampleCard } from "@/components/dev-platform/ExampleCard";
import { Input } from "@/components/ui/input"; import { Input } from "@/components/ui/input";
import { Button } from "@/components/ui/button"; import { Button } from "@/components/ui/button";

View file

@ -1,6 +1,7 @@
import { useState, useEffect } from "react"; import { useState, useEffect } from "react";
import Layout from "@/components/Layout"; import Layout from "@/components/Layout";
import SEO from "@/components/SEO"; import SEO from "@/components/SEO";
import { Breadcrumbs } from "@/components/dev-platform/Breadcrumbs";
import { StatCard } from "@/components/dev-platform/ui/StatCard"; import { StatCard } from "@/components/dev-platform/ui/StatCard";
import { ApiKeyCard } from "@/components/dev-platform/ApiKeyCard"; import { ApiKeyCard } from "@/components/dev-platform/ApiKeyCard";
import { CreateApiKeyDialog } from "@/components/dev-platform/CreateApiKeyDialog"; import { CreateApiKeyDialog } from "@/components/dev-platform/CreateApiKeyDialog";
@ -215,6 +216,7 @@ export default function DeveloperDashboard() {
return ( return (
<Layout> <Layout>
<SEO pageTitle="Developer Dashboard" description="Manage your API keys and monitor usage" /> <SEO pageTitle="Developer Dashboard" description="Manage your API keys and monitor usage" />
<Breadcrumbs className="mb-6" />
<div className="space-y-8"> <div className="space-y-8">
{/* Warning for expiring keys */} {/* Warning for expiring keys */}
{expiringSoon.length > 0 && ( {expiringSoon.length > 0 && (

View file

@ -1,6 +1,7 @@
import { useState } from "react"; import { useState } from "react";
import Layout from "@/components/Layout"; import Layout from "@/components/Layout";
import SEO from "@/components/SEO"; import SEO from "@/components/SEO";
import { Breadcrumbs } from "@/components/dev-platform/Breadcrumbs";
import { MarketplaceCard } from "@/components/dev-platform/MarketplaceCard"; import { MarketplaceCard } from "@/components/dev-platform/MarketplaceCard";
import { Input } from "@/components/ui/input"; import { Input } from "@/components/ui/input";
import { Button } from "@/components/ui/button"; import { Button } from "@/components/ui/button";

View file

@ -1,5 +1,6 @@
import Layout from "@/components/Layout"; import Layout from "@/components/Layout";
import SEO from "@/components/SEO"; import SEO from "@/components/SEO";
import { Breadcrumbs } from "@/components/dev-platform/Breadcrumbs";
import { ThreeColumnLayout } from "@/components/dev-platform/layouts/ThreeColumnLayout"; import { ThreeColumnLayout } from "@/components/dev-platform/layouts/ThreeColumnLayout";
import { CodeTabs } from "@/components/dev-platform/CodeTabs"; import { CodeTabs } from "@/components/dev-platform/CodeTabs";
import { Callout } from "@/components/dev-platform/ui/Callout"; import { Callout } from "@/components/dev-platform/ui/Callout";
@ -85,6 +86,7 @@ export default function QuickStart() {
return ( return (
<Layout> <Layout>
<SEO pageTitle="Quick Start Guide" description="Get up and running with the AeThex API in minutes" /> <SEO pageTitle="Quick Start Guide" description="Get up and running with the AeThex API in minutes" />
<Breadcrumbs className="mb-6" />
<ThreeColumnLayout sidebar={sidebarContent} aside={asideContent}> <ThreeColumnLayout sidebar={sidebarContent} aside={asideContent}>
<div className="space-y-12"> <div className="space-y-12">
{/* Introduction */} {/* Introduction */}

View file

@ -1,6 +1,7 @@
import { useState } from "react"; import { useState } from "react";
import Layout from "@/components/Layout"; import Layout from "@/components/Layout";
import SEO from "@/components/SEO"; import SEO from "@/components/SEO";
import { Breadcrumbs } from "@/components/dev-platform/Breadcrumbs";
import { TemplateCard } from "@/components/dev-platform/TemplateCard"; import { TemplateCard } from "@/components/dev-platform/TemplateCard";
import { Input } from "@/components/ui/input"; import { Input } from "@/components/ui/input";
import { Button } from "@/components/ui/button"; import { Button } from "@/components/ui/button";