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-10-10 17:54:34 -05:00
import InteractivePromotionalCarousel from '@/components/content/carousels/InteractivePromotionalCarousel' ;
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
2024-10-10 17:54:34 -05:00
const isTabView = windowWidth <= 1360 ;
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-10-10 17:54:34 -05:00
< div className = { ` ${ isTabView ? 'w-full' : 'w-[83vw]' } p-4 mx-auto ` } >
< InteractivePromotionalCarousel / >
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" >
2024-10-10 18:32:21 -05:00
< div className = 'flex items-start' >
2024-09-27 16:30:04 -05:00
< i className = "pi pi-cloud text-2xl text-primary mr-2 text-blue-400" > < / i >
2024-10-10 18:32:21 -05:00
< div >
< h3 className = 'text-lg font-semibold' > Content Distribution : < / h 3 >
< 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 >
< 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 > A l l c o n t e n t i s p u b l i s h e d t o N o s t r a n d a c t i v e l y p u l l e d f r o m N o s t r r e l a y s , e n s u r i n g d i s t r i b u t e d a n d u p - t o - d a t e i n f o r m a t i o n . < / l i >
< li > < span className = "text-lg font-semibold" > Zaps : < /span> Zaps are currently initated through Zapper - <a href="https:/ / zapper . nostrapps . org " target=" _blank " rel=" noopener noreferrer " className=" text - blue - 400 ">https://zapper.nostrapps.org</a> <br /> <span className=" pl - 4 " > * Zaps are pulled from Nostr using our own NDK integration . < / s p a n > < / l i >
< li > < span className = "text-lg font-semibold" > Comments : < /span> For comments we are leveraging ZapThreads - <a href="https:/ / zapthreads . dev / " target=" _blank " rel=" noopener noreferrer " className=" text - blue - 400 ">https://zapthreads.com</a> <br /> <span className=" pl - 4 " > * Comments are enabled on all content but for Community they are only enabled on the nostr feed . < / s p a n > < / l i >
< / u l >
< / d i v >
2024-09-27 16:30:04 -05:00
< / d i v >
< / 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 >
2024-10-10 18:32:21 -05:00
< div className = "flex items-start" >
< i className = "pi pi-bolt text-2xl text-primary mr-2 mt-1 text-yellow-400" > < / i >
< div >
< h3 className = "text-lg font-semibold" > Content Monetization : < / h 3 >
2024-10-10 18:36:56 -05:00
< p className = 'text-lg' > All content is zappable and some content is PAID requiring a Lightning purchase or Subscription through the platform for permanent access . < / p >
2024-10-10 18:32:21 -05:00
< ul className = "list-disc list-inside ml-2 mt-2 space-y-2" >
< li > < span className = "text-lg font-semibold" > Free : < /span> Free content is available to all users. <br / > < span className = "pl-4" > * can be viewed on PlebDevs or any nostr client that supports NIP - 23 and NIP - 51. < / s p a n > < / l i >
< li > < span className = "text-lg font-semibold" > Paid : < /span> Paid content is available for purchase with Lightning. <br / > < span className = "pl-4" > * published to nostr but encrypted with plebdevs private key , currently only viewable on PlebDevs platform . < / s p a n > < / l i >
< / u l >
< / d i v >
< / d i v >
< div className = 'flex items-start' >
< i className = "pi pi-star text-2xl text-primary mr-2 text-orange-400 mt-1" > < / i >
< div >
< h3 className = "text-lg font-semibold" > Subscriptions : < / h 3 >
< p className = 'text-lg' > The PlebDevs subscription unlocks all paid content , gives access to our 1 : 1 calendar for tutoring / help , and grants you a plebdevs . com Lightning Address and Nostr NIP - 05 identity . < / p >
< ul className = "list-disc list-inside ml-2 mt-2 space-y-2" >
< li > < span className = "text-lg font-semibold" > Pay - as - you - go : < /span> 21,000 sats - A one-time payment that gives you access to all of the premium features for one month <br / > < span className = "pl-4" > * you will need to manually renew your subscription every month . < / s p a n > < / l i >
< li > < span className = "text-lg font-semibold" > Recurring : < /span> 21,000 sats - A subscription option allows you to submit a Nostr Wallet Connect URI that will be used to automatically send the subscription fee every month <br / > < span className = "pl-4" > * you can cancel at any time . < / s p a n > < / l i >
< / u l >
< / d i v >
< / d i v >
2024-09-27 16:30:04 -05:00
< 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" >
2024-10-10 18:32:21 -05:00
< li > < span className = "text-lg font-semibold" > Nostr : < /span> Public plebdevs nostr chat (Read / Write ) < br / > < span className = "pl-4" > * this is the only feed that you can write to from the plebdevs platform currently . < / s p a n > < / l i >
< li > < span className = "text-lg font-semibold" > Discord : < /span> PlebDevs Discord server (Read Only) <br / > < span className = "pl-4" > * discord was the original home of the PlebDevs community , look at us now ! < / s p a n > < / l i >
< li > < span className = "text-lg font-semibold" > StackerNews : < /span> StackerNews ~devs territory (Read Only) <br / > < span className = "pl-4" > * a territory is like a & apos ; subreddit & apos ; on stackernews , plebdevs owns the ~ devs territory . < / s p a n > < / l i >
2024-09-27 16:30:04 -05:00
< / 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"
2024-09-30 12:59:19 -05:00
tooltip = "Github"
className = "text-gray-300"
2024-09-27 16:30:04 -05:00
onClick = { ( ) => window . open ( 'https://github.com/pleb-devs' , '_blank' ) }
/ >
< GenericButton
severity = "info"
outlined
icon = "pi pi-twitter"
2024-09-30 12:59:19 -05:00
tooltip = "X"
2024-09-27 16:30:04 -05:00
onClick = { ( ) => window . open ( 'https://x.com/pleb_devs' , '_blank' ) }
/ >
< GenericButton
severity = "help"
outlined
2024-09-30 12:59:19 -05:00
icon = { < Image src = { NostrIcon } alt = "Nostr" width = { 20 } height = { 20 } className = "mr-0" / > }
tooltip = "Nostr"
2024-09-27 16:30:04 -05:00
onClick = { ( ) => window . open ( 'https://nostr.com/plebdevs@plebdevs.com' , '_blank' ) }
/ >
2024-10-07 16:26:54 -05:00
< GenericButton
severity = "danger"
outlined
icon = "pi pi-youtube"
tooltip = "Youtube"
onClick = { ( ) => window . open ( 'https://www.youtube.com/@plebdevs' , '_blank' ) }
/ >
2024-09-27 16:30:04 -05:00
< GenericButton
severity = "warning"
2024-09-30 12:59:19 -05:00
className = "text-yellow-400"
2024-09-27 16:30:04 -05:00
outlined
icon = "pi pi-bolt"
2024-09-30 12:59:19 -05:00
tooltip = "Donate"
2024-09-27 16:30:04 -05:00
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 ;