Skip to content

Commit 5f38c39

Browse files
committed
Merge rebrand/landing-page into main - resolved conflicts
2 parents 207a6ab + 6a7548b commit 5f38c39

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+2601
-5021
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ yarn-error.log*
3232

3333
# env files (can opt-in for committing if needed)
3434
.env*
35+
.env.local
36+
newsletter-table.sql
3537

3638
# vercel
3739
.vercel

README.md

Lines changed: 99 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,117 @@
1+
# HyperKit Landing Page
2+
3+
A modern, responsive landing page built with Next.js 15, React 19, and TypeScript. Features include interactive components, WebGL animations, and Supabase integration for newsletter subscriptions.
4+
15
## Getting Started
26

3-
First, run the development server:
7+
### Prerequisites
8+
9+
Before you begin, ensure you have the following installed:
10+
11+
- **Node.js** 18.0 or higher ([Download](https://nodejs.org/))
12+
- **npm** 9.0+ or **pnpm** 8.0+ (comes with Node.js, or [install pnpm](https://pnpm.io/installation))
13+
- **Git** for version control
14+
- **Supabase account** (optional, for newsletter functionality) - [Sign up](https://supabase.com)
15+
16+
### Verify Installation
417

518
```bash
6-
npm run dev
19+
node --version # Should be v18.0.0 or higher
20+
npm --version # Should be 9.0.0 or higher
721
# or
8-
yarn dev
22+
pnpm --version # Should be 8.0.0 or higher
23+
```
24+
25+
## Quick Start
26+
27+
### 1. Clone the Repository
28+
29+
```bash
30+
git clone https://github.com/HyperionKit/fe.git
31+
cd fe
32+
```
33+
34+
### 2. Install Dependencies
35+
36+
```bash
37+
npm install --legacy-peer-deps
938
# or
10-
pnpm dev
39+
pnpm install
40+
```
41+
42+
> **Note:** Use `--legacy-peer-deps` flag if you encounter peer dependency conflicts with React 19.
43+
44+
### 3. Set Up Environment Variables
45+
46+
Create a `.env.local` file in the root directory:
47+
48+
```env
49+
NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
50+
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
51+
```
52+
53+
> **For Newsletter Functionality:** Get your Supabase credentials from [Supabase Dashboard](https://app.supabase.com) → Settings → API. See `supabase/SUPABASE_SETUP.md` for detailed instructions.
54+
55+
### 4. Run the Development Server
56+
57+
```bash
58+
npm run dev
1159
# or
12-
bun dev
60+
pnpm dev
1361
```
1462

15-
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
63+
The development server will start with **Turbopack** for faster builds. Open [http://localhost:3000](http://localhost:3000) in your browser.
1664

17-
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
65+
### 5. Start Developing
1866

19-
This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.
67+
Edit `app/page.tsx` or any component file to see changes reflected instantly with hot reload.
2068

21-
## Learn More
69+
## Getting Started (Detailed)
2270

23-
To learn more about Next.js, take a look at the following resources:
71+
### Project Structure
2472

25-
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
26-
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
73+
```
74+
fe/
75+
├── app/ # Next.js app directory
76+
│ ├── api/ # API routes
77+
│ ├── layout.tsx # Root layout
78+
│ └── page.tsx # Home page
79+
├── components/ # React components
80+
│ ├── libraries/ # Reusable component libraries
81+
│ └── ui/ # UI components
82+
├── lib/ # Utility functions
83+
│ └── supabase.ts # Supabase client
84+
├── public/ # Static assets
85+
├── supabase/ # Supabase setup files
86+
└── package.json # Dependencies
87+
```
88+
89+
### Available Scripts
90+
91+
```bash
92+
npm run dev # Start development server with Turbopack
93+
npm run build # Build for production
94+
npm run start # Start production server
95+
npm run lint # Run ESLint
96+
npm run changelog # Update changelog
97+
```
98+
99+
## Tech Stack
100+
101+
- **Framework:** [Next.js 15](https://nextjs.org) with App Router
102+
- **UI Library:** React 19
103+
- **Language:** TypeScript
104+
- **Styling:** Tailwind CSS 4
105+
- **Animations:** Framer Motion, Three.js, WebGL
106+
- **Database:** Supabase (for newsletter subscriptions)
107+
- **Build Tool:** Turbopack
108+
109+
## Learn More
27110

28-
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!
111+
- [Next.js Documentation](https://nextjs.org/docs) - Learn Next.js features and API
112+
- [React Documentation](https://react.dev) - Learn React fundamentals
113+
- [Supabase Documentation](https://supabase.com/docs) - Supabase guides and API reference
114+
- [Tailwind CSS Documentation](https://tailwindcss.com/docs) - Utility-first CSS framework
29115

30116
## Deploy on Vercel
31117

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import { NextRequest, NextResponse } from 'next/server';
2+
import { subscribeToNewsletter } from '@/lib/supabase';
3+
4+
export async function POST(request: NextRequest) {
5+
try {
6+
const body = await request.json();
7+
const { email } = body;
8+
9+
if (!email || typeof email !== 'string') {
10+
return NextResponse.json(
11+
{ success: false, error: 'Email is required' },
12+
{ status: 400 }
13+
);
14+
}
15+
16+
const result = await subscribeToNewsletter(email);
17+
18+
if (result.success) {
19+
return NextResponse.json(
20+
{ success: true, message: 'Successfully subscribed to newsletter!' },
21+
{ status: 200 }
22+
);
23+
} else {
24+
return NextResponse.json(
25+
{ success: false, error: result.error || 'Failed to subscribe' },
26+
{ status: 400 }
27+
);
28+
}
29+
} catch (error) {
30+
console.error('Newsletter subscription error:', error);
31+
return NextResponse.json(
32+
{ success: false, error: 'Internal server error' },
33+
{ status: 500 }
34+
);
35+
}
36+
}
37+

0 commit comments

Comments
 (0)