Initial commit
This commit is contained in:
59
.gitea/workflows/build.yml
Normal file
59
.gitea/workflows/build.yml
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
name: Build
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
branch:
|
||||||
|
description: 'Branch to build'
|
||||||
|
required: true
|
||||||
|
default: 'main'
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 10
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout branch
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
ref: ${{ gitea.event.inputs.branch }}
|
||||||
|
|
||||||
|
- name: Setup Node.js
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: 24
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
npm ci --prefer-offline --no-audit --silent 2>&1 | tee install.log
|
||||||
|
env:
|
||||||
|
NODE_OPTIONS: '--max-old-space-size=4096'
|
||||||
|
|
||||||
|
- name: Build (next build)
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
npm run build 2>&1 | tee build.log
|
||||||
|
env:
|
||||||
|
NODE_ENV: production
|
||||||
|
NEXT_TELEMETRY_DISABLED: 1
|
||||||
|
NODE_OPTIONS: '--max-old-space-size=4096'
|
||||||
|
timeout-minutes: 5
|
||||||
|
|
||||||
|
- name: Upload logs on failure
|
||||||
|
if: failure()
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: build-logs
|
||||||
|
path: |
|
||||||
|
install.log
|
||||||
|
build.log
|
||||||
|
if-no-files-found: ignore
|
||||||
|
|
||||||
|
- name: Build completed
|
||||||
|
if: success()
|
||||||
|
run: echo "Build completed successfully"
|
||||||
1235
src/app/layout.tsx
Normal file
1235
src/app/layout.tsx
Normal file
File diff suppressed because it is too large
Load Diff
178
src/app/page.tsx
Normal file
178
src/app/page.tsx
Normal file
@@ -0,0 +1,178 @@
|
|||||||
|
"use client"
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple';
|
||||||
|
import HeroOverlay from '@/components/sections/hero/HeroOverlay';
|
||||||
|
import TextBox from '@/components/Textbox';
|
||||||
|
import MetricCardTen from '@/components/sections/metrics/MetricCardTen';
|
||||||
|
import ContactText from '@/components/sections/contact/ContactText';
|
||||||
|
import ContactCenter from '@/components/sections/contact/ContactCenter';
|
||||||
|
import FooterBase from '@/components/sections/footer/FooterBase';
|
||||||
|
import { Search, Globe, Drum, TrendingUp } from 'lucide-react';
|
||||||
|
|
||||||
|
export default function LandingPage() {
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="text-stagger"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="rounded"
|
||||||
|
contentWidth="medium"
|
||||||
|
sizing="medium"
|
||||||
|
background="aurora"
|
||||||
|
cardStyle="glass-elevated"
|
||||||
|
primaryButtonStyle="gradient"
|
||||||
|
secondaryButtonStyle="glass"
|
||||||
|
headingFontWeight="medium"
|
||||||
|
>
|
||||||
|
<div id="navbar" data-section="navbar">
|
||||||
|
<NavbarStyleApple
|
||||||
|
navItems={[
|
||||||
|
{ name: "HOME", id: "home" },
|
||||||
|
{ name: "JOBS", id: "jobs" },
|
||||||
|
{ name: "SIGN IN", id: "signin" },
|
||||||
|
{ name: "RESOURCES", id: "resources" },
|
||||||
|
{ name: "POST A JOB", id: "postjob" }
|
||||||
|
]}
|
||||||
|
brandName="NestJS"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="hero" data-section="hero">
|
||||||
|
<HeroOverlay
|
||||||
|
title="Official NestJS job board"
|
||||||
|
description="Discover companies looking for developers with NestJS experience and find your next role."
|
||||||
|
imageSrc="https://www.jobs.nestjs.com/assets/header-2-CGRpDzPN.jpg"
|
||||||
|
imageAlt="NestJS job board hero background"
|
||||||
|
textPosition="center"
|
||||||
|
showBlur={true}
|
||||||
|
showDimOverlay={true}
|
||||||
|
buttons={[
|
||||||
|
{ text: "Post a job", href: "postjob" },
|
||||||
|
{ text: "Browse open positions", href: "jobs" }
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="opportunities" data-section="opportunities">
|
||||||
|
<TextBox
|
||||||
|
title="Find your next opportunity"
|
||||||
|
description="Browse through our list of NestJS jobs, find your perfect match and apply. Use filters for more accurate results!"
|
||||||
|
textboxLayout="default"
|
||||||
|
center={true}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="newsletter" data-section="newsletter">
|
||||||
|
<ContactCenter
|
||||||
|
tag="Newsletter"
|
||||||
|
title="Get NestJS jobs right to your inbox"
|
||||||
|
description="Subscribe to our newsletter to get notified."
|
||||||
|
useInvertedBackground="invertDefault"
|
||||||
|
inputPlaceholder="Enter your email"
|
||||||
|
buttonText="Subscribe"
|
||||||
|
termsText="By subscribing you agree to receive job notifications and updates."
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="jobs" data-section="jobs">
|
||||||
|
<MetricCardTen
|
||||||
|
title="Current Job Openings"
|
||||||
|
description="Explore available NestJS positions from top companies"
|
||||||
|
textboxLayout="default"
|
||||||
|
useInvertedBackground="noInvert"
|
||||||
|
animationType="slide-up"
|
||||||
|
metrics={[
|
||||||
|
{
|
||||||
|
id: "1", title: "Senior Software Engineer", subtitle: "Trilon · Remote · Worldwide", category: "Featured", value: "✨ FEATURED", buttons: [{ text: "Apply Now", href: "#" }]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "2", title: "Senior Product Engineer", subtitle: "Pandektes · Remote · Denmark", category: "Engineering", value: "$120k - $150k", buttons: [{ text: "Apply Now", href: "#" }]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "3", title: "Full-Stack Developer Angular/NestJS/PHP/MySQL", subtitle: "Nylon Technology · Remote · United States", category: "Full-Stack", value: "$100k - $130k", buttons: [{ text: "View Details", href: "#" }]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "4", title: "Full Stack Typescript Developer (NextJs, NestJs)", subtitle: "ClickTech · Remote · Worldwide", category: "TypeScript", value: "$40k - $50k", buttons: [{ text: "Apply Now", href: "#" }]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "5", title: "NestJS Testing Specialist (Freelancer/Consultant)", subtitle: "Kapital · Worldwide", category: "Testing", value: "Contract", buttons: [{ text: "Learn More", href: "#" }]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "6", title: "Full-Stack Engineer (Mid-Senior) [NestJS, NextJS]", subtitle: "OASYS NOW · Netherlands, Delft", category: "Full-Stack", value: "$60k - $80k", buttons: [{ text: "Apply Now", href: "#" }]
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="support" data-section="support">
|
||||||
|
<ContactText
|
||||||
|
text="Team augmentation. By your side at every step. Nest core team members can work directly with your team on a daily basis to help take your project to the next-level."
|
||||||
|
animationType="entrance-slide"
|
||||||
|
useInvertedBackground="invertDefault"
|
||||||
|
buttons={[
|
||||||
|
{ text: "Contact us to learn more", href: "contact" }
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="companies" data-section="companies">
|
||||||
|
<TextBox
|
||||||
|
title="Who is using Nest?"
|
||||||
|
description="Nest is proudly powering a large ecosystem of enterprises and products out there. Wanna see your logo here? Find out more."
|
||||||
|
textboxLayout="default"
|
||||||
|
center={true}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="additional-support" data-section="additional-support">
|
||||||
|
<ContactText
|
||||||
|
text="Does your team need additional support? Nest core team members can work directly with your team on a daily basis to help take your project to the next-level. Let us partner with you and your team to develop the most ambitious projects."
|
||||||
|
animationType="reveal-blur"
|
||||||
|
useInvertedBackground="noInvert"
|
||||||
|
buttons={[
|
||||||
|
{ text: "Contact us", href: "contact" }
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="final-newsletter" data-section="final-newsletter">
|
||||||
|
<ContactCenter
|
||||||
|
tag="Stay Updated"
|
||||||
|
title="Join our Newsletter"
|
||||||
|
description="Subscribe to stay up to date with the latest Nest updates, features, and videos!"
|
||||||
|
useInvertedBackground="invertDefault"
|
||||||
|
inputPlaceholder="Enter your email"
|
||||||
|
buttonText="Subscribe"
|
||||||
|
termsText="Stay informed about the latest NestJS developments and opportunities."
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="footer" data-section="footer">
|
||||||
|
<FooterBase
|
||||||
|
logoText="NestJS"
|
||||||
|
columns={[
|
||||||
|
{
|
||||||
|
title: "Resources", items: [
|
||||||
|
{ label: "Official NestJS Consulting", href: "https://trilon.io" },
|
||||||
|
{ label: "Documentation", href: "https://docs.nestjs.com" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Legal", items: [
|
||||||
|
{ label: "Terms of Service", href: "terms" },
|
||||||
|
{ label: "Privacy Policy", href: "privacy" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Community", items: [
|
||||||
|
{ label: "GitHub", href: "https://github.com/nestjs" },
|
||||||
|
{ label: "Twitter", href: "https://twitter.com/nestframework" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
copyrightText="Copyright © 2017-2026 Kamil Mysliwiec"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
5
vercel.json
Normal file
5
vercel.json
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"installCommand": "npm ci",
|
||||||
|
"buildCommand": "npm run build",
|
||||||
|
"outputDirectory": ".next"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user