- добавлены backend, admin, gateway и worker skeleton - добавлены Drizzle schema, database package и initial migration - добавлены shared packages для RabbitMQ topology и S3 helpers - обновлены dev-инфраструктура, env example, scripts и dependencies - обновлена документация под versioned image URLs и read-through flow
41 lines
1.2 KiB
TypeScript
41 lines
1.2 KiB
TypeScript
import "./App.css"
|
||
|
||
const cards = [
|
||
{
|
||
title: "Assets",
|
||
description: "Каталог исходных изображений и связанной metadata.",
|
||
},
|
||
{
|
||
title: "Variants",
|
||
description: "Будущие AVIF/WebP/JPEG variants, presets и статусы генерации.",
|
||
},
|
||
{
|
||
title: "Storage",
|
||
description: "PostgreSQL как source of truth, S3/MinIO как хранилище bytes.",
|
||
},
|
||
]
|
||
|
||
export function App() {
|
||
return (
|
||
<main className="app-shell">
|
||
<section className="hero">
|
||
<p className="eyebrow">Image Platform Admin</p>
|
||
<h1>чистый Vite React TS app</h1>
|
||
<p className="lead">
|
||
Это стартовая админка без UI-фреймворков. Дальше сюда добавим управление allowed hosts,
|
||
assets, variants и presets.
|
||
</p>
|
||
</section>
|
||
|
||
<section className="cards" aria-label="Будущие разделы">
|
||
{cards.map((card) => (
|
||
<article className="card" key={card.title}>
|
||
<h2>{card.title}</h2>
|
||
<p>{card.description}</p>
|
||
</article>
|
||
))}
|
||
</section>
|
||
</main>
|
||
)
|
||
}
|