+ Post an ERP project and get a qualified expert shortlist in one flow.
+
+
+ This desk turns the seed app into a real marketplace workflow: capture a client brief,
+ register required ERP skills, and immediately preview freelancers worth shortlisting.
+
+ {(match.matchedSkills || []).length ? (
+ match.matchedSkills?.map((skill) => (
+
+ {skill}
+
+ ))
+ ) : (
+
+ General vetted fit only
+
+ )}
+
+
+
+
+ ))}
+
+ ) : (
+
+ We saved the project successfully, but the current dataset does not contain a strong match yet.
+ Add freelancer profiles, ERP systems, or skills and try the intake again for a richer shortlist.
+
+ )}
+
+ ) : (
+
+ Create a project intake to see the first shortlist here. The page will return the project record,
+ confidence signals, and quick links into the existing project and proposal screens.
+
+ No proposals have been submitted yet. Once freelancers apply, they will appear here.
+
+ )}
+
+
+
+
+
+ >
+ );
+};
+
+ErpMatchDeskPage.getLayout = function getLayout(page: ReactElement) {
+ return {page};
+};
+
+export default ErpMatchDeskPage;
diff --git a/frontend/src/pages/for-clients.tsx b/frontend/src/pages/for-clients.tsx
new file mode 100644
index 0000000..e1ad98f
--- /dev/null
+++ b/frontend/src/pages/for-clients.tsx
@@ -0,0 +1,89 @@
+import { mdiCheckCircle, mdiAccountMultipleCheck, mdiDomain, mdiHandshake } from '@mdi/js';
+import Head from 'next/head';
+import React, { ReactElement } from 'react';
+import BaseButton from '../components/BaseButton';
+import BaseIcon from '../components/BaseIcon';
+import PublicHeader from '../components/PublicHeader';
+import LayoutGuest from '../layouts/Guest';
+import { getPageTitle } from '../config';
+
+const benefits = [
+ {
+ title: 'Pre-vetted ERP Experts',
+ body: 'We screen every freelancer for specific ERP platform knowledge (SAP, Oracle, Odoo, Dynamics, etc.) to ensure they meet enterprise delivery standards.',
+ icon: mdiAccountMultipleCheck,
+ },
+ {
+ title: 'Accelerate Project Intake',
+ body: 'Our guided intake form helps you articulate your scope, ERP modules, budget, and timeline in minutes, attracting the right specialists immediately.',
+ icon: mdiDomain,
+ },
+ {
+ title: 'Hire With Confidence',
+ body: 'Review proposals, interview candidates directly, and track milestones all within a secure, professional, end-to-end workspace.',
+ icon: mdiHandshake,
+ },
+];
+
+export default function ForClientsPage() {
+ return (
+ <>
+
+ {getPageTitle('For Clients')}
+
+
+
+
+
+
+
+
+
+ For Clients
+
+
+ Deliver your ERP projects faster with vetted specialists.
+
+
+ Skip the generic developer marketplaces. FreelanceERP connects you directly with seasoned ERP implementation consultants, developers, and support analysts.
+
+
+
+
+
+
+
+
+
+ {benefits.map((item) => (
+
+
+
+
+
{item.title}
+
{item.body}
+
+ ))}
+
+
+
+
+
+
Get matched with top talent today.
+
+ Our matching algorithm connects your project requirements with the proven skills of our ERP freelance network.
+
+
+
+
+
+
+
+
+ >
+ );
+}
+
+ForClientsPage.getLayout = function getLayout(page: ReactElement) {
+ return {page};
+};
diff --git a/frontend/src/pages/for-freelancers.tsx b/frontend/src/pages/for-freelancers.tsx
new file mode 100644
index 0000000..98d72c5
--- /dev/null
+++ b/frontend/src/pages/for-freelancers.tsx
@@ -0,0 +1,86 @@
+import { mdiCheckCircle } from '@mdi/js';
+import Head from 'next/head';
+import React, { ReactElement } from 'react';
+import BaseButton from '../components/BaseButton';
+import BaseIcon from '../components/BaseIcon';
+import PublicHeader from '../components/PublicHeader';
+import LayoutGuest from '../layouts/Guest';
+import { getPageTitle } from '../config';
+
+const benefits = [
+ {
+ title: 'Niche ERP Focus',
+ body: 'Stop competing against generic developers. We only feature projects for SAP, Oracle, Microsoft Dynamics, Odoo, NetSuite, and other leading ERPs.',
+ },
+ {
+ title: 'High-Quality Clients',
+ body: 'Work directly with verified businesses and enterprise delivery teams looking for serious implementations, migrations, and support.',
+ },
+ {
+ title: 'Skill-Based Matching',
+ body: 'We match you with clients based on your exact ERP stack and module experience, meaning you spend less time searching and more time delivering.',
+ },
+];
+
+export default function ForFreelancersPage() {
+ return (
+ <>
+
+ {getPageTitle('For Freelancers')}
+
+
+
+
+
+
+
+
+
+ For Freelancers
+
+
+ The exclusive network for elite ERP professionals
+
+
+ Turn your specialized knowledge of SAP, Oracle, Odoo, and other ERPs into a thriving freelance business. We bring the clients to you.
+
+
+
+
+
+
+
+
+
+ {benefits.map((item) => (
+
+
+
+
+
{item.title}
+
{item.body}
+
+ ))}
+
+
+
+
+
+
Ready to elevate your freelance career?
+
+ Sign up today, build your detailed ERP profile, and get matched with companies that need your exact expertise.
+
+
+
+
+
+
+
+
+ >
+ );
+}
+
+ForFreelancersPage.getLayout = function getLayout(page: ReactElement) {
+ return {page};
+};
diff --git a/frontend/src/pages/how-it-works.tsx b/frontend/src/pages/how-it-works.tsx
new file mode 100644
index 0000000..e86154f
--- /dev/null
+++ b/frontend/src/pages/how-it-works.tsx
@@ -0,0 +1,168 @@
+import { mdiCheckCircle, mdiAccountTie, mdiDomain, mdiHandshake, mdiCurrencyUsd, mdiChartTimeline, mdiStarCircle } from '@mdi/js';
+import Head from 'next/head';
+import React, { ReactElement } from 'react';
+import BaseButton from '../components/BaseButton';
+import BaseIcon from '../components/BaseIcon';
+import PublicHeader from '../components/PublicHeader';
+import LayoutGuest from '../layouts/Guest';
+import { getPageTitle } from '../config';
+
+const clientSteps = [
+ {
+ title: '1. Create a detailed project brief',
+ body: 'Start by posting your ERP project through our guided Match Desk. Specify whether it is an SAP migration, an Oracle optimization, or an Odoo rollout. Detail your budget, exact timeline, and the specific functional or technical modules you require.',
+ },
+ {
+ title: '2. Receive algorithmic candidate matches',
+ body: 'Within minutes, our matching engine analyzes your brief against our database of verified ERP specialists. You get a shortlist of freelancers who have the proven track record, certifications, and availability to start immediately.',
+ },
+ {
+ title: '3. Evaluate proposals and interview',
+ body: 'Review detailed proposals tailored to your project. Use our built-in messaging to conduct interviews, ask technical questions, and assess cultural fit before making any commitments.',
+ },
+ {
+ title: '4. Hire securely and manage delivery',
+ body: 'Engage your chosen freelancer with a secure contract. Track milestones, communicate continuously, and release payments only when deliverables meet your enterprise standards.',
+ },
+];
+
+const freelancerSteps = [
+ {
+ title: '1. Build an expert ERP profile',
+ body: 'Highlight your specialized skills. List your exact ERP stack experience (e.g., SAP FICO, NetSuite SuiteScript, Oracle SCM), years of experience, and any relevant industry certifications.',
+ },
+ {
+ title: '2. Pass the verification process',
+ body: 'To maintain marketplace quality, every profile undergoes an administrative review. We verify your credentials to ensure our clients only see top-tier, reliable talent.',
+ },
+ {
+ title: '3. Get matched and submit proposals',
+ body: 'Receive notifications when a client posts a project matching your expertise. Write a compelling proposal outlining your approach, timeline, and rate for their specific business problem.',
+ },
+ {
+ title: '4. Deliver work and get paid',
+ body: 'Collaborate with the client through our unified dashboard. Submit milestones for approval and receive your funds securely through our protected payment gateway.',
+ },
+];
+
+export default function HowItWorksPage() {
+ return (
+ <>
+
+ {getPageTitle('How It Works')}
+
+
+
+
+
+
+
+
+
+
+ How It Works
+
+
+ A streamlined process for specialized ERP delivery.
+
+
+ We designed FreelanceERP from the ground up to eliminate the noise of generic job boards. Whether you are an enterprise looking to implement a complex ERP system, or a seasoned consultant seeking high-value contracts, our transparent workflow ensures success.
+
+
+
+
+
+ {/* For Clients */}
+
+
+
+
+
+
+
For Clients
+
Hire the right talent, fast.
+
+
+
+ {clientSteps.map((step) => (
+
+
{step.title}
+
{step.body}
+
+ ))}
+
+
+
+
+
+
+ {/* For Freelancers */}
+
+
+
+
+
+
+
For Freelancers
+
Find exclusive, high-value contracts.
+
+
+
+ {freelancerSteps.map((step) => (
+
+
{step.title}
+
{step.body}
+
+ ))}
+
+
+
+
+
+
+
+
+
+
+
+
Why FreelanceERP is the trusted choice
+
Our platform is built to minimize risk and maximize delivery velocity for complex enterprise systems.
+
+
+
+
+
Verified Quality
+
+
Every freelancer undergoes background and skill verification before their profile becomes active.
+
+
+
+
+
Clear Milestones
+
+
Work is broken down into manageable phases, ensuring transparent progress tracking and accountability.
+
+
+
+
+
Protected Payments
+
+
Funds are escrowed and released only when clients approve the completed milestones, ensuring mutual safety.
+
+
+
+
+
+
+
+
+
+
+
+ >
+ );
+}
+
+HowItWorksPage.getLayout = function getLayout(page: ReactElement) {
+ return {page};
+};
\ No newline at end of file
diff --git a/frontend/src/pages/index.tsx b/frontend/src/pages/index.tsx
index 8dfa9b1..2ab90cd 100644
--- a/frontend/src/pages/index.tsx
+++ b/frontend/src/pages/index.tsx
@@ -1,166 +1,238 @@
-
-import React, { useEffect, useState } from 'react';
-import type { ReactElement } from 'react';
+import {
+ mdiAccountTie,
+ mdiArrowRight,
+ mdiBriefcaseOutline,
+ mdiCheckCircle,
+ mdiClockOutline,
+ mdiDomain,
+ mdiLogin,
+ mdiShieldCheckOutline,
+ mdiStarCircleOutline,
+} from '@mdi/js';
import Head from 'next/head';
import Link from 'next/link';
+import React, { ReactElement } from 'react';
+
import BaseButton from '../components/BaseButton';
-import CardBox from '../components/CardBox';
-import SectionFullScreen from '../components/SectionFullScreen';
+import BaseIcon from '../components/BaseIcon';
import LayoutGuest from '../layouts/Guest';
-import BaseDivider from '../components/BaseDivider';
-import BaseButtons from '../components/BaseButtons';
import { getPageTitle } from '../config';
-import { useAppSelector } from '../stores/hooks';
-import CardBoxComponentTitle from "../components/CardBoxComponentTitle";
-import { getPexelsImage, getPexelsVideo } from '../helpers/pexels';
+import PublicHeader from '../components/PublicHeader';
+const trustItems = [
+ 'ERP implementation and support projects',
+ 'Vetted freelancers and transparent matching',
+ 'Secure operations for clients, experts, and admins',
+];
-export default function Starter() {
- const [illustrationImage, setIllustrationImage] = useState({
- src: undefined,
- photographer: undefined,
- photographer_url: undefined,
- })
- const [illustrationVideo, setIllustrationVideo] = useState({video_files: []})
- const [contentType, setContentType] = useState('video');
- const [contentPosition, setContentPosition] = useState('left');
- const textColor = useAppSelector((state) => state.style.linkColor);
+const workflowSteps = [
+ {
+ body: 'Describe the ERP stack, business scope, budget, and target start date in minutes.',
+ title: 'Post a project brief',
+ },
+ {
+ body: 'Surface specialists with the right ERP, module, and delivery background for the engagement.',
+ title: 'Review expert matches',
+ },
+ {
+ body: 'Move into proposals, shortlisting, and project delivery with a clean operational workflow.',
+ title: 'Hire with confidence',
+ },
+];
- const title = 'FreelanceERP'
-
- // Fetch Pexels image/video
- useEffect(() => {
- async function fetchData() {
- const image = await getPexelsImage();
- const video = await getPexelsVideo();
- setIllustrationImage(image);
- setIllustrationVideo(video);
- }
- fetchData();
- }, []);
-
- const imageBlock = (image) => (
-
)
- }
- };
+const valueProps = [
+ {
+ body: 'Designed for Odoo, SAP, Oracle, Zoho, and adjacent ERP ecosystems instead of generic freelance work.',
+ icon: mdiDomain,
+ title: 'ERP-native marketplace',
+ },
+ {
+ body: 'A professional tone, fast project intake, and clear status tracking create trust for both sides of the market.',
+ icon: mdiShieldCheckOutline,
+ title: 'Trust-first experience',
+ },
+ {
+ body: 'Clients, freelancers, and admins each get a practical workflow instead of a disconnected set of screens.',
+ icon: mdiBriefcaseOutline,
+ title: 'Operationally useful from day one',
+ },
+];
+export default function HomePage() {
return (
-
For guides and documentation please check
- your local README.md and the Flatlogic documentation
+
+
+
+
+
+
+
+
+ Specialized ERP talent platform
+
+
+ Hire vetted ERP experts faster for Odoo, SAP, Oracle, Zoho, and beyond.
+
+
+ FreelanceERP helps companies post implementation, migration, support, and optimization projects,
+ then quickly connect with qualified freelancers in a secure and professional workflow.
+
+ Capture ERP, scope, budget, timing, and skill requirements in one guided intake.
+
+
+
+
Expert shortlist
+
+ Immediately preview freelancers scored on ERP overlap, availability, and verification status.
+
+
+
+
Operational follow-through
+
+ Continue into proposals, conversations, and delivery tracking through the admin workspace.
+
+
+
+
+
+ Sign in to launch the workflow
+
+
+
+
+
+
+
+
+
+
+
+ How FreelanceERP works
+
+
+ A focused first workflow for ERP delivery teams
+
+
+
+ The first release should feel like a working marketplace, not just a generated admin app.
+ This flow is intentionally thin, but it already supports real client action.
+
+
+
+
+ {workflowSteps.map((step, index) => (
+
+
+ 0{index + 1}
+
+
{step.title}
+
{step.body}
+
+ ))}
+
+
+
+
+
+
+ {valueProps.map((item) => (
+
+
+
+
+
{item.title}
+
{item.body}
+
+ ))}
+
+
+
+
+
+
+
+
+ Ready for the first iteration?
+
+
+ Log in, open the admin interface, and start posting ERP projects today.
+
+
+ The new MVP slice is built around project intake, matching, and next-step visibility. It is a
+ strong starting point for clients, freelancers, and admins to collaborate inside one system.
+