kopia lustrzana https://github.com/transitive-bullshit/chatgpt-api
feat(web): improve footer, dots, and contact page
rodzic
fa987bac7d
commit
4b83bdc1d9
Plik binarny nie jest wyświetlany.
Po Szerokość: | Wysokość: | Rozmiar: 25 KiB |
Plik binarny nie jest wyświetlany.
Po Szerokość: | Wysokość: | Rozmiar: 40 KiB |
|
@ -0,0 +1,58 @@
|
||||||
|
import Link from 'next/link'
|
||||||
|
|
||||||
|
import { DotsSection } from '@/components/dots-section'
|
||||||
|
import { HeroButton } from '@/components/hero-button'
|
||||||
|
import { PageContainer } from '@/components/page-container'
|
||||||
|
import { Button } from '@/components/ui/button'
|
||||||
|
import { calendarBookingUrl, emailUrl, twitterUrl } from '@/lib/config'
|
||||||
|
|
||||||
|
export default function AboutPage() {
|
||||||
|
return (
|
||||||
|
<PageContainer className='gap-8'>
|
||||||
|
<h1 className='text-center text-balance leading-snug md:leading-none text-4xl font-semibold'>
|
||||||
|
Contact
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<section className='flex flex-col gap-4 max-w-2xl text-center'>
|
||||||
|
<p>
|
||||||
|
Agentic is currently a solo effort by{' '}
|
||||||
|
<Link
|
||||||
|
href={twitterUrl}
|
||||||
|
className='link'
|
||||||
|
target='_blank'
|
||||||
|
rel='noopener'
|
||||||
|
>
|
||||||
|
Travis Fischer
|
||||||
|
</Link>
|
||||||
|
. 👋
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
As with MCP itself, Agentic is an active work in progress, so please
|
||||||
|
reach out if you have any questions, feedback, or feature requests.
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
{/* CTA section */}
|
||||||
|
<DotsSection className='max-w-2xl'>
|
||||||
|
<div className='flex flex-row gap-8 relative p-8 z-10'>
|
||||||
|
<HeroButton asChild heroVariant='orange' className=''>
|
||||||
|
<Link href={twitterUrl} target='_blank' rel='noopener'>
|
||||||
|
DM me on Twitter / X
|
||||||
|
</Link>
|
||||||
|
</HeroButton>
|
||||||
|
|
||||||
|
<Button asChild variant='outline' className='h-full py-[9px]'>
|
||||||
|
<Link href={emailUrl}>Send me an email</Link>
|
||||||
|
</Button>
|
||||||
|
|
||||||
|
<Button asChild variant='outline' className='h-full py-[9px]'>
|
||||||
|
<Link href={calendarBookingUrl} target='_blank' rel='noopener'>
|
||||||
|
Book a call with me
|
||||||
|
</Link>
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
</DotsSection>
|
||||||
|
</PageContainer>
|
||||||
|
)
|
||||||
|
}
|
|
@ -139,7 +139,6 @@ body {
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
color: inherit;
|
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -125,7 +125,7 @@ export default function PublishingMCPsPage() {
|
||||||
|
|
||||||
{/* CTA section */}
|
{/* CTA section */}
|
||||||
<DotsSection className='mb-16'>
|
<DotsSection className='mb-16'>
|
||||||
<div className='flex flex-col gap-12 z-10'>
|
<div className='flex flex-col gap-12 relative z-10'>
|
||||||
<h2 className='text-center text-balance leading-snug md:leading-none text-3xl font-heading'>
|
<h2 className='text-center text-balance leading-snug md:leading-none text-3xl font-heading'>
|
||||||
Deploy Your MCP Today
|
Deploy Your MCP Today
|
||||||
</h2>
|
</h2>
|
||||||
|
|
|
@ -9,9 +9,7 @@ export function DotsSection({
|
||||||
}) {
|
}) {
|
||||||
return (
|
return (
|
||||||
<section className={cn('relative', className)}>
|
<section className={cn('relative', className)}>
|
||||||
<div className='absolute top-[-25%] bottom-[-25%] left-[-25%] right-[-25%] bg-[url(/dots.svg)] bg-repeat bg-center bg-size-[32px_auto] opacity-30 dark:opacity-100' />
|
<div className='absolute pointer-events-none top-[-50%] bottom-[-50%] left-[-50%] right-[-50%] bg-[url(/dots-light.png)] dark:bg-[url(/dots-dark.png)] bg-size-[1024px,256px] bg-no-repeat bg-center' />
|
||||||
|
|
||||||
<div className='absolute top-[-25%] bottom-[-25%] left-[-25%] right-[-25%] bg-radial from-[rgba(255,255,255,.3)] to-[rgb(255,255,255)] dark:from-[rgba(10,10,10,0)] dark:to-[rgb(10,10,10)]' />
|
|
||||||
|
|
||||||
{children}
|
{children}
|
||||||
</section>
|
</section>
|
||||||
|
|
|
@ -10,9 +10,9 @@ import { DynamicFooter } from './dynamic'
|
||||||
export function Footer() {
|
export function Footer() {
|
||||||
return (
|
return (
|
||||||
<footer className='w-full pt-12 pb-4 border-t flex flex-col items-center'>
|
<footer className='w-full pt-12 pb-4 border-t flex flex-col items-center'>
|
||||||
<div className='container px-4 md:px-6 max-w-1200px'>
|
<div className='container px-4 sm:px-6 max-w-1200px'>
|
||||||
<div className='flex flex-col md:grid md:grid-cols-4 gap-8'>
|
<div className='flex flex-col sm:grid sm:grid-cols-2 md:grid-cols-4 gap-8'>
|
||||||
<div className='flex flex-col md:items-center'>
|
<div className='flex flex-col sm:items-center'>
|
||||||
<div className='space-y-4'>
|
<div className='space-y-4'>
|
||||||
<h3 className='text-lg font-semibold'>Platform</h3>
|
<h3 className='text-lg font-semibold'>Platform</h3>
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ export function Footer() {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className='flex flex-col md:items-center'>
|
<div className='flex flex-col sm:items-center'>
|
||||||
<div className='space-y-4'>
|
<div className='space-y-4'>
|
||||||
<h3 className='text-lg font-semibold'>Resources</h3>
|
<h3 className='text-lg font-semibold'>Resources</h3>
|
||||||
|
|
||||||
|
@ -54,9 +54,9 @@ export function Footer() {
|
||||||
<div>
|
<div>
|
||||||
<Link
|
<Link
|
||||||
href='https://docs.agentic.so/publishing'
|
href='https://docs.agentic.so/publishing'
|
||||||
className='link inline-block'
|
className='link'
|
||||||
>
|
>
|
||||||
Publish your own MCP
|
Publishing Docs
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -69,6 +69,15 @@ export function Footer() {
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<Link
|
||||||
|
href='https://docs.agentic.so/publishing'
|
||||||
|
className='link'
|
||||||
|
>
|
||||||
|
Agentic MCP Gateway
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<Link
|
<Link
|
||||||
href='https://docs.agentic.so/marketplace/ts-sdks/openai-chat'
|
href='https://docs.agentic.so/marketplace/ts-sdks/openai-chat'
|
||||||
|
@ -126,7 +135,7 @@ export function Footer() {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className='flex flex-col md:items-center'>
|
<div className='flex flex-col sm:items-center'>
|
||||||
<div className='space-y-4'>
|
<div className='space-y-4'>
|
||||||
<h3 className='text-lg font-semibold'>Company</h3>
|
<h3 className='text-lg font-semibold'>Company</h3>
|
||||||
|
|
||||||
|
@ -158,7 +167,7 @@ export function Footer() {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className='flex flex-col md:items-center gap-4'>
|
<div className='flex flex-col sm:items-center gap-4'>
|
||||||
<div className='space-y-4'>
|
<div className='space-y-4'>
|
||||||
<h3 className='text-lg font-semibold'>Social</h3>
|
<h3 className='text-lg font-semibold'>Social</h3>
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,8 @@
|
||||||
|
|
||||||
.heroButtonBg {
|
.heroButtonBg {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
background-image: linear-gradient(
|
background-image: linear-gradient(
|
||||||
|
|
|
@ -14,7 +14,7 @@ const buttonVariants = cva(
|
||||||
destructive:
|
destructive:
|
||||||
'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',
|
'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',
|
||||||
outline:
|
outline:
|
||||||
'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',
|
'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-background dark:border-input dark:hover:bg-accent',
|
||||||
secondary:
|
secondary:
|
||||||
'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80',
|
'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80',
|
||||||
ghost:
|
ghost:
|
||||||
|
|
|
@ -19,6 +19,7 @@ export const githubUrl = 'https://github.com/transitive-bullshit/agentic'
|
||||||
// TODO: make an agentic-specific calendar for this
|
// TODO: make an agentic-specific calendar for this
|
||||||
export const calendarBookingUrl = 'https://cal.com/travis-fischer/15min'
|
export const calendarBookingUrl = 'https://cal.com/travis-fischer/15min'
|
||||||
export const discordUrl = 'https://discord.agentic.so'
|
export const discordUrl = 'https://discord.agentic.so'
|
||||||
|
export const emailUrl = 'mailto:travis@agentic.so'
|
||||||
|
|
||||||
export const keywords = [
|
export const keywords = [
|
||||||
'agentic',
|
'agentic',
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
title: Contact
|
title: Contact
|
||||||
---
|
---
|
||||||
|
|
||||||
Agentic's currently a solo effort by [Travis Fischer](https://x.com/transitive_bs). 👋
|
Agentic is currently a solo effort by [Travis Fischer](https://x.com/transitive_bs). 👋
|
||||||
|
|
||||||
As with MCP itself, Agentic is an active work in progress, so please reach out if you have any questions, feedback, or feature requests.
|
As with MCP itself, Agentic is an active work in progress, so please reach out if you have any questions, feedback, or feature requests.
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"label": "Contact",
|
"label": "Contact",
|
||||||
"href": "https://docs.agentic.so/contact",
|
"href": "https://agentic.so/contact",
|
||||||
"icon": "envelope"
|
"icon": "envelope"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
@ -116,7 +116,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"anchor": "Contact",
|
"anchor": "Contact",
|
||||||
"href": "https://docs.agentic.so/contact",
|
"href": "https://agentic.so/contact",
|
||||||
"icon": "envelope"
|
"icon": "envelope"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,14 +5,13 @@ const isSafari =
|
||||||
if (!isServer) {
|
if (!isServer) {
|
||||||
// Workaround for nav links not being able to point to relative paths
|
// Workaround for nav links not being able to point to relative paths
|
||||||
for (const a of document.querySelectorAll(
|
for (const a of document.querySelectorAll(
|
||||||
'a[href="https://docs.agentic.so/contact"]'
|
'a[href="https://agentic.so/contact"]'
|
||||||
)) {
|
)) {
|
||||||
a.removeAttribute('target')
|
a.removeAttribute('target')
|
||||||
a.setAttribute('href', '/contact')
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// document
|
// document
|
||||||
// .getElementById('https://docs.agentic.so/contact')
|
// .getElementById('https://agentic.so/contact')
|
||||||
// .querySelector('.lucide-arrow-up-right')
|
// .querySelector('.lucide-arrow-up-right')
|
||||||
// .classList.add('hidden')
|
// .classList.add('hidden')
|
||||||
}
|
}
|
||||||
|
|
|
@ -100,7 +100,7 @@ catalogs:
|
||||||
specifier: ^2.1.7
|
specifier: ^2.1.7
|
||||||
version: 2.1.7
|
version: 2.1.7
|
||||||
'@radix-ui/react-slot':
|
'@radix-ui/react-slot':
|
||||||
specifier: ^1.2.3
|
specifier: 1.2.3
|
||||||
version: 1.2.3
|
version: 1.2.3
|
||||||
'@radix-ui/react-tabs':
|
'@radix-ui/react-tabs':
|
||||||
specifier: ^1.1.12
|
specifier: ^1.1.12
|
||||||
|
|
|
@ -42,7 +42,7 @@ catalog:
|
||||||
'@pmndrs/assets': ^1.7.0
|
'@pmndrs/assets': ^1.7.0
|
||||||
'@radix-ui/react-dropdown-menu': ^2.1.15
|
'@radix-ui/react-dropdown-menu': ^2.1.15
|
||||||
'@radix-ui/react-label': ^2.1.7
|
'@radix-ui/react-label': ^2.1.7
|
||||||
'@radix-ui/react-slot': ^1.2.3
|
'@radix-ui/react-slot': 1.2.3
|
||||||
'@radix-ui/react-tabs': ^1.1.12
|
'@radix-ui/react-tabs': ^1.1.12
|
||||||
'@radix-ui/react-tooltip': ^1.2.7
|
'@radix-ui/react-tooltip': ^1.2.7
|
||||||
'@react-email/components': ^0.1.1
|
'@react-email/components': ^0.1.1
|
||||||
|
|
2
todo.md
2
todo.md
|
@ -36,6 +36,8 @@
|
||||||
- add ts sdk examples to e2e tests
|
- add ts sdk examples to e2e tests
|
||||||
- consider allowing deployments to specify their proxy secret instead of a single, per-project proxy secret
|
- consider allowing deployments to specify their proxy secret instead of a single, per-project proxy secret
|
||||||
- fix weird git state and github actions marked as failing
|
- fix weird git state and github actions marked as failing
|
||||||
|
- fix marketing dark background
|
||||||
|
- 404 page
|
||||||
|
|
||||||
## TODO: Post-MVP
|
## TODO: Post-MVP
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue