Two-column profile card with bio, photo, social icons, and navigation managed through EmDash CMS
emdash-theme-persona-bio — Astro Portfolio Template
By ahmetcigsar
A personal profile and blog theme for EmDash CMS and Astro, MIT-licensed, English by default with optional Turkish routing.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Preview provided in the project README.
One original preview is available. Open the full image to inspect the design.
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Blog archive supports list and grid views, with post pages, categories, tags, search, and RSS
Light, dark, and system-following appearance modes, with responsive navigation
English by default, with optional Turkish routing under the /tr/ prefix
Integrated EmDash editing, drafts, publishing, SEO, and preview capabilities
Sample content is original and contains no personal accounts, tracking IDs, or production credentials
Template Details
Persona Bio is a personal profile and blog theme built for EmDash CMS and based on Astro, configured for Cloudflare Workers. It provides a two-column profile card where the name, bio, photo, social icons, and navigation are all managed through the CMS; the blog section includes list and grid archive views, post pages, categories, tags, search, and RSS. The theme uses English by default and can provide optional Turkish routing under the /tr/ prefix, and it supports light, dark, and system-following appearance modes.
This repository is a complete Astro template, not a ZIP package that can be activated directly in the EmDash admin panel. Existing EmDash sites that want to use it should merge the layouts, components, styles, and routes into a separate branch and add the bio_profiles collection and required menus, rather than replacing the database, content, or deployment configuration. Seed files do not automatically migrate an already-initialized database.
Before use, note the following: local development runs through a local Cloudflare simulation, while production deployment requires creating your own D1 database and R2 bucket and replacing the placeholder configuration in wrangler.jsonc; the repository's included GitHub Actions workflow only performs validation and does not deploy. The theme directory entry is located locally on the site, and this repository is not an EmDash public marketplace listing. The demo screenshots come from a live site using this theme and show that site's own content and customizations; the starter template contains only generic sample content.
Is it right for your project?
Use Cases
- Building a standalone site with a personal profile as the homepage and accompanying blog writing
- Managing profile information, navigation menus, and post content in EmDash CMS
- Sites that need English as the primary language and optionally provide a Turkish interface
- Deploying to Cloudflare Workers and using D1 and R2 as data and storage resources
- Using as a new project template initialized via GitHub Use this template or the npm create astro command
Suitable For
- Developers using EmDash CMS who want a ready-made personal profile and blog frontend
- Teams familiar with Astro and pnpm workflows that can configure Cloudflare resources themselves
- Theme users who need an MIT-licensed theme that can be modified and used in commercial projects
- Maintainers of existing EmDash sites willing to introduce the theme through a branch merge
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Use Node.js 22 and the pnpm version declared in package.json, then run pnpm install and pnpm dev.
- 2
Visit http://localhost:4321/_emdash/admin to complete first-time setup; an empty database applies the built-in seed, and you can choose whether to include sample content.
- 3
Create a homepage profile with the slug personabio in Theme Profiles; after completing initial setup, restart the development server so EmDash regenerates collection types based on the initialized schema.
- 4
Before deployment, create your own D1 database and R2 bucket in Cloudflare, and update the Worker name, D1 name and ID, and R2 bucket name in wrangler.jsonc; the all-zero database ID in the repository is only a local development placeholder.
- 5
Copy .env.example to .env and set SITE_URL to the public HTTPS origin, provide the same variable in the build environment, then run pnpm deploy and complete setup at /_emdash/admin on the production site.
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license in the public repository; the free scope is the code of that version and does not mean external services or third-party assets are free.
Must comply with when using
- You may use, modify, commercialize, and distribute the code of this version for free.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- Production deployment requires creating your own D1 database and R2 bucket on Cloudflare, which is an external service resource requirement, not a code license restriction.
- Deployment requires your own Cloudflare account and authentication through Wrangler, involving an external account.
- You need to configure the SITE_URL environment variable to the public HTTPS origin, and the build environment must also provide the same variable.
- This repository is a complete Astro template and cannot be activated directly as a ZIP in the EmDash admin panel; existing sites must introduce it through a branch merge.
- Seed files do not automatically migrate an already-initialized database; existing sites need to manually add collections and menus.
- Dependencies and fonts retain their own licenses; consult the third-party notices files.
- Demo images, fonts, icons, and other third-party assets must be checked under their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur separate charges.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
Create your own D1 database and R2 bucket in Cloudflare.
Original README
Authenticate Wrangler to your own Cloudflare account and run `pnpm deploy`.
Original README
Copy `.env.example` to `.env` and set `SITE_URL` to your public HTTPS origin.
Original README
This is a complete Astro template, not a ZIP that can be activated from the admin panel.
Original README
Seed files do not automatically migrate initialized databases.
Original README
https://github.com/ahmetcigsar/emdash-theme-persona-bio/blob/main/LICENSEhttps://github.com/ahmetcigsar/emdash-theme-persona-bio/blob/main/README.mdDependencies and fonts retain their own licenses; see [third-party notices](THIRD_PARTY_NOTICES.md).
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-03. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 76 / 100
- Technologies
- Astro
- Website type
- Portfolio · Blog
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-09-21
- Screenshot last checked
- 2026-10-03
No demo link is recorded. Use the repository instructions to evaluate the project locally; the screenshot alone cannot establish interactive behavior.
The catalog identifies Astro as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Automatically checked against source and license rules; no manual editorial review.
Inspect the recorded source material
SHA-256: 9da0d133b3bec1c9d707676421f256f4c10292920bb22753c2e1661d44bda52b
2026-10-03T00:48:08.899Z
Source file / repository# Persona Bio [](LICENSE) A responsive personal profile and blog theme for [EmDash CMS](https://emdashcms.com/), built with Astro and configured for Cloudflare Workers. [Download ZIP](https://github.com/ahmetcigsar/emdash-theme-persona-bio/archive/refs/heads/main.zip) · [Use this template](https://github.com/new?template_name=emdash-theme-persona-bio&template_owner=ahmetcigsar) · [Theme guide](docs/theme.md) ## Live screenshots English screenshots from [ahmet.bio](https://ahmet.bio/en/), a live site using Persona Bio. These show the site's own content and customization; the starter includes generic sample content. ### Homepage — desktop  ### Posts — desktop  ### Mobile | Homepage | Posts | | --- | --- | |  |  | Captured from the live English pages in dark mode. Screenshots are showcase material; the theme code remains MIT-licensed. See [third-party notices](THIRD_PARTY_NOTICES.md) for screenshot content attribution. ## Features - Two-column profile card with CMS-managed biography, photo, social icons, and navigation - Blog archives with list and grid views, article pages, categories, tags, search, and RSS - Light, dark, and system appearance modes with responsive navigation - English by default; optional Turkish routes under `/tr/` - EmDash editing, drafts, publishing, SEO, and preview integration - Original sample content; no personal accounts, tracking IDs, or production credentials ## Start a new site Use GitHub's **Use this template** button, download the ZIP, or run: ```bash npm create astro@latest -- --template github:ahmetcigsar/emdash-theme-persona-bio ``` Inside your new project, use Node.js 22 and the pnpm version declared in `package.json`: ```bash pnpm install pnpm dev ``` Open `http://localhost:4321/_emdash/admin` and complete first-time setup. Local development uses local Cloudflare emulation; production resource IDs are not required for this step. On an empty database, EmDash applies the bundled seed. Include sample content to get the example profile, About page, and post; without samples, create and publish your own entries. Create the homepage profile with slug `personabio` in **Theme Profiles**. Restart the dev server after completing initial setup so EmDash regenerates collection types from the initialized schema. ```bash pnpm typecheck pnpm build ``` ## Customize - **Theme Profiles:** edit the `personabio` entry's name, biography, and photo. - **Menus:** edit `primary` for navigation and `social` for social links. - **Site settings:** change the site title and tagline. - **Posts / Pages:** replace the sample writing with your own content. - **Styles:** edit `src/styles/personabio.css`, `theme.css`, and `appearance.css`. - **Favicon:** replace `public/favicon.svg`. Documentation and developer-facing descriptions are in English. Turkish interface translations are optional runtime content, separate from documentation. ## Deploy to Cloudflare 1. Create your own D1 database and R2 bucket in Cloudflare. 2. Update `wrangler.jsonc`: set your Worker name, D1 name and ID, and R2 bucket name. The included all-zero database ID is a local-development placeholder. 3. Copy `.env.example` to `.env` and set `SITE_URL` to your public HTTPS origin. Provide the same variable in any build environment. 4. Authenticate Wrangler to your own Cloudflare account and run `pnpm deploy`. 5. Complete setup on the production site's `/_emdash/admin` route. Local development data is not copied into production automatically. The included GitHub Actions workflow only validates the project. It does not deploy anything or require deployment secrets. Cloudflare's Astro adapter configures its image and session bindings during the build; review the generated deployment configuration for your account before deploying. ## Existing EmDash sites This is a complete Astro template, not a ZIP that can be activated from the admin panel. For an existing site, merge the theme's layouts, components, styles, and routes into a separate branch, then add the `bio_profiles` collection and required menus without replacing your database, content, or deployment configuration. Seed files do not automatically migrate initialized databases. The theme catalog entry is local to the site. This repository is not a public EmDash marketplace listing. ## Routes | Page | Route | | --- | --- | | Profile | `/` | | Posts | `/posts` | | Post or page | `/:slug` | | Category / tag | `/category/:slug`, `/tag/:slug` | | Search | `/search` | | RSS | `/rss.xml` | | Static theme demo | `/themes/personabio/demo` | | CMS content preview | `/themes/personabio/preview` | Content routes also support the `/tr/` prefix. Pages take precedence if a post and a page use the same slug. Reserve built-in route names such as `posts`, `search`, `category`, `tag`, and `tr`. ## License Persona Bio is distributed under the [MIT License](LICENSE). You may use, modify, and redistribute the theme, including in commercial projects, under the terms of that license. Retain the copyright and permission notices when distributing copies or substantial portions of the software. The theme is provided without warranty. Bundled sample text and SVG placeholders are covered by the same license. Dependencies and fonts retain their own licenses; see [third-party notices](THIRD_PARTY_NOTICES.md). Content you publish on your own site is not automatically licensed under MIT.
Explore similar templates
Compare previews and descriptions within the same stack and category.

astrowind
AstroWind is a free, open-source Astro starter theme using Astro and Tailwind CSS, released under the MIT license.
Astro · Blog

astro-paper
AstroPaper is a minimal, responsive, accessible, and SEO-friendly Astro blog theme. Articles are stored as Markdown/MDX in src/content/posts/, with subdirectories affecting URLs.
Astro · Blog

fuwari
Fuwari is a static blog template built with Astro and Tailwind CSS for personal blogs. It manages posts as Markdown files in src/content/posts/, with frontmatter for title, date, description, cover, tags, categories, draft status, and language.
Astro · Blog

Firefly
Firefly is a clean personal blog theme forked from Astro and Fuwari, offering four background modes, single/double sidebar and list/grid layouts, Pagefind client-side full-text search, and a six-language UI.
Astro · Blog

astro-theme-cactus
Astro Cactus is an Astro-based blog and portfolio theme that uses Markdown/MDX content collections to manage posts, notes, and tags, with frontmatter type-checked by a schema.
Astro · Portfolio

astrofy
Astrofy is a free and open-source personal portfolio website template built with Astro and TailwindCSS, with built-in blog, CV timeline, project showcase, store, and RSS feed modules.
Astro · Portfolio
