From f3a5a61aafdb3e29c5ecd007661a158fbecd6e17 Mon Sep 17 00:00:00 2001 From: v0 Date: Tue, 2 Dec 2025 20:18:11 +0000 Subject: [PATCH] feat: color-code navigation buttons Assign red to Movies, blue to Shows, and green to Music. #VERCEL_SKIP Co-authored-by: Jeff Emmett <46964190+Jeff-Emmett@users.noreply.github.com> --- app/globals.css | 2 + app/layout.tsx | 9 +- app/page.tsx | 163 ++++++++++++++++++++++-------------- components/jefflix-logo.tsx | 30 ++++--- 4 files changed, 125 insertions(+), 79 deletions(-) diff --git a/app/globals.css b/app/globals.css index 4e6478a..4a02913 100644 --- a/app/globals.css +++ b/app/globals.css @@ -79,6 +79,8 @@ --font-mono: "Geist Mono", "Geist Mono Fallback"; /* Added Fredoka bubble font for logo */ --font-fredoka: var(--font-fredoka); + /* Added Permanent Marker for street art headlines */ + --font-marker: var(--font-marker); --color-background: var(--background); --color-foreground: var(--foreground); --color-card: var(--card); diff --git a/app/layout.tsx b/app/layout.tsx index 2f4e330..87858bd 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,6 +1,6 @@ import type React from "react" import type { Metadata } from "next" -import { Geist, Geist_Mono, Fredoka } from "next/font/google" +import { Geist, Geist_Mono, Fredoka, Permanent_Marker } from "next/font/google" import { Analytics } from "@vercel/analytics/next" import "./globals.css" @@ -11,6 +11,11 @@ const _fredoka = Fredoka({ weight: ["400", "700"], variable: "--font-fredoka", }) +const _permanentMarker = Permanent_Marker({ + subsets: ["latin"], + weight: ["400"], + variable: "--font-marker", +}) export const metadata: Metadata = { title: "Jefflix - Seize the Streams of Production", @@ -41,7 +46,7 @@ export default function RootLayout({ children: React.ReactNode }>) { return ( - + {children} diff --git a/app/page.tsx b/app/page.tsx index 6a2572f..7e69a57 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,6 +1,6 @@ import { Button } from "@/components/ui/button" import { Badge } from "@/components/ui/badge" -import { Film, Music, Server, Users, Heart, Rocket } from "lucide-react" +import { Film, Music, Server, Users, Heart, Rocket, Tv } from "lucide-react" import Image from "next/image" import { JefflixLogo } from "@/components/jefflix-logo" @@ -9,7 +9,16 @@ export default function JefflixPage() {
{/* Hero Section */}
-
+
+ Building communities in nature +
+
- - An Experiment in Digital Solidarity -

- {/* Comic Panel Grid with Photos */} -
- {/* Panel 1 */} -
-
- Having tea with nature -
-
-

Build communities, not customer bases

-
-
- - {/* Panel 2 */} -
-
- Seeing through the matrix -
-
-

See through artificial scarcity

-
-
- - {/* Panel 3 */} -
-
- Building bridges -
-
-

Infrastructure scales with solidarity

-
-
-
- {/* Action Buttons */}
-

- Need a place to start? Try these servers (or build your own): -

+

Try it out on Jefflix (or build your own!)

@@ -112,7 +99,7 @@ export default function JefflixPage() {
-

Why Self-Host?

+

Why Self-Host?

Technology promised abundance, but corporations chose artificial scarcity. Let's build the alternative.

@@ -155,6 +142,12 @@ export default function JefflixPage() {
+ +
+ + An Experiment in Digital Solidarity + +
@@ -164,10 +157,7 @@ export default function JefflixPage() {
-

Beyond Digital Feudalism

-
- -
+

Beyond Digital Feudalism

Streaming platforms aren't just bad business—they're architecture for extraction.

@@ -175,7 +165,7 @@ export default function JefflixPage() {
-

They Don't Own What They Sell

+

They Don't Own What They Sell

Content rotates based on licensing deals, not user needs. You're not buying access—you're renting temporary gates to shifting catalogs. @@ -183,7 +173,7 @@ export default function JefflixPage() {

-

Subscription Fatigue is Designed

+

Subscription Fatigue is Designed

The "streaming wars" recreated cable monopolies with extra steps. Fragmentation isn't a bug—it's the business model. @@ -191,13 +181,30 @@ export default function JefflixPage() {

-

Technology Enables Abundance

+

Technology Enables Abundance

Digital goods cost nothing to copy, but everything to gate. Self-hosting is how we build infrastructure for sharing, starting with media.

+ +
+
+ Seeing through the matrix of artificial scarcity +
+
+

+ See through artificial scarcity +

+
+
+
@@ -210,29 +217,55 @@ export default function JefflixPage() {
-

Start Your Own Server

+

Start Your Own Server

Tools like Jellyfin make self-hosting accessible. Start with your own library, share with friends, scale to your community. Or use mine while you figure it out—that's the point.

- - +

Or learn how to set up your own Jellyfin server and join the movement

+ +
+
+ Making connections +
+
+

+ If this ass can figure it out, you can too! XD +

+
+
+
@@ -241,7 +274,7 @@ export default function JefflixPage() {