Commit Graph
91 Commits
Author SHA1 Message Date
Moh ba63f75ea8 REFACTORED - Replace Prisma with Drizzle ORM
CI / quality (push) Waiting to run
- Add lib/db (schema, postgres.js client, enums, seed, migrations) on Drizzle
- Rewrite all lib and admin action queries from Prisma to Drizzle
- Keep existing table/column names so no data migration is needed
- Preserve signed-cookie admin auth unchanged
- Map unique-violation handling from Prisma P2002 to SQLSTATE 23505
- Swap deps, scripts, Makefile, and Dockerfile from Prisma to Drizzle
2026-08-08 02:09:03 +02:00
MohFarawati 0f48381894 refactor(home): align contact CTA typography to the type scale
CI / quality (push) Has been cancelled
Use the eyebrow/.text-h2/body-lg tokens and caption/small labels so the
contact CTA matches the unified section styling. No structural change.
2026-07-14 22:38:08 +02:00
MohFarawati 59094eba85 refactor(home): unify section headings, differentiate capabilities and process
Reduce the "interchangeable cards" monotony flagged in Phase 0 and apply the
warm-premium type scale.

- SectionHeading: use the type scale (eyebrow via .eyebrow with brand tint,
  text-h2 title, body-lg description). Propagates to every home section.
- CapabilitiesSection: cleaner cards with a brand-tinted icon tile, type-scale
  title/body, soft elevation (drops the AppCard wrapper).
- ProcessSection: reworked into an editorial numbered timeline (large
  translucent brand numerals, top rule, no boxes) so it no longer looks
  identical to Capabilities.

Verified: eslint clean, no new type errors, tailwind generates the utilities.
2026-07-14 22:37:09 +02:00
MohFarawati dd72f013d4 feat(home): hero availability status and CTAs
The homepage hero had no call to action (Phase 0 finding). Add a live
availability pill and primary/secondary CTAs while keeping the signature title.

- HomeHero: optional availability status pill (pulsing dot) plus primary
  (view work) and secondary (contact) CTAs, RTL-aware arrow, using the type
  scale. Backward compatible (all new props optional).
- Wire copy + hrefs from the homepage; add heroVisual.primaryCta /
  secondaryCta to en/de/ar.

Verified: JSON valid, eslint clean, no new type errors.
2026-07-14 22:23:54 +02:00
MohFarawati 86243b79c2 feat(portfolio): real project-detail hero, no wasted space
The detail page rendered an empty <PageHero /> (blank gradient band) with the
real title buried in a card lower down (Phase 0 finding).

- Populate the detail PageHero with the project category (badge), title and
  summary, so the top of the page is a proper header.
- Slim the in-content ProjectHeader to back-link + meta chips + preview button,
  removing the now-duplicated title and summary. Applies across all three
  detail templates (grid/story/case-study).

Verified: eslint clean, no new type errors.
2026-07-14 22:20:47 +02:00
MohFarawati 4892f27006 feat(home): image-led featured projects section
Bring imagery to the homepage projects block (Phase 3), matching the portfolio
gallery.

- Thread coverImagePath through ProjectCardCopy and the home mapping.
- Rewrite ProjectsSection as image-first cards (reusing PortfolioCover with the
  branded placeholder fallback): whole-card link, featured project spans two
  columns with a larger cover, type-scale title, meta + stack badges, hover
  lift. Replaces the previous text-only cards.

Verified: eslint clean; no new type errors (pre-existing Prisma-gen anys only).
2026-07-14 22:19:05 +02:00
MohFarawati f7355b5356 feat(portfolio): image-led project gallery with branded placeholders
Redesign the portfolio list/category grid into a premium, image-first gallery
(Phase 3), applying the warm-premium tokens.

- Add components/site/portfolio-cover.tsx: renders the stored cover image
  (next/image, object-cover, hover zoom) or a restrained branded placeholder
  (monogram + category) when none is set. Placeholders are temporary — the
  owner will swap in real artwork.
- Rewrite portfolio-project-grid: responsive 1/2/3-col gallery, featured
  projects span two columns with a larger cover, cards use the type scale
  (text-h2/h3/caption), eyebrow category labels, line-clamped summaries, soft
  elevation and hover lift. Directly fixes the "portfolio shows no images"
  gap on the list and category pages.

Verified: eslint clean, no new type errors, tailwind generates the utilities.
2026-07-14 22:13:26 +02:00
MohFarawati b8a02f9e90 feat(coming-soon): premium themed redesign with launch countdown
CI / quality (push) Waiting to run
Full refactor of the maintenance/coming-soon page for all locales (de/en/ar,
RTL-aware) with a refined, theme-aware (light + dark) premium composition:
glass panel, live status indicator, hero title, description, launch countdown
and CTAs. Reuses the existing hero/motion system; no new dependencies.

- Add components/site/launch-countdown.tsx: hydration-safe client countdown
  (days/hours/minutes/seconds), localized labels, Arabic-aware typography,
  "launched" fallback when the target passes.
- Rewrite app/[locale]/coming-soon/page.tsx around the countdown and a single
  easy-to-edit LAUNCH_DATE_ISO constant (default ~45 days out).
- Add comingSoon i18n keys (status, countdownLabel, unit labels, launched)
  to en/de/ar.
2026-07-14 21:20:29 +02:00
MohFarawati d48497b992 refactor: drop toast + over-engineered extras, add inline admin feedback
CI / quality (push) Waiting to run
Phase 1 cleanup of the personal-site revamp. Backend/architecture untouched;
changes are limited to removing unused complexity and restoring feedback.

Removals
- Toast system: delete react-hot-toast, Toaster, QueryToastBridge, lib/toast,
  the toggle/easter-egg calls, related i18n keys and the dependency.
- Contact protection: remove Turnstile + per-IP rate limiting
  (lib/contact-guard, lib/contact-protection, admin screen, form widget,
  app-config wiring, nav entry, test).
- Speculative specs: delete orders, products, downloads, project-inquiry.

Inline feedback (replaces toast, no new deps)
- Add lib/admin-feedback (withFlash/readFlash) and components/admin/admin-flash,
  rendered centrally by AdminDashboardShell.
- Emit success/error messages for media, site-settings, portfolio, smtp,
  marquee and maintenance actions; pages read them via searchParams.
- Contact form shows validation/delivery errors inline; success still
  redirects to /success.

Docs
- Fix stale paths in frontend-system-* (components/root -> components/admin,
  lib/root-navigation -> lib/admin-navigation, drop phantom src/) and remove
  contact-protection references from docs and CLAUDE.md.
- Add docs/PHASE0_DIAGNOSIS.md (diagnosis report).

Note: proxy.ts self-fetch kept intentionally; it also drives maintenance mode.
2026-07-14 21:03:51 +02:00
MOH 1a7b3397f6 last update
CI / quality (push) Waiting to run
2026-07-14 20:10:38 +02:00
MOH 8add8b018a Fix local admin routing and landing styles 2026-05-12 08:17:55 +02:00
MOHandClaude Sonnet 4.6 868eb80374 Simplify hero backgrounds and add entrance animations
- Replace animated blob/wave/noise backdrop with clean static gradient
  (radial ellipse highlights + linear fade) in hero-motion-backdrop
- Remove all framer-motion from background layer; delete unused CSS
  classes: hero-blob, hero-sheet-glow, hero-sheet-wave, hero-sheet-noise,
  hero-title-shift keyframe, and responsive blob media queries
- Add framer-motion stagger entrance to HeroContentMotion, HeroMotionItem,
  and HeroTitle (slide-up + fade on mount)
- Refactor coming-soon page to use HeroContentMotion/HeroMotionItem
  instead of MotionFade (whileInView unreliable above the fold)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 22:48:51 +01:00
MOH b0de1fd66f Refine site footer layout and copy 2026-03-15 18:56:15 +01:00
MOH cf957cbbe2 Refine homepage and restore hero 2026-03-15 18:26:31 +01:00
MOH 6caf723695 refine admin cards and form headers
CI / quality (push) Has been cancelled
2026-03-15 08:59:19 +01:00
MOH c18128c965 Fix runtime default locale resolution
CI / quality (push) Waiting to run
2026-03-15 06:02:27 +01:00
MOH 9b8409a7d3 Fix toaster locale crash
CI / quality (push) Waiting to run
2026-03-15 05:29:44 +01:00
MOH 060d48f9c4 Fix dynamic locale fallback resolution
CI / quality (push) Waiting to run
2026-03-15 05:27:19 +01:00
MOH 3eb9238268 moh/admin-portfolio-ux-improvements
CI / quality (push) Waiting to run
2026-03-15 04:42:09 +01:00
MOH 364f761420 Fix dynamic default locale routing 2026-03-15 04:41:08 +01:00
MOH 5d3f77962a Add admin site settings sections and locale defaults 2026-03-15 04:06:33 +01:00
MOH 35734bd2d9 Remove admin entrypoints from public site
CI / quality (push) Has been cancelled
2026-03-13 17:53:01 +01:00
MOH fef44ded80 Add dedicated local admin domain routing 2026-03-13 17:48:45 +01:00
MOH db897e22bf Refactor admin area and remove legacy root paths
CI / quality (push) Waiting to run
2026-03-13 16:14:04 +01:00
MOH 87a597c872 Move admin area to root subdomain
CI / quality (push) Waiting to run
2026-03-12 00:15:12 +01:00
MOH e7dab6f0ef Adjust maintenance status card
CI / quality (push) Waiting to run
2026-03-11 23:57:16 +01:00
MOH 0d888af177 Remove experimental products section
CI / quality (push) Waiting to run
2026-03-11 23:26:46 +01:00
MOH 64976d6e12 Add sitemap and portfolio category SEO routes
CI / quality (push) Waiting to run
2026-03-11 23:13:36 +01:00
MOH cff416dd83 refactor toast system to use react-hot-toast
CI / quality (push) Waiting to run
2026-03-11 21:09:45 +01:00
MOH 03384c1bda fix sonner
CI / quality (push) Waiting to run
2026-03-11 17:47:51 +01:00
MOH 7956b073e9 Refactor portfolio admin and views 2026-03-11 17:46:35 +01:00
MOH 3c53430b12 Refine navigation states and fix toast centering
CI / quality (push) Waiting to run
2026-03-10 20:44:38 +01:00
MOH 2b7914fc9a Fix marquee RTL rendering and add subtle shadow 2026-03-10 20:18:37 +01:00
MOH 814447ae5d Optimize local fonts and remove hero motion 2026-03-10 18:38:59 +01:00
MOH 743f6746e0 Remove locale switch jump from header nav
CI / quality (push) Waiting to run
2026-03-10 18:11:39 +01:00
MOH 4b86e9cb2c Stabilize header nav width across locales 2026-03-10 18:09:00 +01:00
MOH 7877c8ae63 Refine Sonner layout and timing 2026-03-10 18:07:47 +01:00
MOH 67447bbe4b Make Sonner width fit toast content 2026-03-10 17:53:19 +01:00
MOH 981afc9e33 fix header transition
CI / quality (push) Waiting to run
2026-03-10 17:47:33 +01:00
MOH 77cc9dca87 Add Sonner-based notifications and UX polish 2026-03-10 17:43:26 +01:00
MOH eceb0f3a54 Remove header block entrance motion 2026-03-10 17:42:02 +01:00
MOH 8bf2121ffa Polish header entrance motion 2026-03-10 17:14:52 +01:00
MOH 5b51a2a063 Refactor root admin dashboards and settings 2026-03-10 16:43:43 +01:00
MOH db6c5392bb fix bg dark
CI / quality (push) Waiting to run
2026-03-10 06:33:41 +01:00
MOH 3a75764023 Fix admin portal font family 2026-03-10 06:32:53 +01:00
MOH 6f20f28a96 Refine global card system 2026-03-10 06:09:03 +01:00
MOH f2b5a15191 fix admin save state architecture 2026-03-10 05:24:50 +01:00
MOH e219295327 Fix marquee behavior and unify marquee settings 2026-03-10 05:23:27 +01:00
MOH 701c1b2a6c Restore hero word accents and German umlauts
CI / quality (push) Waiting to run
2026-03-09 08:58:04 +01:00
MOH c517c68b23 Refine site hero copy and reusable badge 2026-03-09 08:51:17 +01:00