+
+ );
+}
diff --git a/apps/portal/src/components/resumes/landing/Logo.jsx b/apps/portal/src/components/resumes/landing/Logo.jsx
new file mode 100644
index 00000000..230baceb
--- /dev/null
+++ b/apps/portal/src/components/resumes/landing/Logo.jsx
@@ -0,0 +1,32 @@
+export function Logo(props) {
+ return (
+
+ );
+}
diff --git a/apps/portal/src/components/resumes/landing/PrimaryFeatures.jsx b/apps/portal/src/components/resumes/landing/PrimaryFeatures.jsx
new file mode 100644
index 00000000..15d1196b
--- /dev/null
+++ b/apps/portal/src/components/resumes/landing/PrimaryFeatures.jsx
@@ -0,0 +1,139 @@
+import clsx from 'clsx';
+import Image from 'next/future/image';
+import { useEffect, useState } from 'react';
+import { Tab } from '@headlessui/react';
+
+import { Container } from './Container';
+import backgroundImage from './images/background-features.jpg';
+import screenshotExpenses from './images/screenshots/expenses.png';
+import screenshotPayroll from './images/screenshots/payroll.png';
+import screenshotVatReturns from './images/screenshots/vat-returns.png';
+
+const features = [
+ {
+ description:
+ 'Browse the most popular reviewed resumes out there and see what you can learn',
+ image: screenshotPayroll,
+ title: 'Browse',
+ },
+ {
+ description:
+ 'Upload your own resume easily to get feedback from people in industry.',
+ image: screenshotExpenses,
+ title: 'Submit',
+ },
+ {
+ description:
+ 'Pass the baton forward by reviewing resumes and bounce off ideas with other engineers out there.',
+ image: screenshotVatReturns,
+ title: 'Review',
+ },
+];
+
+export function PrimaryFeatures() {
+ const [tabOrientation, setTabOrientation] = useState('horizontal');
+
+ useEffect(() => {
+ const lgMediaQuery = window.matchMedia('(min-width: 1024px)');
+
+ function onMediaQueryChange({ matches }) {
+ setTabOrientation(matches ? 'vertical' : 'horizontal');
+ }
+
+ onMediaQueryChange(lgMediaQuery);
+ lgMediaQuery.addEventListener('change', onMediaQueryChange);
+
+ return () => {
+ lgMediaQuery.removeEventListener('change', onMediaQueryChange);
+ };
+ }, []);
+
+ return (
+
+
+
+
+
+ Everything you need to up your resume game.
+
+
+
+ {({ selectedIndex }) => (
+ <>
+
+
+ {features.map((feature, featureIndex) => (
+
+
+
+
+ {feature.title}
+
+
+
+ {feature.description}
+
+
+ ))}
+
+
+
+ {features.map((feature) => (
+
+
+
+
+ {feature.description}
+
+
+
+
+
+
+ ))}
+
+ >
+ )}
+
+
+
+ );
+}
diff --git a/apps/portal/src/components/resumes/landing/Testimonials.jsx b/apps/portal/src/components/resumes/landing/Testimonials.jsx
new file mode 100644
index 00000000..91d31f40
--- /dev/null
+++ b/apps/portal/src/components/resumes/landing/Testimonials.jsx
@@ -0,0 +1,150 @@
+import Image from 'next/future/image';
+
+import { Container } from './Container';
+import avatarImage1 from './images/avatars/avatar-1.png';
+import avatarImage2 from './images/avatars/avatar-2.png';
+import avatarImage3 from './images/avatars/avatar-3.png';
+import avatarImage4 from './images/avatars/avatar-4.png';
+import avatarImage5 from './images/avatars/avatar-5.png';
+
+const testimonials = [
+ {
+ columns: [
+ {
+ author: {
+ image: avatarImage1,
+ name: 'Sheryl Berge',
+ role: 'CEO at Lynch LLC',
+ },
+ content:
+ 'TaxPal is so easy to use I can’t help but wonder if it’s really doing the things the government expects me to do.',
+ },
+ {
+ author: {
+ image: avatarImage4,
+ name: 'Amy Hahn',
+ role: 'Director at Velocity Industries',
+ },
+ content:
+ 'I’m trying to get a hold of someone in support, I’m in a lot of trouble right now and they are saying it has something to do with my books. Please get back to me right away.',
+ },
+ ],
+ name: 'column-one',
+ },
+ {
+ columns: [
+ {
+ author: {
+ image: avatarImage5,
+ name: 'Leland Kiehn',
+ role: 'Founder of Kiehn and Sons',
+ },
+ content:
+ 'The best part about TaxPal is every time I pay my employees, my bank balance doesn’t go down like it used to. Looking forward to spending this extra cash when I figure out why my card is being declined.',
+ },
+ {
+ author: {
+ image: avatarImage2,
+ name: 'Erin Powlowski',
+ role: 'COO at Armstrong Inc',
+ },
+ content:
+ 'There are so many things I had to do with my old software that I just don’t do at all with TaxPal. Suspicious but I can’t say I don’t love it.',
+ },
+ ],
+ name: 'column-two',
+ },
+ {
+ columns: [
+ {
+ author: {
+ image: avatarImage3,
+ name: 'Peter Renolds',
+ role: 'Founder of West Inc',
+ },
+ content:
+ 'I used to have to remit tax to the EU and with TaxPal I somehow don’t have to do that anymore. Nervous to travel there now though.',
+ },
+ {
+ author: {
+ image: avatarImage4,
+ name: 'Amy Hahn',
+ role: 'Director at Velocity Industries',
+ },
+ content:
+ 'This is the fourth email I’ve sent to your support team. I am literally being held in jail for tax fraud. Please answer your damn emails, this is important.',
+ },
+ ],
+ name: 'column-three',
+ },
+];
+
+function QuoteIcon(props) {
+ return (
+
+ );
+}
+
+export function Testimonials() {
+ return (
+
+
+
+
+ Loved by software engineers worldwide.
+
+
+ We crowdsource ideas and feedback from across the world,
+ guaranteeing you for success in your job application.
+
+
+
+ {testimonials.map(({ name, columns }) => (
+
+
+ {columns.map((testimonial) => (
+
+
+
+ ))}
+
+
+ ))}
+
+
+
+ );
+}
diff --git a/apps/portal/src/components/resumes/landing/images/avatars/avatar-1.png b/apps/portal/src/components/resumes/landing/images/avatars/avatar-1.png
new file mode 100644
index 00000000..1df25e6b
Binary files /dev/null and b/apps/portal/src/components/resumes/landing/images/avatars/avatar-1.png differ
diff --git a/apps/portal/src/components/resumes/landing/images/avatars/avatar-2.png b/apps/portal/src/components/resumes/landing/images/avatars/avatar-2.png
new file mode 100644
index 00000000..85456e71
Binary files /dev/null and b/apps/portal/src/components/resumes/landing/images/avatars/avatar-2.png differ
diff --git a/apps/portal/src/components/resumes/landing/images/avatars/avatar-3.png b/apps/portal/src/components/resumes/landing/images/avatars/avatar-3.png
new file mode 100644
index 00000000..44aaa9f9
Binary files /dev/null and b/apps/portal/src/components/resumes/landing/images/avatars/avatar-3.png differ
diff --git a/apps/portal/src/components/resumes/landing/images/avatars/avatar-4.png b/apps/portal/src/components/resumes/landing/images/avatars/avatar-4.png
new file mode 100644
index 00000000..dd9a5d2e
Binary files /dev/null and b/apps/portal/src/components/resumes/landing/images/avatars/avatar-4.png differ
diff --git a/apps/portal/src/components/resumes/landing/images/avatars/avatar-5.png b/apps/portal/src/components/resumes/landing/images/avatars/avatar-5.png
new file mode 100644
index 00000000..91cd8a37
Binary files /dev/null and b/apps/portal/src/components/resumes/landing/images/avatars/avatar-5.png differ
diff --git a/apps/portal/src/components/resumes/landing/images/background-auth.jpg b/apps/portal/src/components/resumes/landing/images/background-auth.jpg
new file mode 100644
index 00000000..ab481c34
Binary files /dev/null and b/apps/portal/src/components/resumes/landing/images/background-auth.jpg differ
diff --git a/apps/portal/src/components/resumes/landing/images/background-call-to-action.jpg b/apps/portal/src/components/resumes/landing/images/background-call-to-action.jpg
new file mode 100644
index 00000000..13d8ee59
Binary files /dev/null and b/apps/portal/src/components/resumes/landing/images/background-call-to-action.jpg differ
diff --git a/apps/portal/src/components/resumes/landing/images/background-faqs.jpg b/apps/portal/src/components/resumes/landing/images/background-faqs.jpg
new file mode 100644
index 00000000..d9de04f7
Binary files /dev/null and b/apps/portal/src/components/resumes/landing/images/background-faqs.jpg differ
diff --git a/apps/portal/src/components/resumes/landing/images/background-features.jpg b/apps/portal/src/components/resumes/landing/images/background-features.jpg
new file mode 100644
index 00000000..6bea1038
Binary files /dev/null and b/apps/portal/src/components/resumes/landing/images/background-features.jpg differ
diff --git a/apps/portal/src/components/resumes/landing/images/logos/laravel.svg b/apps/portal/src/components/resumes/landing/images/logos/laravel.svg
new file mode 100644
index 00000000..bfa63bd4
--- /dev/null
+++ b/apps/portal/src/components/resumes/landing/images/logos/laravel.svg
@@ -0,0 +1,18 @@
+
diff --git a/apps/portal/src/components/resumes/landing/images/logos/mirage.svg b/apps/portal/src/components/resumes/landing/images/logos/mirage.svg
new file mode 100644
index 00000000..204df737
--- /dev/null
+++ b/apps/portal/src/components/resumes/landing/images/logos/mirage.svg
@@ -0,0 +1,17 @@
+
diff --git a/apps/portal/src/components/resumes/landing/images/logos/statamic.svg b/apps/portal/src/components/resumes/landing/images/logos/statamic.svg
new file mode 100644
index 00000000..25d7ba6c
--- /dev/null
+++ b/apps/portal/src/components/resumes/landing/images/logos/statamic.svg
@@ -0,0 +1,12 @@
+
diff --git a/apps/portal/src/components/resumes/landing/images/logos/statickit.svg b/apps/portal/src/components/resumes/landing/images/logos/statickit.svg
new file mode 100644
index 00000000..381d21e7
--- /dev/null
+++ b/apps/portal/src/components/resumes/landing/images/logos/statickit.svg
@@ -0,0 +1,5 @@
+
diff --git a/apps/portal/src/components/resumes/landing/images/logos/transistor.svg b/apps/portal/src/components/resumes/landing/images/logos/transistor.svg
new file mode 100644
index 00000000..2b858cf4
--- /dev/null
+++ b/apps/portal/src/components/resumes/landing/images/logos/transistor.svg
@@ -0,0 +1,13 @@
+
diff --git a/apps/portal/src/components/resumes/landing/images/logos/tuple.svg b/apps/portal/src/components/resumes/landing/images/logos/tuple.svg
new file mode 100644
index 00000000..2a9c2415
--- /dev/null
+++ b/apps/portal/src/components/resumes/landing/images/logos/tuple.svg
@@ -0,0 +1,13 @@
+
diff --git a/apps/portal/src/components/resumes/landing/images/screenshots/contacts.png b/apps/portal/src/components/resumes/landing/images/screenshots/contacts.png
new file mode 100644
index 00000000..5901470b
Binary files /dev/null and b/apps/portal/src/components/resumes/landing/images/screenshots/contacts.png differ
diff --git a/apps/portal/src/components/resumes/landing/images/screenshots/expenses.png b/apps/portal/src/components/resumes/landing/images/screenshots/expenses.png
new file mode 100644
index 00000000..ca35472e
Binary files /dev/null and b/apps/portal/src/components/resumes/landing/images/screenshots/expenses.png differ
diff --git a/apps/portal/src/components/resumes/landing/images/screenshots/inventory.png b/apps/portal/src/components/resumes/landing/images/screenshots/inventory.png
new file mode 100644
index 00000000..b98721c6
Binary files /dev/null and b/apps/portal/src/components/resumes/landing/images/screenshots/inventory.png differ
diff --git a/apps/portal/src/components/resumes/landing/images/screenshots/payroll.png b/apps/portal/src/components/resumes/landing/images/screenshots/payroll.png
new file mode 100644
index 00000000..16f5b5a7
Binary files /dev/null and b/apps/portal/src/components/resumes/landing/images/screenshots/payroll.png differ
diff --git a/apps/portal/src/components/resumes/landing/images/screenshots/profit-loss.png b/apps/portal/src/components/resumes/landing/images/screenshots/profit-loss.png
new file mode 100644
index 00000000..229df78a
Binary files /dev/null and b/apps/portal/src/components/resumes/landing/images/screenshots/profit-loss.png differ
diff --git a/apps/portal/src/components/resumes/landing/images/screenshots/reporting.png b/apps/portal/src/components/resumes/landing/images/screenshots/reporting.png
new file mode 100644
index 00000000..72b5e8e9
Binary files /dev/null and b/apps/portal/src/components/resumes/landing/images/screenshots/reporting.png differ
diff --git a/apps/portal/src/components/resumes/landing/images/screenshots/vat-returns.png b/apps/portal/src/components/resumes/landing/images/screenshots/vat-returns.png
new file mode 100644
index 00000000..3dd043bd
Binary files /dev/null and b/apps/portal/src/components/resumes/landing/images/screenshots/vat-returns.png differ
diff --git a/apps/portal/src/pages/resumes/index.tsx b/apps/portal/src/pages/resumes/browse.tsx
similarity index 100%
rename from apps/portal/src/pages/resumes/index.tsx
rename to apps/portal/src/pages/resumes/browse.tsx
diff --git a/apps/portal/src/pages/resumes/index.jsx b/apps/portal/src/pages/resumes/index.jsx
new file mode 100644
index 00000000..89fbc1bb
--- /dev/null
+++ b/apps/portal/src/pages/resumes/index.jsx
@@ -0,0 +1,25 @@
+import Head from 'next/head';
+
+import { CallToAction } from '~/components/resumes/landing/CallToAction';
+import { Footer } from '~/components/resumes/landing/Footer';
+import { Hero } from '~/components/resumes/landing/Hero';
+import { PrimaryFeatures } from '~/components/resumes/landing/PrimaryFeatures';
+import { Testimonials } from '~/components/resumes/landing/Testimonials';
+
+export default function Home() {
+ return (
+ <>
+
+ Resume Review
+
+
+
+
+
+
+
+
+
+ >
+ );
+}