diff --git a/.env.docker.local.example b/.env.docker.local.example
index ef6b984..3d1a88c 100644
--- a/.env.docker.local.example
+++ b/.env.docker.local.example
@@ -1,3 +1,3 @@
-NEXT_PUBLIC_SITE_URL="http://mohfarawati.localhost:3000"
-NEXT_PUBLIC_ADMIN_URL="http://rootmohfarawati.localhost:3000"
+NEXT_PUBLIC_SITE_URL="http://localhost:3014"
+NEXT_PUBLIC_ADMIN_URL="http://rootmohfarawati.localhost:3014"
ADMIN_HOST="rootmohfarawati.localhost"
diff --git a/Makefile b/Makefile
index d2f06c5..236c4d9 100644
--- a/Makefile
+++ b/Makefile
@@ -25,8 +25,8 @@ ps:
docker compose ps
port:
- @echo "Site: $${NEXT_PUBLIC_SITE_URL:-https://mohfarawati.de}"
- @echo "Admin: $${NEXT_PUBLIC_ADMIN_URL:-https://root.mohfarawati.de}"
+ @echo "Site: http://localhost:3014"
+ @echo "Admin: http://rootmohfarawati.localhost:3014"
clean-orphans:
docker compose up -d --remove-orphans
diff --git a/README.md b/README.md
index 859c528..f89644a 100644
--- a/README.md
+++ b/README.md
@@ -14,7 +14,7 @@ pnpm dev
bun dev
```
-Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
+Open [http://localhost:3014](http://localhost:3014) with your browser to see the result.
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
diff --git a/components/layout/ascii-water-ripple.tsx b/components/layout/ascii-water-ripple.tsx
index cb5c623..ec3e180 100644
--- a/components/layout/ascii-water-ripple.tsx
+++ b/components/layout/ascii-water-ripple.tsx
@@ -7,7 +7,9 @@ import { SiteLogo } from "@/components/layout/site-logo";
type AsciiWaterRippleProps = {
lightLogoUrl?: string | null;
darkLogoUrl?: string | null;
- logoAlt: string;
+ logoAlt?: string;
+ showLogo?: boolean;
+ className?: string;
};
const glyphs = [".", ":", "+", "*", "o"];
@@ -38,10 +40,12 @@ const ripplePoints = buildRipplePoints();
export function AsciiWaterRipple({
lightLogoUrl,
darkLogoUrl,
- logoAlt,
+ logoAlt = "",
+ showLogo = true,
+ className,
}: AsciiWaterRippleProps) {
return (
-
+
-
-
-
+ {showLogo && (
+
+
+
+ )}
);
}
diff --git a/docker-compose.yml b/docker-compose.yml
index b503686..c7de984 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -26,19 +26,12 @@ services:
timeout: 5s
retries: 10
start_period: 20s
- labels:
- - "traefik.enable=true"
- - "traefik.docker.network=proxy"
- - "traefik.http.routers.sass-mohfarawati.rule=Host(`mohfarawati.de`) || Host(`www.mohfarawati.de`) || Host(`root.mohfarawati.de`)"
- - "traefik.http.routers.sass-mohfarawati.entrypoints=websecure"
- - "traefik.http.routers.sass-mohfarawati.tls=true"
- - "traefik.http.routers.sass-mohfarawati.tls.certresolver=cf"
- - "traefik.http.services.sass-mohfarawati.loadbalancer.server.port=3000"
+ ports:
+ - "${PORT:-3014}:3000"
volumes:
- media_uploads:/app/public/uploads/media
networks:
- appnet
- - proxy
db:
image: postgres:16-alpine
@@ -63,6 +56,3 @@ volumes:
networks:
appnet:
- proxy:
- external: true
- name: proxy
diff --git a/messages/ar.json b/messages/ar.json
index c19d6e5..a8f2586 100644
--- a/messages/ar.json
+++ b/messages/ar.json
@@ -30,12 +30,12 @@
},
"comingSoon": {
"badge": "قريباً",
- "kicker": "مرحبا، أنا محمد",
- "titleLineOne": "الموقع",
- "titleLineTwo": "رح يفتح",
- "titleLineThree": "قريباً.",
- "description": "عم حضّر الموقع بحلّة جديدة، محتوى أوضح، وتجربة أرتب من أولها لآخرها.",
- "note": "إذا حابب تبلّش من هلق، ابعتلي ومنحكي بالتفاصيل.",
+ "kicker": "شيء جديد عم يتشكّل",
+ "titleLineOne": "نسخة",
+ "titleLineTwo": "أقوى",
+ "titleLineThree": "بالطريق.",
+ "description": "عم بشتغل على نسخة جديدة — هوية أقوى، شغل أوضح، وتجربة مبنية من الأساس.",
+ "note": "",
"primaryCta": "تواصل معي",
"secondaryCta": "العودة للرئيسية"
},
diff --git a/messages/de.json b/messages/de.json
index c634acf..8afa79a 100644
--- a/messages/de.json
+++ b/messages/de.json
@@ -29,14 +29,14 @@
}
},
"comingSoon": {
- "badge": "Coming Soon",
- "kicker": "Hi, ich bin Moh",
- "titleLineOne": "Eine klarere",
- "titleLineTwo": "nächste Version",
- "titleLineThree": "ist unterwegs.",
- "description": "Die neue Version entsteht gerade mit stärkerer Identität, klarerem Inhalt und einer fokussierteren Erfahrung von Anfang bis Ende.",
- "note": "Wenn du schon ein Projekt im Kopf hast, kannst du dich jetzt melden und wir starten früh ins Gespräch.",
- "primaryCta": "Kontakt aufnehmen",
+ "badge": "Demnächst",
+ "kicker": "Etwas Neues nimmt Form an",
+ "titleLineOne": "Eine stärkere",
+ "titleLineTwo": "Version",
+ "titleLineThree": "kommt.",
+ "description": "Die nächste Iteration dieser Seite entsteht mit Bedacht — schärfere Arbeiten, eine klarere Identität und ein Auftritt, der wirklich zeigt, was ich tue.",
+ "note": "",
+ "primaryCta": "Schreib mir",
"secondaryCta": "Zur Startseite"
},
"homepage": {
diff --git a/messages/en.json b/messages/en.json
index 27b43d4..d1caf47 100644
--- a/messages/en.json
+++ b/messages/en.json
@@ -30,13 +30,13 @@
},
"comingSoon": {
"badge": "Coming Soon",
- "kicker": "Hi, I am Moh",
- "titleLineOne": "A clearer",
- "titleLineTwo": "next version",
- "titleLineThree": "is on the way.",
- "description": "The new version is being shaped with a stronger identity, cleaner content, and a more focused experience from top to bottom.",
- "note": "If you already have a project in mind, you can reach out now and we can start the conversation early.",
- "primaryCta": "Contact me",
+ "kicker": "Something new is taking shape",
+ "titleLineOne": "A stronger",
+ "titleLineTwo": "version",
+ "titleLineThree": "is coming.",
+ "description": "The next iteration of this site is being built with intention — sharper work, a clearer identity, and an experience that actually reflects what I do.",
+ "note": "",
+ "primaryCta": "Get in touch",
"secondaryCta": "Back to homepage"
},
"homepage": {