2024-09-27 16:30:04 -05:00
import React from 'react' ;
2024-09-13 16:17:19 -05:00
import Image from 'next/image' ;
import NostrIcon from '../../public/images/nostr.png' ;
2024-09-27 16:30:04 -05:00
import { Card } from 'primereact/card' ;
import { Message } from 'primereact/message' ;
import { useToast } from "@/hooks/useToast" ;
2024-09-15 15:53:27 -05:00
import useWindowWidth from "@/hooks/useWindowWidth" ;
2024-09-27 16:30:04 -05:00
import GenericButton from '@/components/buttons/GenericButton' ;
2024-09-13 11:39:44 -05:00
const AboutPage = ( ) => {
2024-09-27 16:30:04 -05:00
const { showToast } = useToast ( ) ;
2024-09-15 15:53:27 -05:00
const windowWidth = useWindowWidth ( ) ;
2024-09-13 16:17:19 -05:00
const copyToClipboard = async ( text ) => {
try {
2024-09-27 16:30:04 -05:00
await navigator . clipboard . writeText ( text ) ;
showToast ( "success" , "Copied" , "Copied Lightning Address to clipboard" ) ;
if ( window && window ? . webln && window ? . webln ? . lnurl ) {
await window . webln . enable ( ) ;
const result = await window . webln . lnurl ( "austin@bitcoinpleb.dev" ) ;
if ( result && result ? . preimage ) {
showToast ( "success" , "Payment Sent" , "Thank you for your donation!" ) ;
}
2024-09-13 16:17:19 -05:00
}
} catch ( err ) {
2024-09-27 16:30:04 -05:00
console . error ( 'Failed to copy:' , err ) ;
2024-09-13 16:17:19 -05:00
}
2024-09-27 16:30:04 -05:00
} ;
2024-09-13 16:17:19 -05:00
2024-09-13 11:39:44 -05:00
return (
2024-09-27 16:30:04 -05:00
< div className = "p-4 max-w-4xl mx-auto" >
{ windowWidth < 768 && (
< h1 className = "text-3xl font-bold mb-6" > About PlebDevs < / h 1 >
) }
2024-09-13 11:39:44 -05:00
2024-09-28 19:06:17 -05:00
< Card title = "About PlebDevs" className = "mb-4" >
2024-09-27 17:00:20 -05:00
< div className = 'flex flex-row gap-4 max-mob:flex-col max-tab:flex-col' >
2024-09-27 16:30:04 -05:00
< Message pt = { {
icon : {
className : 'hidden'
}
} } severity = "info" text = "PlebDevs is a fully Lightning and Nostr integrated education, content, and community platform designed to help new and aspiring developers, with a focus on Bitcoin / Lightning / Nostr technologies." / >
< Message pt = { {
icon : {
className : 'hidden'
}
} } severity = "success" text = "PlebDevs offers a personal yet distributed learning experience, combining videos, courses, documents, and community channels through Nostr, monetizing with Lightning, and integrating them into a single platform" / >
< / d i v >
< div className = "mt-4" >
< h3 className = 'font-bold mb-2' > The pitch is simple : < / h 3 >
< ul className = 'list-disc list-inside ml-6 space-y-2' >
< li className = 'text-lg' > Learn how to code 💻 < / l i >
< li className = 'text-lg' > Build Bitcoin / Lightning / Nostr apps ⚡ < / l i >
< li className = 'text-lg' > Become a developer 🚀 < / l i >
< / u l >
< / d i v >
< / C a r d >
2024-09-13 11:39:44 -05:00
2024-09-27 16:30:04 -05:00
< Card title = "Key Features" className = "mb-4" >
< div className = "flex flex-col gap-4" >
< div className = "flex flex-col items-start justify-center" >
< div className = 'flex flex-row items-start justify-center' >
< i className = "pi pi-cloud text-2xl text-primary mr-2 text-blue-400" > < / i >
< h3 className = 'text-lg font-semibold' > Content Distribution : < / h 3 >
< / d i v >
< p className = 'text-lg' > All educational content is published to Nostr and actively pulled from Nostr relays , ensuring distributed and up - to - date information . < / p >
< / d i v >
< div className = "flex items-start" >
< i className = "pi pi-file-edit text-2xl text-primary mr-2 text-green-400 mt-1" > < / i >
< div >
< h3 className = "text-lg font-semibold" > Content Types : < / h 3 >
< p className = 'text-lg' > high signal , Bitcoin , Lightning , Nostr educational content . < / p >
< ul className = "list-disc list-inside ml-2 mt-2 space-y-2" >
< li > < span className = "text-lg font-semibold" > Documents : < / s p a n > M a r k d o w n d o c u m e n t s p o s t e d a s N I P - 2 3 l o n g - f o r m e v e n t s o n N o s t r . < / l i >
< li > < span className = "text-lg font-semibold" > Videos : < / s p a n > E n h a n c e d m a r k d o w n f i l e s w i t h r i c h m e d i a s u p p o r t , i n c l u d i n g e m b e d d e d v i d e o s , a l s o s a v e d a s N I P - 2 3 e v e n t s . < / l i >
2024-09-27 17:00:20 -05:00
< li > < span className = "text-lg font-semibold" > Courses : < / s p a n > N o s t r l i s t s ( N I P - 5 1 ) t h a t c o m b i n e s m u l t i p l e d o c u m e n t s a n d v i d e o s i n t o a s t r u c t u r e d l e a r n i n g p a t h . < / l i >
2024-09-27 16:30:04 -05:00
< / u l >
< / d i v >
< / d i v >
< div className = "flex items-start" >
< i className = "pi pi-users text-2xl text-primary mr-2 text-purple-400 mt-1" > < / i >
< div >
< h3 className = "text-lg font-semibold" > Community : < / h 3 >
< p className = 'text-lg' > All of the current PlebDevs Community channels . < / p >
< ul className = "list-disc list-inside ml-2 mt-2 space-y-2" >
< li > < span className = "text-lg font-semibold" > Nostr : < / s p a n > P u b l i c p l e b d e v s n o s t r c h a t < / l i >
< li > < span className = "text-lg font-semibold" > Discord : < / s p a n > P l e b D e v s D i s c o r d s e r v e r < / l i >
< li > < span className = "text-lg font-semibold" > StackerNews : < / s p a n > S t a c k e r N e w s ~ d e v s t e r r i t o r y < / l i >
< / u l >
< / d i v >
< / d i v >
< / d i v >
< / C a r d >
2024-09-13 16:17:19 -05:00
2024-09-27 16:30:04 -05:00
< Card title = "Connect with Us" className = "mb-4" >
< div className = "flex flex-wrap gap-4 justify-center" >
< GenericButton
severity = "secondary"
outlined
icon = "pi pi-github"
label = "GitHub"
onClick = { ( ) => window . open ( 'https://github.com/pleb-devs' , '_blank' ) }
/ >
< GenericButton
severity = "info"
outlined
icon = "pi pi-twitter"
label = "X.com"
onClick = { ( ) => window . open ( 'https://x.com/pleb_devs' , '_blank' ) }
/ >
< GenericButton
severity = "help"
outlined
icon = { < Image src = { NostrIcon } alt = "Nostr" width = { 20 } height = { 20 } className = "mr-2" / > }
label = "Nostr"
onClick = { ( ) => window . open ( 'https://nostr.com/plebdevs@plebdevs.com' , '_blank' ) }
/ >
< GenericButton
severity = "warning"
outlined
icon = "pi pi-bolt"
label = "Donate"
onClick = { ( ) => copyToClipboard ( "austin@bitcoinpleb.dev" ) }
/ >
2024-09-13 16:17:19 -05:00
< / d i v >
2024-09-27 16:30:04 -05:00
< / C a r d >
2024-09-13 11:39:44 -05:00
< / d i v >
) ;
} ;
export default AboutPage ;