DataNova is an open-source, multi-page Astro website template for marketing sites, documentation hubs, and applications, bundling Tailwind CSS, Preline UI, Keystatic CMS, Drizzle ORM, and Turso.
What is DataNova?
DataNova is an open-source, MIT-licensed website template created by mearashadowfax. It takes an Astro project skeleton with pre-built pages, modular components, content collections, and a Drizzle database schema, and produces a server-rendered site deployable to Vercel with the built-in adapter. The template includes a landing page, about, contact, downloads, support articles, a custom 404 page, dynamic robots.txt, and API routes for feedback, contact, and newsletter submissions.
What makes DataNova stand out?
- Astro with SSR — Configured for server-side rendering with the Vercel adapter pre-installed; swap in Netlify, Cloudflare, or Node adapters by editing
astro.config.mjs. - Keystatic CMS — Admin UI at
/keystaticsupports local or GitHub storage modes and can be disabled in production with theSKIP_KEYSTATICenvironment variable. - Drizzle ORM + Turso — Feedback component writes helpful/not-helpful counts to a Turso database; falls back to a local SQLite file at
.data/local.dbwithout credentials. - Contact and newsletter forms — POST JSON to
/api/contactand/api/newsletter; accepts submissions in demo mode, forwards to Formspree or any JSON webhook, and includes a honeypot field and IP rate limiting. - Astro SEO and schema.org —
astro-seomanages metadata andastro-seo-schemaadds structured data; page-specific overrides are passed as props toBaseLayout. - Astro Font and client-side router —
astro-fontoptimizes font preloading, andClientRouterfromastro:transitionsenables page transitions. - Content collections — Articles and reference collections use Markdoc, and spreadsheets/whitepapers are JSON files, all manageable through Keystatic.
- Included pages — Landing, about, contact, downloads, support articles index and detail, 404, and robots.txt.
Who should use DataNova?
- Developers — start a new Astro project with a working SSR setup, database schema, and API routes rather than wiring them from scratch.
- Marketing teams — manage site content through the Keystatic admin UI and publish by deploying the GitHub repo to Vercel.
- SaaS founders and content creators — build marketing sites, documentation hubs, and download portals with a built-in feedback mechanism.
What can you do with DataNova?
- Launch a marketing site — customize navigation, mega menus, and footer components, then deploy to Vercel by connecting the repository.
- Run a documentation support hub — add articles to the support/articles collection and use the dynamic article detail route.
- Collect reader feedback — embed the PostFeedback Svelte component on pages; votes are stored in Turso via Drizzle ORM.
- Handle contact and newsletter forms — wire the endpoint to Formspree or your own JSON webhook to receive submissions.
How does DataNova work?
To get started, click Use this template on the repository, clone your new repo, and run pnpm install. Copy .env.template to .env, fill in TURSO_DATABASE_URL and TURSO_AUTH_TOKEN, then push the schema with pnpm db:push, and run pnpm dev for local development. Deploy by connecting the GitHub repository to Vercel and setting the required environment variables.
Pricing
DataNova is free and open source under the MIT License. There are no paid tiers, subscriptions, or hidden fees.
FAQ
Is DataNova really free?
Yes, DataNova is released under the MIT License, so you can use, modify, and deploy it freely, even for commercial projects.
What tech stack does DataNova use?
Astro with SSR, Tailwind CSS for styling, Preline UI for interactive components, Keystatic CMS for content management, Drizzle ORM with Turso for the feedback database, and a Svelte component for the feedback widget.
How do I manage content?
Run pnpm dev and visit the /keystatic path in your browser to open the Keystatic admin UI in local mode, or configure GitHub storage to edit content at your deployed domain's /keystatic route.
Can DataNova be used as a static site?
Yes, the README shows how to conditionally use Keystatic only in development and set Astro output to static, which allows hosting on any static provider.
How does the feedback system work?
The PostFeedback Svelte component posts to /api/feedback with a slug and vote type; the API reads and updates helpful/not-helpful counts in the Feedback table using Drizzle ORM against Turso.








