diff --git a/src/pages/grain.tsx b/src/pages/grain.tsx
deleted file mode 100644
index 72e612e..0000000
--- a/src/pages/grain.tsx
+++ /dev/null
@@ -1,102 +0,0 @@
-import type { NextPage } from "next";
-import Head from "next/head";
-import Image from "next/image";
-import { BsGithub } from "react-icons/bs";
-import { RxOpenInNewWindow } from "react-icons/rx";
-import Link from "next/link";
-import AppWrapper from "@/components/AppWrapper";
-import type { ReactNode } from "react";
-
-type Screenshot = [string, null | string | ReactNode];
-type ScreenshotWithQuality = [string, null | string | ReactNode, number];
-const images: (Screenshot | ScreenshotWithQuality)[] = [
- ["/grain/index.jpg", null, 100],
- ["/grain/hidden.jpg", null, 100],
-];
-
-const GrainPage: NextPage = () => {
- return (
- <>
-
- Grain | Xevion.dev
-
-
-
-
-
-
Grain
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- After seeing an online post with beautiful noise patterns &
- gradients, I decided to try and recreate it. The result was
- Grain, a simple web app that generates beautiful noise. Under
- the hood, this app uses multiple layers of SVGs that
- automatically rescale with the browsers viewport. That way, the
- noise is always crisp and clear, no matter the screen size.
-
-
- Performant - SVG generation and layering is optimized
- Small - Builds in less than 16 seconds
-
- Open Source - Want to use my gradients? Check it out on{" "}
-
- GitHub
-
- .
-
-
-
Screenshots
-
- {images.map(([src, description, quality]) => {
- return (
-
-
- {description != null ? (
-
- {description}
-
- ) : null}
-
- );
- })}
-
-
-
-
-
- >
- );
-};
-
-export default GrainPage;
diff --git a/src/pages/index.tsx b/src/pages/index.tsx
index c524079..cc89b6f 100644
--- a/src/pages/index.tsx
+++ b/src/pages/index.tsx
@@ -1,14 +1,13 @@
+import AppWrapper from "@/components/AppWrapper";
+import ItemCard from "@/components/ItemCard";
+import directus, { type Project } from "@/utils/directus";
+import { useBreakpointValue } from "@/utils/helpers";
import { readItems, readSingleton } from "@directus/sdk";
import { GetStaticPropsResult, type NextPage } from "next";
import Head from "next/head";
import Link from "next/link";
import { useEffect } from "react";
import Balancer from "react-wrap-balancer";
-import AppWrapper from "@/components/AppWrapper";
-import ItemCard from "@/components/ItemCard";
-import directus, { type Project } from "@/utils/directus";
-import { useBreakpointValue } from "@/utils/helpers";
-import dynamic from "next/dynamic";
type IndexProps = {
tagline: string;
@@ -16,11 +15,6 @@ type IndexProps = {
buttons: { text: string; href: string }[];
};
-const DotsDynamic = dynamic(
- () => import('@/components/Dots'),
- { ssr: false }
-)
-
export async function getStaticProps(): Promise<
GetStaticPropsResult
> {
@@ -68,7 +62,6 @@ const Home: NextPage = ({
-
diff --git a/src/pages/paths.tsx b/src/pages/paths.tsx
deleted file mode 100644
index 7399336..0000000
--- a/src/pages/paths.tsx
+++ /dev/null
@@ -1,13 +0,0 @@
-import { type NextPage } from "next";
-import AppWrapper from "@/components/AppWrapper";
-import WorkInProgress from "@/components/WorkInProgress";
-
-const PathsPage: NextPage = () => {
- return (
-
-
-
- );
-};
-
-export default PathsPage;
diff --git a/src/pages/phototag.tsx b/src/pages/phototag.tsx
deleted file mode 100644
index f3c7b99..0000000
--- a/src/pages/phototag.tsx
+++ /dev/null
@@ -1,65 +0,0 @@
-import { NextPage } from "next";
-import Head from "next/head";
-import Image from "next/image";
-import { BsGithub } from "react-icons/bs";
-import Link from "next/link";
-import AppWrapper from "@/components/AppWrapper";
-
-const PhototagPage: NextPage = () => {
- return (
- <>
-
- Phototag | Xevion.dev
-
-
-
-
-
-
-
-
-
-
- Phototag is a powerful tool that helps you quickly and easily
- add rich, descriptive tags to your photos. Using Google's
- Vision API, Phototag automatically generates tags based on the
- visual content of your photos, making it easier than ever to
- organize and find your photos.
-
-
- With support for IPTC metadata and Adobe XMP Sidecar files, you
- can easily integrate Phototag into your existing workflow on
- Windows. Whether you're a professional photographer or a
- casual snapshot taker, Phototag is the perfect tool for adding
- clarity and context to your photos.
-
-
- Simple, but configurable
- Fully automatic
- Leverages compression to reduce network load
- Supports JPEG, PNG, GIF etc.
- Supports IPTC metadata
- Supports Adobe XMP sidecar files
-
-
-
-
-
- >
- );
-};
-
-export default PhototagPage;
diff --git a/src/pages/portal.tsx b/src/pages/portal.tsx
deleted file mode 100644
index 90787c8..0000000
--- a/src/pages/portal.tsx
+++ /dev/null
@@ -1,114 +0,0 @@
-import type { NextPage } from "next";
-import Head from "next/head";
-import Image from "next/image";
-import { BsGithub } from "react-icons/bs";
-import Link from "next/link";
-import AppWrapper from "@/components/AppWrapper";
-import type { ReactNode } from "react";
-
-const images: [string, string | ReactNode][] = [
- ["/portal/home.jpeg", "The home page."],
- [
- "/portal/events.png",
- <>
- {" "}
- A page listing all current events. Initial data is cached for
- performance, but becomes dynamic when filtered.
- >,
- ],
- [
- "/portal/admin.png",
- "A secure admin panel for our officers to view, filter & edit members & events.",
- ],
- ["/portal/event.png", "The view of a specific event."],
- ["/portal/checkin.png", "The check-in view."],
- [
- "/portal/filters.png",
- "Organization filtering options. Dynamic semester filtering & event sorting is also available.",
- ],
- ["/portal/login.png", "The login. Fast form validation, seamless login."],
- [
- "/portal/profile.png",
- <>
- The member profile view; fully editable on both desktop & mobile. {" "}
- Seamless editing of profiles for users. Full validation available.
- >,
- ],
- [
- "/portal/status.png",
- "Members can check their progress towards becoming full members & view what events they attended.",
- ],
-];
-
-const PortalPage: NextPage = () => {
- return (
- <>
-
- Portal | Xevion.dev
-
-
-
-
-
-
-
-
-
-
-
-
- Created in service of our membership, Portal was designed as a
- approachable membership portal for our users so we could{" "}
- track membership , advertise events and replace our
- existing database solution .
-
-
- Fast - built to serve thousands
- Cheap - minimize costs
- Open Source - help us improve
- Cutting Edge - the latest technology
-
-
Screenshots
-
- {images.map(([src, description]) => {
- return (
-
-
-
- {description}
-
-
- );
- })}
-
-
-
-
-
- >
- );
-};
-
-export default PortalPage;