Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
Astro-based photography portfolio and blog theme with content collections, dark mode, and RSS feeds.
Revista is an open-source photography portfolio and blog theme built on Astro v7.1.6, Tailwind CSS v4.2.2, and TypeScript v5.9.3 that turns Markdown/MDX content collections into a static site with photo galleries, article indexes, RSS feeds, and a CV page.
Revista is a photography portfolio and blog template created by Erfi Anugrah. It takes content authored in Markdown/MDX files stored in src/content/ and generates a fully static site using Astro's content collection API and glob loader pattern. The project outputs a deployable dist/ directory that runs on Cloudflare Workers (static assets) or as a Docker image served by BusyBox httpd. The site is organized into six content collections: muses (photography), long_form (articles), short_form (quick posts), zeitweilig (temporary thoughts), authors (contributor bios), and cv (resume data).
content.config.ts, and content creators can validate frontmatter at build time. The shared base schema covers title, tags, author, description, image with focal-point coordinates, and publication dates.scale() and translate3d() transforms to keep compositing on the GPU.Ctrl+K / Cmd+K keyboard shortcut.rss.xml using @astrojs/rss, letting readers subscribe to just the photography, long-form, or short-form content they care about.bun run create provides an interactive prompt that reads schema requirements and generates date-slugged .mdx files; bun run update-post updates frontmatter fields such as tags, titles, and dates with a dry-run preview.rose-pine-dawn theme for light mode and tokyo-night for dark mode, with both themes emitted and toggled by CSS.src/content/muses/ and it automatically appears in the /muses index, gets a detail page, tags, and an RSS entry.bun run build produces static output that can be pushed to Cloudflare Workers via Wrangler or packaged into a BusyBox-based Docker image with a single command.data-pagefind-filter attributes.Content lives as .mdx files with validated frontmatter. Astro generates routes from the content collections using shared helpers like buildDetailPaths() and buildTagPaths(). The prebuild script syncs version badges, and postbuild runs Pagefind indexing. Local development uses bun run dev, and production builds run bun run build with Bun as both runtime and package manager.
Revista is free and open-source under the MIT License. The blog content and images are not covered by the license and remain the property of their authors.
Yes. The theme is released under the MIT License, so you can use, modify, and deploy it freely. The sample blog content in the repository is not covered by the MIT License.
Revista uses Astro v7.1.6 as the static site generator, Tailwind CSS v4.2.2 for styling, TypeScript v5.9.3 for scripting, and Bun as the runtime and package manager. MDX is handled by @astrojs/mdx v7.0.5.
Yes. The postbuild step runs Pagefind, and a custom search modal provides collection filtering, result thumbnails, and a Ctrl+K shortcut.
Run bun run create in the terminal. The interactive CLI reads the content collection schemas, prompts for required frontmatter fields, validates input, and generates a date-slugged .mdx file in the appropriate collection directory.
