Modern, responsive careers website built with React, TypeScript, and Tailwind CSS
- Overview
- Features
- Technology Stack
- Getting Started
- Development
- Deployment
- Form Handling
- Project Structure
- Contributing
PurpleRain TechSafe Careers Page is a modern, responsive website showcasing open positions and company culture. Built with React and TypeScript, it provides a seamless experience for potential candidates to learn about the company and apply for positions.
Live Site: https://purplerain-careers.netlify.app
- Responsive Design: Mobile-first design that works on all devices
- Modern UI: Built with Radix UI components and Tailwind CSS
- Form Handling: Netlify Forms integration for resume submissions
- Type-Safe: Full TypeScript coverage for reliability
- Fast Performance: Vite for lightning-fast development and builds
- Accessible: WCAG-compliant components from Radix UI
- Dark Mode: Theme support with next-themes
- Animations: Smooth transitions with tailwindcss-animate
- React 18.3 - UI library
- TypeScript 5.5 - Type-safe JavaScript
- Vite 5.4 - Build tool and dev server
- Tailwind CSS 3.4 - Utility-first CSS framework
- Radix UI - Accessible component primitives
- Lucide React - Icon library
- React Hook Form - Form management
- Zod - Schema validation
- React Router - Client-side routing
- ESLint - Code linting
- PostCSS - CSS processing
- Autoprefixer - CSS vendor prefixing
- Node.js >= 18.0.0
- npm >= 8.0.0 (or yarn/pnpm)
-
Clone the repository
git clone https://github.com/your-org/purplerain-careers.git cd purplerain-careers -
Install dependencies
npm install
-
Start development server
npm run dev
-
Open in browser Navigate to http://localhost:5173
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run preview
# Run linter
npm run lint-
Create a feature branch
git checkout -b feature/my-feature
-
Make changes and test locally with
npm run dev -
Run linter to check code quality
npm run lint
-
Build to verify no build errors
npm run build
-
Commit and push
git add . git commit -m "feat: add new feature" git push origin feature/my-feature
-
Build your project
npm run build
-
Upload to Netlify
- Go to Netlify Drop
- Drag and drop the
dist/folder
-
Push to GitHub/GitLab
git push origin main
-
Connect to Netlify
- Go to Netlify Dashboard
- Click "Add new site" β "Import an existing project"
- Select your repository
- Configure build settings:
- Build command:
npm run build - Publish directory:
dist
- Build command:
-
Deploy
- Netlify automatically deploys on push to main
- Go to Site settings β Domain management
- Add custom domain (e.g.,
careers.purplerain.tech) - Update DNS records as instructed
-
Install Vercel CLI
npm install -g vercel
-
Deploy
vercel
-
Follow prompts to configure project
The careers page uses Netlify Forms for resume submissions.
-
Add
netlifyattribute to form<form name="apply-now" netlify> <!-- form fields --> </form>
-
Netlify auto-detects the form on deployment
-
Configure email notifications
- Go to Site settings β Forms
- Click on your form (e.g., "Apply Now")
- Add email notification under Form notifications
- Netlify Dashboard: Site β Forms tab
- Email: Configured notification email
- Export: Download submissions as CSV
- Name: Applicant's full name
- Email: Contact email
- Phone: Contact number (optional)
- Position: Job position applying for
- Resume: File upload (PDF, DOC, DOCX)
- Cover Letter: Text area (optional)
purplerain-careers/
βββ public/ # Static assets
β βββ logo.png # Company logo
β βββ logo.avif # Optimized logo
β βββ _redirects # Netlify redirects
βββ src/ # Source code
β βββ components/ # React components
β β βββ ui/ # Reusable UI components
β β βββ hero-section.tsx
β β βββ open-roles.tsx
β β βββ life-at-purplerain.tsx
β β βββ perks-benefits.tsx
β β βββ meet-team.tsx
β β βββ resume-submission.tsx
β β βββ site-navbar.tsx
β β βββ footer.tsx
β βββ data/ # Static data
β β βββ jobs.ts # Job listings
β β βββ team.ts # Team members
β βββ lib/ # Utilities
β β βββ utils.ts # Helper functions
β βββ App.tsx # Main app component
β βββ App.css # App styles
β βββ main.tsx # Entry point
βββ index.html # HTML template
βββ package.json # Dependencies
βββ tsconfig.json # TypeScript config
βββ vite.config.ts # Vite configuration
βββ tailwind.config.js # Tailwind configuration
βββ postcss.config.js # PostCSS configuration
βββ netlify.toml # Netlify configuration
βββ vercel.json # Vercel configuration
βββ README.md # This file
Edit src/data/jobs.ts:
export const jobs = [
{
id: 1,
title: "Senior Security Engineer",
department: "Engineering",
location: "Remote",
type: "Full-time",
description: "Join our security team...",
requirements: [
"5+ years experience in cybersecurity",
"Strong knowledge of network security",
// ...
],
},
// Add more jobs...
];Edit src/data/team.ts:
export const team = [
{
name: "John Doe",
role: "CEO & Founder",
image: "/team/john-doe.jpg",
bio: "John has 15 years of experience...",
},
// Add more team members...
];- Colors: Edit
tailwind.config.jsto change theme colors - Fonts: Update
index.htmlandtailwind.config.js - Components: Modify components in
src/components/
We welcome contributions! Please follow these guidelines:
- Use TypeScript for all new code
- Follow ESLint rules:
npm run lint - Use Prettier for formatting
- Write descriptive commit messages
- Create a feature branch from
main - Make your changes with clear commits
- Run
npm run lintandnpm run build - Submit PR with description of changes
- Form Validation: Client-side validation with Zod
- Spam Protection: Netlify's built-in spam filtering
- File Upload: Restricted to PDF, DOC, DOCX formats
- HTTPS: Enforced on all deployments
Proprietary - All rights reserved by PurpleRain TechSafe
- PurpleRain Dashboard - Main application dashboard
- PurpleRain Agent - Backend services and agents
- PurpleRain Edge - Edge node configuration
For questions or issues:
- Email: careers@purplerain.tech
- Website: https://purplerain.tech
- Dashboard: https://dash.purplerain.tech
Built with β€οΈ by the PurpleRain Team