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"
|
||||
1240
src/app/layout.tsx
Normal file
1240
src/app/layout.tsx
Normal file
File diff suppressed because it is too large
Load Diff
170
src/app/page.tsx
Normal file
170
src/app/page.tsx
Normal 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
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