Skip to content

Commit 2547142

Browse files
committed
Merge branch 'main' into prod
2 parents d36255e + 29c5702 commit 2547142

13 files changed

Lines changed: 796 additions & 49 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ node_modules
1717
build
1818
.nuxt
1919
.kotlin
20+
.wrangler
2021

2122
# IntelliJ
2223
.idea/
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<script setup lang="ts">
2+
const props = withDefaults(
3+
defineProps<{
4+
title?: string;
5+
description?: string;
6+
}>(),
7+
{
8+
title: "Solitar",
9+
description: "A minimal URL shortener and QR generator",
10+
},
11+
);
12+
</script>
13+
14+
<template>
15+
<div
16+
class="bg-black w-full h-full flex items-center justify-center flex-col"
17+
:style="`font-family: 'Geist', sans-serif`">
18+
<div class="w-full h-full p-16 flex items-start justify-center flex-col gap-28">
19+
<p class="text-white text-6xl">{{ title }}</p>
20+
<p class="text-[#a1a1a1] text-5xl">{{ description }}</p>
21+
</div>
22+
</div>
23+
</template>

apps/frontend/app/pages/contents.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
<script setup lang="ts">
22
const route = useRoute();
33
4+
useHead({
5+
title: "Contents",
6+
});
7+
48
const availableRoutes = new Map([
59
["terms", "Terms & Conditions"],
610
["privacy", "Privacy Policy"],

apps/frontend/app/pages/index.vue

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22
import { joinURL } from "ufo";
33
import { ShortenUrlDisplay } from "#components";
44
5+
defineOgImage("BasicTemplate");
6+
useHead({
7+
title: "URL Shortener",
8+
});
9+
510
const { r$ } = useShortenForm();
611
const config = useRuntimeConfig();
712
const toast = useToast();

apps/frontend/app/pages/qr.vue

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
11
<script setup lang="ts">
22
import { QrCodeDisplay } from "#components";
33
4+
defineOgImage("BasicTemplate", {
5+
title: "QR Code Generator",
6+
description: "Generate a QR code for your URL",
7+
});
8+
9+
useHead({
10+
title: "QR Code Generator",
11+
});
12+
413
const { r$ } = useQrCodeForm();
514
const overlay = useOverlay();
615

apps/frontend/nuxt.config.ts

Lines changed: 48 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
export default defineNuxtConfig({
2-
modules: ["@nuxt/ui", "@regle/nuxt", "@vueuse/nuxt", "@nuxt/image", "@nuxt/test-utils/module"],
2+
modules: [
3+
"@nuxt/ui",
4+
"@nuxt/fonts",
5+
"@regle/nuxt",
6+
"@vueuse/nuxt",
7+
"@nuxt/image",
8+
"@nuxt/test-utils/module",
9+
"nuxt-og-image",
10+
"@nuxtjs/robots",
11+
"@nuxtjs/sitemap",
12+
"nuxt-seo-utils",
13+
],
314
compatibilityDate: "2025-07-15",
415
devtools: { enabled: true },
516
css: ["~/assets/css/global.css"],
@@ -12,22 +23,13 @@ export default defineNuxtConfig({
1223
},
1324
app: {
1425
head: {
15-
title: "Solitär",
26+
titleTemplate: "%s %separator %siteName",
27+
templateParams: {
28+
separator: "|",
29+
siteName: "Solitar",
30+
},
31+
title: "Solitar",
1632
meta: [{ name: "description", content: "A minimal URL shortener and QR generator" }],
17-
link: [
18-
{
19-
rel: "icon",
20-
type: "image/svg+xml",
21-
href: "/favicon-light.svg",
22-
media: "(prefers-color-scheme: light)",
23-
},
24-
{
25-
rel: "icon",
26-
type: "image/svg+xml",
27-
href: "/favicon-dark.svg",
28-
media: "(prefers-color-scheme: dark)",
29-
},
30-
],
3133
},
3234
},
3335
nitro: {
@@ -39,4 +41,34 @@ export default defineNuxtConfig({
3941
nodeCompat: true,
4042
},
4143
},
44+
fonts: {
45+
families: [
46+
{
47+
name: "Geist",
48+
provider: "google",
49+
global: true,
50+
},
51+
],
52+
},
53+
ui: {
54+
fonts: false,
55+
},
56+
site: {
57+
name: "Solitar",
58+
},
59+
robots: {
60+
blockAiBots: true,
61+
blockNonSeoBots: true,
62+
},
63+
ogImage: {
64+
buildCache: true,
65+
compatibility: {
66+
runtime: {
67+
takumi: "wasm",
68+
},
69+
},
70+
},
71+
seo: {
72+
fallbackTitle: false,
73+
},
4274
});

apps/frontend/package.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,11 @@
1313
"test": "vitest run"
1414
},
1515
"dependencies": {
16+
"@nuxt/fonts": "^0.14.0",
1617
"@nuxt/image": "2.0.0",
1718
"@nuxt/ui": "^4.4.0",
19+
"@nuxtjs/robots": "^5.7.0",
20+
"@nuxtjs/sitemap": "^7.6.0",
1821
"@regle/core": "^1.18.3",
1922
"@regle/nuxt": "^1.18.3",
2023
"@regle/rules": "^1.18.3",
@@ -23,6 +26,7 @@
2326
"@vueuse/nuxt": "^14.2.1",
2427
"dayjs": "^1.11.19",
2528
"nuxt": "^4.3.1",
29+
"nuxt-seo-utils": "^7.0.19",
2630
"qrcode": "^1.5.4",
2731
"tailwindcss": "^4.1.18",
2832
"ufo": "^1.6.3",
@@ -31,8 +35,11 @@
3135
},
3236
"devDependencies": {
3337
"@nuxt/test-utils": "^4.0.0",
38+
"@takumi-rs/core": "^0.68.8",
39+
"@takumi-rs/wasm": "^0.68.8",
3440
"@vue/test-utils": "^2.4.6",
3541
"happy-dom": "^20.6.1",
42+
"nuxt-og-image": "6.0.0-beta.34",
3643
"oxlint": "^1.43.0",
3744
"oxlint-tsgolint": "^0.11.5",
3845
"playwright-core": "^1.58.2",

apps/frontend/public/robots.txt

Lines changed: 0 additions & 2 deletions
This file was deleted.

0 commit comments

Comments
 (0)