Repository navigation
Expand file tree
/
Copy pathconstants.tsx
More file actions
461 lines (452 loc) · 17 KB
/
Copy pathconstants.tsx
File metadata and controls
461 lines (452 loc) · 17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
import { Bird } from "lucide-react";
export const title = "Future Solutions Dev";
// Cache-buster for static images replaced in-place (same filename, new content).
// Bump this number whenever an asset under public/assets changes — old browser
// caches refetch exactly once, then cache normally again.
export const ASSET_VERSION = "1_0_0";
export const description = `${title} builds custom web, mobile and SaaS software for businesses across the Arab world and worldwide — from e-commerce and ERP to AI-powered systems.`;
export const Contact = {
WhatsApp: "https://wa.me/201148371185",
Email: "info@futuresolutionsdev.com",
Phone: "201015471713",
Facebook: "https://www.facebook.com/futuresolutionsdev",
LinkedIn: "https://www.linkedin.com/company/futuresolutionsdev",
Address: "Cairo, Egypt",
};
// Public runtime keys. The deployment platform doesn't inject env vars, so the
// live values live here (all NEXT_PUBLIC_* — already exposed to the browser by
// design). Env vars still win when present, so local/CI overrides keep working.
export const SiteKeys = {
Web3FormsKey: process.env.NEXT_PUBLIC_WEB3FORMS_KEY || "1f7339db-d8e0-4a1b-a2ff-9861770fd9a5",
GaId: process.env.NEXT_PUBLIC_GA_ID || "",
GoogleSiteVerification: process.env.NEXT_PUBLIC_GOOGLE_SITE_VERIFICATION || "KZqsk3oGtcDsiEFbH2SDUbaSsBA238c42ShrLfsmv2g",
BingSiteVerification: process.env.NEXT_PUBLIC_BING_SITE_VERIFICATION || "314B6D037027F4B4D7C73C663ECF08DA",
FbDomainVerification: process.env.NEXT_PUBLIC_FB_DOMAIN_VERIFICATION || "",
};
export const Greetings: Record<
string,
{
Active: boolean;
Favicon: string;
Logo: string;
Title: string;
Description: string;
}
> = {
Default: {
Active: false,
Favicon: "/favico/favico.png",
Logo: "/favico/logo.webp",
Title: title,
Description: description,
},
Ramadan: {
Active: false,
Favicon: "/favico/favico.Ramadan.png",
Logo: "/favico/logo.Ramadan.webp",
Title: title,
Description: description,
},
EidAlFitr: {
Active: false,
Favicon: "/favico/favico.EidAlFitr.png",
Logo: "/favico/logo.EidAlFitr.webp",
Title: title,
Description: description,
},
EidAlAdha: {
Active: false,
Favicon: "/favico/favico.EidAlAdha.png",
Logo: "/favico/logo.EidAlAdha.webp",
Title: title,
Description: description,
},
};
export const ActiveGreeting =
Object.values(Greetings).find((g) => g.Active) || Greetings.Default;
export type SeasonName = "Ramadan" | "EidAlFitr" | "EidAlAdha";
export const ActiveSeasonName: SeasonName | null =
(Object.entries(Greetings).find(
([name, g]) => g.Active && name !== "Default",
)?.[0] as SeasonName | undefined) ?? null;
export const technologies = [
{
name: "Frontend",
benefit: {
en: "What your customers see — fast, polished, and works on every screen.",
ar: "اللي عميلك بيشوفه — سريع ومتقن ويشتغل على كل الشاشات.",
},
items: [
"TypeScript",
"Next.js",
"React",
"Tailwind CSS",
"Framer Motion",
"Three.js",
"Gastby",
"Astro",
],
},
{
name: "Mobile",
benefit: {
en: "One investment, two platforms — your app on iPhone and Android together.",
ar: "استثمار واحد لمنصتين — تطبيقك على iPhone وAndroid مع بعض.",
},
items: [
"Flutter",
"React Native",
"Expo",
"Swift",
"Kotlin",
"Objective-C",
],
},
{
name: "Backend",
benefit: {
en: "The engine room — stable under pressure and ready for growth.",
ar: "غرفة المحركات — ثابت تحت الضغط وجاهز للنمو.",
},
items: [
"Node.js",
"Bun",
"Nestjs",
"Hono",
"Express",
"Fastify",
"Python",
"Django",
"FastAPI",
"Go",
"Php Laravel",
],
},
{
name: "Database",
benefit: {
en: "Your data safe, organized, and backed up — the asset your business runs on.",
ar: "بياناتك آمنة ومنظمة وليها نسخ احتياطي — دي أصول شغلك.",
},
items: [
"PostgreSQL",
"MongoDB",
"MySQL",
"MariaDB",
"Redis",
"Supabase",
"Firebase",
],
},
{
name: "DevOps & Cloud",
benefit: {
en: "Always online, updates without downtime, and bills that don't surprise you.",
ar: "شغال دايماً، تحديثات من غير توقف، وفواتير استضافة من غير مفاجآت.",
},
items: [
"AWS",
"Google Cloud",
"Docker",
"Kubernetes",
"Vercel",
"GitHub Actions",
"GitLab",
"Bitbucket",
"Azure",
"DigitalOcean",
"Nginx",
"Apache",
],
},
];
type IconComponent = React.ComponentType<{ size?: number }>;
type TranslateFunction = (key: string) => string;
export const solutions = ({
language,
t,
ShoppingCart,
BarChart,
Server,
Layers,
}: {
language: string;
t: TranslateFunction;
ShoppingCart: IconComponent;
BarChart: IconComponent;
Server: IconComponent;
Layers: IconComponent;
}) => [
{
icon: ShoppingCart,
slug: "e-commerce-solutions",
title: t("solutions.ecommerce"),
content:
language === "ar"
? "متجرك مش مجرد صفحات منتجات — نظام كامل يبيع وانت نايم: يستقبل الدفع، يدير المخزون، ويرجّع العميل اللي ساب السلة."
: "Your store isn't just product pages — it's a system that sells while you sleep: takes payments, manages stock, and wins back abandoned carts.",
points:
language === "ar"
? ["سلة ودفع إلكتروني آمن (بطاقات وتحويل بنكي)", "إدارة مخزون وطلبات وفواتير تلقائية", "كوبونات وحملات بريدية واسترجاع سلات", "لوحة تحكم بتقارير مبيعات يومية"]
: ["Cart & secure checkout (cards + bank transfer)", "Inventory, orders, and automatic invoices", "Coupons, email campaigns, cart recovery", "Dashboard with daily sales reports"],
},
{
icon: BarChart,
slug: "fintech-solutions",
title: t("solutions.fintech"),
content:
language === "ar"
? "في الفلوس مفيش مجال للخطأ — أنظمة مالية كل عملية فيها مسجلة ومشفرة وقابلة للتدقيق."
: "With money there's no room for error — financial systems where every transaction is recorded, encrypted, and auditable.",
points:
language === "ar"
? ["عمليات آمنة بتشفير وتحقق ثنائي", "لوحات بيانات لحظية للأرصدة والتدفقات", "سجلات تدقيق كاملة لكل حركة", "تكامل مع بوابات الدفع والبنوك"]
: ["Encrypted transactions with two-factor auth", "Real-time dashboards for balances & flows", "Complete audit logs for every action", "Payment gateway & banking integrations"],
},
{
icon: Server,
slug: "erp-solutions",
title: t("solutions.erp"),
content:
language === "ar"
? "بدل ما شغلك متقسم بين Excel وواتساب وورق — نظام واحد يجمع الموارد البشرية والمخازن والمشتريات والحسابات."
: "Instead of running your business across Excel, WhatsApp, and paper — one system for HR, inventory, procurement, and accounting.",
points:
language === "ar"
? ["كل الأقسام في نظام واحد متصل", "صلاحيات دقيقة لكل موظف حسب دوره", "تقارير قابلة للتخصيص لاتخاذ القرار", "يتكامل مع أنظمتك وأدواتك الحالية"]
: ["Every department in one connected system", "Role-based permissions per employee", "Customizable reports for decision-making", "Integrates with your existing tools"],
},
{
icon: Layers,
slug: "healthcare-solutions",
title: t("solutions.healthcare"),
content:
language === "ar"
? "عيادتك أو مركزك يستحق نظام يحترم وقت المريض وخصوصية بياناته — من الحجز للمتابعة."
: "Your clinic deserves a system that respects patients' time and data privacy — from booking to follow-up.",
points:
language === "ar"
? ["حجز مواعيد أونلاين وتذكيرات تلقائية", "ملفات مرضى آمنة ومنظمة", "استشارات عن بعد بالفيديو", "التزام بمعايير خصوصية البيانات الصحية"]
: ["Online booking with automatic reminders", "Secure, organized patient records", "Video telemedicine consultations", "Health-data privacy compliance built in"],
},
];
// Service cards lead with client benefits, not technology names —
// the stack lives on the Technologies page for whoever cares.
export const services = ({
language,
t,
Code,
Smartphone,
Cloud,
Brain,
Database,
Shield,
}: {
language: string;
t: TranslateFunction;
Code: IconComponent;
Smartphone: IconComponent;
Cloud: IconComponent;
Brain: IconComponent;
Database: IconComponent;
Shield: IconComponent;
}) => {
const isAr = language === "ar";
return [
{
icon: Code,
title: t("services.web.title"),
description: t("services.web.desc"),
features: isAr
? ["تحميل في أقل من ثانية", "جاهز لتصدر نتائج Google", "مثالي على الموبايل", "مصمم لتحويل الزوار لعملاء"]
: ["Loads in under a second", "Built to rank on Google", "Flawless on mobile", "Designed to convert visitors"],
},
{
icon: Smartphone,
title: t("services.mobile.title"),
description: t("services.mobile.desc"),
features: isAr
? ["تطبيق واحد لـ iOS وAndroid", "إشعارات ترجّع عملاءك", "يعمل حتى بدون إنترنت", "جاهز للنشر على المتاجر"]
: ["One app for iOS & Android", "Notifications that bring users back", "Works even offline", "Store-ready from day one"],
},
{
icon: Cloud,
title: t("services.saas.title"),
description: t("services.saas.desc"),
features: isAr
? ["اشتراكات وفوترة مدمجة", "يتوسع مع نمو مستخدميك", "لوحة تحكم إدارية جاهزة", "تقارير تتابع منها أرقامك"]
: ["Subscriptions & billing built in", "Scales as your users grow", "Admin dashboard included", "Reports that track your numbers"],
},
{
icon: Brain,
title: t("services.ai.title"),
description: t("services.ai.desc"),
features: isAr
? ["أتمتة المهام المتكررة", "بحث وتوصيات ذكية", "مساعد ذكي يخدم عملاءك", "قرارات مبنية على بياناتك"]
: ["Automate repetitive work", "Smart search & recommendations", "An assistant that serves your customers", "Decisions backed by your data"],
},
{
icon: Database,
title: t("services.devops.title"),
description: t("services.devops.desc"),
features: isAr
? ["استقرار على مدار الساعة", "تحديثات تنزل في دقائق", "نسخ احتياطي تلقائي", "تكاليف استضافة تحت السيطرة"]
: ["Online around the clock", "Updates ship in minutes", "Automatic backups", "Hosting costs under control"],
},
{
icon: Shield,
title: t("services.security.title"),
description: t("services.security.desc"),
features: isAr
? ["حماية بيانات عملائك", "اختبارات اختراق دورية", "جاهزية للامتثال والمعايير", "خطة استجابة للطوارئ"]
: ["Customer data protected", "Regular penetration testing", "Compliance-ready", "An incident response plan"],
},
];
};
export const techs = ({
Atom,
Server,
Triangle,
FileCode2,
Braces,
Cloud,
Database,
Container,
}: {
Atom: IconComponent;
Server: IconComponent;
Triangle: IconComponent;
FileCode2: IconComponent;
Braces: IconComponent;
Cloud: IconComponent;
Database: IconComponent;
Container: IconComponent;
}) => [
{
name: "React",
icon: <Atom />,
color: "text-cyan-400",
description: {
ar: "مكتبة JavaScript قوية لبناء واجهات مستخدم تفاعلية وسريعة تعتمد على مبدأ المكونات القابلة لإعادة الاستخدام.",
en: "A powerful JavaScript library for building fast, interactive user interfaces using reusable components.",
},
},
{
name: "Node.js",
icon: <Server />,
color: "text-green-500",
description: {
ar: "بيئة تشغيل JavaScript على الخادم تتيح بناء تطبيقات خلفية عالية الأداء وقابلة للتوسع.",
en: "A JavaScript runtime for building high-performance, scalable backend applications.",
},
},
{
name: "Next.js",
icon: <Triangle />,
color: "text-white",
description: {
ar: "إطار عمل مبني على React يدعم SSR و SSG لتحسين الأداء وتجربة المستخدم وتحسين محركات البحث.",
en: "A React framework supporting SSR and SSG for optimal performance, SEO, and user experience.",
},
},
{
name: "TypeScript",
icon: <FileCode2 />,
color: "text-blue-500",
description: {
ar: "امتداد لـ JavaScript يضيف نظام أنواع قوي لتحسين جودة الكود وتقليل الأخطاء في المشاريع الكبيرة.",
en: "A typed superset of JavaScript that improves code quality and reduces errors in large-scale projects.",
},
},
{
name: "Flutter",
icon: <Bird />,
color: "text-blue-400",
description: {
ar: " إطار عمل مفتوح المصدر تطوّره Google وتدعمه. يستخدم مطورو الواجهة الأمامية والمطورون الشاملون Flutter لإنشاء واجهة مستخدم (UI) للتطبيق تعمل على منصات متعددة بتعليمة برمجية أساسية واحدة.",
en: " UI software development kit created by Google and used to develop cross-platform applications for Android, iOS, Web, and Fuchsia.",
}
},
{
name: "Python",
icon: <Braces />,
color: "text-yellow-300",
description: {
ar: "لغة برمجة متعددة الاستخدامات تُستخدم في الذكاء الاصطناعي، تحليل البيانات، والأتمتة.",
en: "A versatile programming language widely used in AI, data analysis, automation, and backend development.",
},
},
{
name: "AWS",
icon: <Cloud />,
color: "text-orange-400",
description: {
ar: "منصة خدمات سحابية توفر بنية تحتية موثوقة وقابلة للتوسع لتشغيل التطبيقات والأنظمة.",
en: "A cloud computing platform providing scalable, secure infrastructure for modern applications.",
},
},
{
name: "PostgreSQL",
icon: <Database />,
color: "text-blue-300",
description: {
ar: "نظام قواعد بيانات علائقي قوي وآمن يدعم الاستعلامات المعقدة والبيانات الكبيرة.",
en: "A powerful, secure relational database system designed for complex queries and large-scale data.",
},
},
{
name: "Docker",
icon: <Container />,
color: "text-blue-500",
description: {
ar: "أداة لتشغيل التطبيقات داخل حاويات معزولة تضمن سهولة النشر والتوافق بين البيئات المختلفة.",
en: "A containerization platform that ensures consistent application deployment across environments.",
},
},
];
export const features = ({
language,
ShieldCheck,
Zap,
Globe,
Users,
}: {
language: string;
ShieldCheck: IconComponent;
Zap: IconComponent;
Globe: IconComponent;
Users: IconComponent;
}) => [
{
icon: ShieldCheck,
title: language === "ar" ? "آمن وموثوق" : "Secure & Reliable",
description:
language === "ar"
? "معايير أمان على مستوى المؤسسات."
: "Enterprise-grade security standards.",
},
{
icon: Zap,
title: language === "ar" ? "أداء عالي" : "High Performance",
description:
language === "ar"
? "تحسين السرعة والكفاءة."
: "Optimized for speed and efficiency.",
},
{
icon: Globe,
title: language === "ar" ? "قابلية التوسع" : "Global Scale",
description:
language === "ar"
? "بنية تحتية تنمو معك."
: "Infrastructure that grows with you.",
},
{
icon: Users,
title: language === "ar" ? "فريق خبير" : "Expert Team",
description:
language === "ar"
? "مهندسين ذوي خبرة عالية."
: "Dedicated senior engineers.",
},
];