Initial commit

This commit is contained in:
2026-01-16 13:55:13 +02:00
commit 93c8e5ac6c
4 changed files with 1474 additions and 0 deletions

View 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"

1240
src/app/layout.tsx Normal file

File diff suppressed because it is too large Load Diff

170
src/app/page.tsx Normal file
View File

@@ -0,0 +1,170 @@
"use client"
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple';
import HeroOverlay from '@/components/sections/hero/HeroOverlay';
import TextAbout from '@/components/sections/about/TextAbout';
import ContactCenter from '@/components/sections/contact/ContactCenter';
import MetricCardTen from '@/components/sections/metrics/MetricCardTen';
import ContactText from '@/components/sections/contact/ContactText';
import FooterBase from '@/components/sections/footer/FooterBase';
import { Search, Globe, Drum, TrendingUp, Github, Twitter } 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
brandName="NestJS Jobs"
navItems={[
{ name: "Home", id: "home" },
{ name: "Jobs", id: "jobs" },
{ name: "Sign In", id: "signin" },
{ name: "Resources", id: "resources" },
{ name: "Post a Job", id: "post-job" }
]}
/>
</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: "#post-job" },
{ text: "Browse open positions", href: "#jobs" }
]}
/>
</div>
<div id="about" data-section="about">
<TextAbout
title="Find your next opportunity. Browse through our list of NestJS jobs, find your perfect match and apply. Use filters for more accurate results!"
useInvertedBackground="invertDefault"
/>
</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="noInvert"
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="Browse through available NestJS positions from top companies"
textboxLayout="default"
useInvertedBackground="invertDefault"
animationType="slide-up"
metrics={[
{
id: "1", title: "Senior Software Engineer", subtitle: "Trilon · Remote · Worldwide", category: "Featured", value: "✨ FEATURED", buttons: [{ text: "Apply Now", href: "#apply" }]
},
{
id: "2", title: "Senior Product Engineer", subtitle: "Pandektes · Remote · Denmark", category: "Engineering", value: "$120k - $150k", buttons: [{ text: "Apply Now", href: "#apply" }]
},
{
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: "#details" }]
},
{
id: "4", title: "Full Stack Typescript Developer (NextJs, NestJs)", subtitle: "ClickTech · Remote · Worldwide", category: "TypeScript", value: "$40k - $50k", buttons: [{ text: "Apply Now", href: "#apply" }]
},
{
id: "5", title: "NestJS Testing Specialist (Freelancer/Consultant)", subtitle: "Kapital · Worldwide", category: "Testing", value: "Contract", buttons: [{ text: "Learn More", href: "#learn" }]
},
{
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: "#apply" }]
}
]}
/>
</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. Let us partner with you and your team to develop the most ambitious projects."
animationType="entrance-slide"
useInvertedBackground="noInvert"
buttons={[
{ text: "Contact us to learn more", href: "#contact" }
]}
/>
</div>
<div id="companies" data-section="companies">
<TextAbout
title="Who is using Nest? Nest is proudly powering a large ecosystem of enterprises and products out there. Wanna see your logo here? Find out more."
useInvertedBackground="invertDefault"
/>
</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="By subscribing you agree to receive updates and newsletters from NestJS."
/>
</div>
<div id="footer" data-section="footer">
<FooterBase
logoText="NestJS Jobs"
copyrightText="Copyright © 2017-2026 Kamil Mysliwiec"
columns={[
{
title: "Resources", items: [
{ label: "Official NestJS Consulting", href: "https://trilon.io" },
{ 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" },
{ label: "Discord", href: "https://discord.gg/nestjs" }
]
}
]}
/>
</div>
</ThemeProvider>
);
}

5
vercel.json Normal file
View File

@@ -0,0 +1,5 @@
{
"installCommand": "npm ci",
"buildCommand": "npm run build",
"outputDirectory": ".next"
}