move components to root, remove analytics and speed insights, cleanup on manifesto, update music link text and tilde icon on header, minor home page improvements/tweaks

This commit is contained in:
Aidan 2025-02-01 21:44:25 -05:00
parent 1909a6d9fe
commit 1253a7e0a1
29 changed files with 65 additions and 59 deletions

View File

@ -1,6 +1,6 @@
import Header from '../components/Header' import Header from '@/components/Header'
import AboutPg from '../components/pages/About' import AboutPg from '@/components/pages/About'
import Footer from '../components/Footer' import Footer from '@/components/Footer'
export default function About() { export default function About() {
return ( return (

View File

@ -1,6 +1,6 @@
import Header from '../components/Header' import Header from '@/components/Header'
import ContactPg from '../components/pages/Contact' import ContactPg from '@/components/pages/Contact'
import Footer from '../components/Footer' import Footer from '@/components/Footer'
export default function Contact() { export default function Contact() {
return ( return (

View File

@ -1,6 +1,6 @@
import Header from '../components/Header' import Header from '@/components/Header'
import DomainsPg from '../components/pages/Domains' import DomainsPg from '@/components/pages/Domains'
import Footer from '../components/Footer' import Footer from '@/components/Footer'
export default function Domains() { export default function Domains() {
return ( return (

View File

@ -4,8 +4,6 @@ import React, { useEffect } from 'react';
import './globals.css' import './globals.css'
import '@fortawesome/fontawesome-svg-core/styles.css' import '@fortawesome/fontawesome-svg-core/styles.css'
import { config } from '@fortawesome/fontawesome-svg-core' import { config } from '@fortawesome/fontawesome-svg-core'
import { SpeedInsights } from "@vercel/speed-insights/next"
import { Analytics } from "@vercel/analytics/react"
import { GeistSans } from 'geist/font/sans'; import { GeistSans } from 'geist/font/sans';
config.autoAddCss = false config.autoAddCss = false
@ -68,8 +66,6 @@ export default function RootLayout({
</head> </head>
<body className={`${GeistSans.className} bg-gray-900 text-gray-100`}> <body className={`${GeistSans.className} bg-gray-900 text-gray-100`}>
{children} {children}
<Analytics />
<SpeedInsights />
</body> </body>
</html> </html>
); );

View File

@ -1,6 +1,6 @@
import Header from '../components/Header' import Header from '@/components/Header'
import ManifestoPg from '../components/pages/Manifesto' import ManifestoPg from '@/components/pages/Manifesto'
import Footer from '../components/Footer' import Footer from '@/components/Footer'
export default function Manifesto() { export default function Manifesto() {
return ( return (

View File

@ -1,7 +1,7 @@
import Header from '../components/Header' import Header from '@/components/Header'
import MusicWidget from '../components/widgets/Music' import MusicWidget from '@/components/widgets/Music'
import MusicInfo from '../components/objects/MusicInfo' import MusicInfo from '@/components/objects/MusicInfo'
import Footer from '../components/Footer' import Footer from '@/components/Footer'
export default function Music() { export default function Music() {
return ( return (

View File

@ -1,7 +1,6 @@
import Header from './components/Header'; import Header from '@/components/Header';
import HomePg from './components/pages/Home'; import HomePg from '@/components/pages/Home';
import Footer from './components/Footer'; import Footer from '@/components/Footer';
import LastPlayed from './components/widgets/LastPlayed';
export default function Home() { export default function Home() {
return ( return (
@ -9,7 +8,6 @@ export default function Home() {
<Header /> <Header />
<main className="flex-grow container mx-auto px-4 py-12"> <main className="flex-grow container mx-auto px-4 py-12">
<HomePg /> <HomePg />
<LastPlayed />
</main> </main>
<Footer /> <Footer />
</div> </div>

View File

@ -1,6 +1,6 @@
import Header from '../../components/Header' import Header from '@/components/Header'
import WhatWasGoingOn from '../../components/pages/time-periods/early-summer-2024/WhatWasGoingOn' import WhatWasGoingOn from '@/components/pages/time-periods/early-summer-2024/WhatWasGoingOn'
import Footer from '../../components/Footer' import Footer from '@/components/Footer'
export default function EarlySummer2024() { export default function EarlySummer2024() {
return ( return (

View File

@ -1,6 +1,6 @@
import Header from '../../../components/Header' import Header from '@/components/Header'
import WhatWasGoingOn from '../../../components/pages/time-periods/early-summer-2024/WhatWasGoingOn' import WhatWasGoingOn from '@/components/pages/time-periods/early-summer-2024/WhatWasGoingOn'
import Footer from '../../../components/Footer' import Footer from '@/components/Footer'
export default function Music() { export default function Music() {
return ( return (

View File

@ -1,6 +1,6 @@
import Header from '../../components/Header' import Header from '@/components/Header'
import WhatWasGoingOn from '../../components/pages/time-periods/late-summer-2024/WhatWasGoingOn' import WhatWasGoingOn from '@/components/pages/time-periods/late-summer-2024/WhatWasGoingOn'
import Footer from '../../components/Footer' import Footer from '@/components/Footer'
export default function LateSummer2024() { export default function LateSummer2024() {
return ( return (

View File

@ -1,6 +1,6 @@
import Header from '../../../components/Header' import Header from '@/components/Header'
import WhatWasGoingOn from '../../../components/pages/time-periods/late-summer-2024/WhatWasGoingOn' import WhatWasGoingOn from '@/components/pages/time-periods/late-summer-2024/WhatWasGoingOn'
import Footer from '../../../components/Footer' import Footer from '@/components/Footer'
export default function Music() { export default function Music() {
return ( return (

View File

@ -2,7 +2,7 @@
import React, { useState } from 'react'; import React, { useState } from 'react';
import Link from 'next/link'; import Link from 'next/link';
import { House, Link as LinkIcon, User, Phone, BookOpen, Music, SquareTerminal, X, Menu } from 'lucide-react'; import { House, Link as LinkIcon, User, Phone, BookOpen, Music, Users, X, Menu } from 'lucide-react';
interface NavItemProps { interface NavItemProps {
href: string; href: string;
@ -39,9 +39,9 @@ export default function Header() {
<NavItem href="/contact" icon={Phone}>Contact</NavItem> <NavItem href="/contact" icon={Phone}>Contact</NavItem>
<NavItem href="/domains" icon={LinkIcon}>Domains</NavItem> <NavItem href="/domains" icon={LinkIcon}>Domains</NavItem>
<NavItem href="/manifesto" icon={BookOpen}>Manifesto</NavItem> <NavItem href="/manifesto" icon={BookOpen}>Manifesto</NavItem>
<NavItem href="/music" icon={Music}>Music by Time</NavItem> <NavItem href="/music" icon={Music}>Music</NavItem>
<div className="flex items-center"> <div className="flex items-center">
<NavItem href="https://tilde.club/~lxu" icon={SquareTerminal}>Tilde</NavItem> <NavItem href="https://tilde.club/~lxu" icon={Users}>Tilde</NavItem>
<a href="https://tilde.wiki/Tildeverse" className="text-gray-300 hover:text-green-400 ml-1 text-sm" target="_blank" rel="noopener noreferrer"> <a href="https://tilde.wiki/Tildeverse" className="text-gray-300 hover:text-green-400 ml-1 text-sm" target="_blank" rel="noopener noreferrer">
<sup>what?</sup> <sup>what?</sup>
</a> </a>

View File

@ -1,5 +1,5 @@
import { Link } from 'lucide-react' import { Link } from 'lucide-react'
import domains from '../../../public/data/domains.json' import domains from '@/public/data/domains.json'
export default function About() { export default function About() {
return ( return (

View File

@ -1,5 +1,6 @@
import Image from 'next/image' import Image from 'next/image'
import Button from '../objects/Button' import Button from '../objects/Button'
import LastPlayed from '@/components/widgets/LastPlayed';
export default function Home() { export default function Home() {
return ( return (
@ -13,16 +14,18 @@ export default function Home() {
className="rounded-full mx-auto mb-6 border-4 border-gray-700" className="rounded-full mx-auto mb-6 border-4 border-gray-700"
/> />
<h1 className="text-4xl font-bold mb-2 text-gray-100 glow">Aidan</h1> <h1 className="text-4xl font-bold mb-2 text-gray-100 glow">Aidan</h1>
<p className="text-gray-400 text-xl">Web Developer & Student</p> <p className="text-gray-400 text-xl">SysAdmin, Developer, and Student</p>
</div> </div>
<LastPlayed />
<section id="about" className="mb-12"> <section id="about" className="mb-12">
<h2 className="text-2xl font-semibold mb-4 text-gray-200">Who I am</h2> <h2 className="text-2xl font-semibold mb-4 text-gray-200">Who I am</h2>
<p className="text-gray-300 leading-relaxed"> <p className="text-gray-300 leading-relaxed">
Hey there! I&apos;m Aidan, a web developer and student from the US. Hey there! I&apos;m Aidan, a systems administrator, web developer, and student from the United States. I primarily work with Node.js and Linux.
</p> </p>
<p className="text-gray-300 leading-relaxed mt-2"> <p className="text-gray-300 leading-relaxed mt-2">
I am most interested in backend development and have experience with Node.js, Express, and Tailwind CSS. I am most interested in backend development and have experience with Node.js, Express, and Tailwind CSS. Despite my best efforts, I am no designer
</p> </p>
<p className="text-gray-300 leading-relaxed mt-2"> <p className="text-gray-300 leading-relaxed mt-2">
When I&apos;m not programming, I can be found re-flashing my phone with a new custom ROM and telling everyone I use Arch. When I&apos;m not programming, I can be found re-flashing my phone with a new custom ROM and telling everyone I use Arch.
@ -32,7 +35,7 @@ export default function Home() {
<section id="about" className="mb-12"> <section id="about" className="mb-12">
<h2 className="text-2xl font-semibold mb-4 text-gray-200">What I do</h2> <h2 className="text-2xl font-semibold mb-4 text-gray-200">What I do</h2>
<p className="text-gray-300 leading-relaxed"> <p className="text-gray-300 leading-relaxed">
I am at my best when I am doing system administration, but I also enjoy working on web development projects. I am at my best when I am doing system administration, but I also enjoy working on web development projects. I enjoy contributing under open licenses more than anything. I have never felt much of a draw to profiting off my work.
</p> </p>
<p className="text-gray-300 leading-relaxed mt-2"> <p className="text-gray-300 leading-relaxed mt-2">
I host a few public services and websites on my VPS, most of which can be found on the &quot;Domains&quot; page with a short description. I host a few public services and websites on my VPS, most of which can be found on the &quot;Domains&quot; page with a short description.
@ -41,7 +44,17 @@ export default function Home() {
I&apos;m most proud of LibreCloud/p0ntus mail, which is a cloud services provider that I self-host and maintain, free of charge. I&apos;m most proud of LibreCloud/p0ntus mail, which is a cloud services provider that I self-host and maintain, free of charge.
</p> </p>
<p className="text-gray-300 leading-relaxed mt-2"> <p className="text-gray-300 leading-relaxed mt-2">
I frequently write and work on a website hosted on a public Linux server, called a &quot;tilde.&quot; You can check it out by clicking the link &quot;Tilde&quot; in the header, or &quot;what?&quot; if you are still confused! I frequently write and work on a website hosted on a public Linux server, known as a &quot;tilde.&quot; You can check it out by clicking the link &quot;Tilde&quot; in the header, or &quot;what?&quot; if you are still confused!
</p>
</section>
<section id="about" className="mb-12">
<h2 className="text-2xl font-semibold mb-4 text-gray-200">Where you are</h2>
<p className="text-gray-300 leading-relaxed">
My website is my home, not my business. I am not here to brag about my accomplishments or plug my cool SaaS product. That&apos;s why I&apos;ve made every effort to make this website as personal and fun as possible.
</p>
<p className="text-gray-300 leading-relaxed mt-2">
From a technical perspective, you&apos;re being served this website by Vercel.
</p> </p>
</section> </section>

View File

@ -47,8 +47,12 @@ export default function About() {
</p> </p>
<ul className="list-disc list-inside text-left text-gray-300 mt-8 mb-4"> <ul className="list-disc list-inside text-left text-gray-300 mt-8 mb-4">
<li>Respect user data as a fundamental human right</li> <li>Respect user data as a fundamental human right</li>
<li>Not implement tracking and/or monetization in my services</li> <li>Not implement tracking and/or monetization in my services
<li>Focus my services to focus on being free and open</li> <ul className="list-disc list-inside text-left text-gray-300 mt-2 mb-4">
<li>Ensure user data is never used for profit</li>
</ul>
</li>
<li>Focus my services on being free and open</li>
<li>Suggest/support technologies that help privacy</li> <li>Suggest/support technologies that help privacy</li>
</ul> </ul>
<h2 className="text-2xl font-semibold mb-4 mt-12 text-gray-200"> <h2 className="text-2xl font-semibold mb-4 mt-12 text-gray-200">

View File

@ -1,7 +1,7 @@
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import { faGitAlt, faGithub } from '@fortawesome/free-brands-svg-icons' import { faGitAlt, faGithub } from '@fortawesome/free-brands-svg-icons'
import { faStar, faCodeBranch } from '@fortawesome/free-solid-svg-icons' import { faStar, faCodeBranch } from '@fortawesome/free-solid-svg-icons'
import featuredProjects from '../../../public/data/featured.json' import featuredProjects from '@/public/data/featured.json'
import Link from 'next/link' import Link from 'next/link'
export default function GitHubFeatured() { export default function GitHubFeatured() {

View File

@ -28,8 +28,8 @@ const LastPlayed: React.FC = () => {
if (!track) { if (!track) {
return ( return (
<div className="max-w-2xl mx-auto mt-4"> <div className="max-w-2xl mx-auto mb-12">
<h2 className="text-2xl font-bold mb-4 pt-10 text-gray-200">Last Played Song</h2> <h2 className="text-2xl font-bold mb-4 text-gray-200">Last Played Song</h2>
<div className="flex justify-center items-center border border-gray-300 rounded-lg p-4 max-w-md mt-8"> <div className="flex justify-center items-center border border-gray-300 rounded-lg p-4 max-w-md mt-8">
<span className="spinner-border animate-spin inline-block w-8 h-8 border-4 rounded-full" role="status"></span> <span className="spinner-border animate-spin inline-block w-8 h-8 border-4 rounded-full" role="status"></span>
</div> </div>
@ -38,8 +38,8 @@ const LastPlayed: React.FC = () => {
} }
return ( return (
<div className="max-w-2xl mx-auto mt-4"> <div className="max-w-2xl mx-auto mb-12">
<h2 className="text-2xl font-bold mb-4 pt-10 text-gray-200">Last Played Song</h2> <h2 className="text-2xl font-bold mb-4 text-gray-200">Last Played Song</h2>
<div className="now-playing flex items-center border border-gray-300 rounded-lg p-4 max-w-md mt-8 bg-white bg-opacity-10 backdrop-filter backdrop-blur-lg"> <div className="now-playing flex items-center border border-gray-300 rounded-lg p-4 max-w-md mt-8 bg-white bg-opacity-10 backdrop-filter backdrop-blur-lg">
<Image <Image
src={track.image.find(img => img.size === 'large')?.['#text'] || '/placeholder.png'} src={track.image.find(img => img.size === 'large')?.['#text'] || '/placeholder.png'}

View File

@ -13,8 +13,6 @@
"@fortawesome/free-brands-svg-icons": "^6.7.2", "@fortawesome/free-brands-svg-icons": "^6.7.2",
"@fortawesome/free-solid-svg-icons": "^6.7.2", "@fortawesome/free-solid-svg-icons": "^6.7.2",
"@fortawesome/react-fontawesome": "^0.2.2", "@fortawesome/react-fontawesome": "^0.2.2",
"@vercel/analytics": "^1.4.1",
"@vercel/speed-insights": "^1.1.0",
"geist": "^1.3.1", "geist": "^1.3.1",
"lucide-react": "^0.469.0", "lucide-react": "^0.469.0",
"next": "15.1.3", "next": "15.1.3",
@ -31,8 +29,5 @@
"eslint": "^9.18.0", "eslint": "^9.18.0",
"eslint-config-next": "15.1.3", "eslint-config-next": "15.1.3",
"@eslint/eslintrc": "^3.2.0" "@eslint/eslintrc": "^3.2.0"
}, }
"trustedDependencies": [
"@vercel/speed-insights"
]
} }