Skip to content

Commit 72e0a7a

Browse files
committed
feat(app): og image gen
1 parent e29b697 commit 72e0a7a

File tree

5 files changed

+391
-0
lines changed

5 files changed

+391
-0
lines changed

package-lock.json

Lines changed: 50 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"diff-match-patch": "^1.0.5",
1414
"framer-motion": "^11.0.24",
1515
"front-matter": "^4.0.2",
16+
"html2canvas": "^1.4.1",
1617
"marked": "^16.4.1",
1718
"piml": "^1.1.1",
1819
"qrcode.react": "^4.2.0",

public/apps/apps.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -454,6 +454,14 @@
454454
"description": "Generate CRON expressions visually and convert human-readable text to CRON.",
455455
"icon": "ClockIcon",
456456
"created_at": "2025-11-18T03:40:32+03:00"
457+
},
458+
{
459+
"slug": "og-image-generator",
460+
"to": "/apps/og-image-generator",
461+
"title": "OG Image Generator",
462+
"description": "Generate open graph images for your posts with generative art.",
463+
"icon": "ImageSquareIcon",
464+
"created_at": "2025-12-22T12:00:00+03:00"
457465
}
458466
]
459467
},

src/components/AnimatedRoutes.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ const AtmosphereMixerPage = lazy(() => import('../pages/apps/AtmosphereMixerPage
143143
const TaskGridPage = lazy(() => import('../pages/apps/TaskGridPage'));
144144
const BlendLabPage = lazy(() => import('../pages/apps/BlendLabPage'));
145145
const AssetStudioPage = lazy(() => import('../pages/apps/AssetStudioPage'));
146+
const OgImageGeneratorPage = lazy(() => import('../pages/apps/OgImageGeneratorPage'));
146147
const PosterLoomPage = lazy(() => import('../pages/apps/PosterLoomPage'));
147148
const SymbolFlowPage = lazy(() => import('../pages/apps/SymbolFlowPage'));
148149
const RoadmapViewerPage = lazy(() => import('../pages/roadmap/FezzillaPage'));
@@ -1817,6 +1818,22 @@ const AnimatedRoutes = ({
18171818
</motion.div>
18181819
}
18191820
/>
1821+
<Route
1822+
path="/apps/og-image-generator"
1823+
element={
1824+
<motion.div
1825+
initial="initial"
1826+
animate="in"
1827+
exit="out"
1828+
variants={pageVariants}
1829+
transition={pageTransition}
1830+
>
1831+
<Suspense fallback={<Loading />}>
1832+
<OgImageGeneratorPage />
1833+
</Suspense>
1834+
</motion.div>
1835+
}
1836+
/>
18201837
<Route
18211838
path="/apps/poster-loom"
18221839
element={

0 commit comments

Comments
 (0)