import React from 'react' import { Head, Link, usePage } from '@inertiajs/react' import StudioLayout from '../../Layouts/StudioLayout' import NovaCardCanvasPreview from '../../components/nova-cards/NovaCardCanvasPreview' function requestJson(url, { method = 'POST' } = {}) { return fetch(url, { method, credentials: 'same-origin', headers: { Accept: 'application/json', 'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]')?.getAttribute('content') || '', 'X-Requested-With': 'XMLHttpRequest', }, }).then(async (response) => { const payload = await response.json().catch(() => ({})) if (!response.ok) throw new Error(payload?.message || 'Request failed') return payload }) } function StatCard({ label, value, icon }) { return (
Creation surface
Drafts autosave, templates stay structured, and every published card gets a public preview image ready for discovery and sharing.
Latest work
Start with a square card or jump straight into a story-sized template. Your first draft will be created automatically in the editor.
Create your first card