Built with Astro, supporting server-side rendering on Cloudflare Workers
sanju.sh — Astro Portfolio Template
By Spikeysanju
A personal website template built with Astro, featuring writing, thoughts, and project showcases, with support for dynamic OG images and self-hosted fonts.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 2
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Includes three content sections: writings, thoughts, and ships
Generates dynamic OG images for each article at the edge via SVG and resvg-wasm
Self-hosted Uncut Sans font with four weights and woff2/woff fallbacks
Uses TailwindCSS, TypeScript, and Biome for styling, typing, and code quality
Code is open source under Apache-2.0
Template Details
sanju.sh is the source code for developer Spikeysanju's personal website, using Astro as the static site generation framework and deployed on Cloudflare Workers. The site presents a minimalist monochrome color scheme with one accent color, with content centered on personal writing and projects.
In terms of content structure, the site is divided into sections for writings (blog posts and long-form articles), thoughts (short ideas similar to tweets or quotes), and ships (project showcases). Articles are written in Markdown for easy reading and maintenance.
On the technical side, the project uses TailwindCSS for styling, TypeScript for type checking, and Biome for formatting and linting. Dynamic OG images are generated at the edge via SVG and resvg-wasm, and fonts use self-hosted Uncut Sans (four weights, with woff2 and woff fallbacks). The deployment process builds and then publishes via Wrangler as a Cloudflare Worker named sanju; the Astro Cloudflare adapter outputs a server bundle and static assets.
Regarding licensing, the code is released under Apache-2.0, allowing free use, modification, commercial use, and distribution, provided the license is included and attribution notices are retained; third-party assets such as demo images and fonts must be checked separately for their licenses.
Is it right for your project?
Use Cases
- Building a personal website or blog focused on text content
- Showcasing personal projects and short thoughts while publishing long-form articles
- Sites that need automatically generated share preview images for each article
- Developers who want to deploy an Astro site to Cloudflare Workers
Suitable For
- Individual developers who prefer a minimalist monochrome design style
- Those using Astro who want a reference for a content-focused site structure
- Site authors who need self-hosted fonts and a dynamic OG image solution
- Users who accept the Apache-2.0 license terms and are willing to retain attribution notices
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
The project uses Bun as the package manager, and the build command is bun run build
- 2
Deployment is done via wrangler deploy --name sanju to publish as a Cloudflare Worker
- 3
The Astro Cloudflare adapter outputs dist/server and dist/client, and wrangler.jsonc points to the adapter entry
- 4
The README mentions that the old Cloudflare Pages project was removed after the Astro 7 migration, and production deployment should use Workers
- 5
The code is under Apache-2.0; distribution requires including the license and retaining attribution notices; third-party assets such as demo images and fonts must be checked separately for their licenses
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under Apache-2.0 in the public repository; the free scope is the code of this version and does not imply that external services or third-party assets are free.
Must comply with when using
- Free use, modification, commercial use, and distribution are permitted; distribution requires including the Apache-2.0 license.
- Modified files must prominently indicate changes and retain relevant copyright, patent, trademark, and attribution notices.
- If the original project includes a NOTICE file, applicable attribution notices must be retained when distributing derivative works.
- The license includes an applicable contributor patent grant; initiating patent litigation as described in the license terminates that patent grant, and no trademark rights are granted.
- 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
- Demo images, fonts, icons, and other third-party assets must be checked under their respective licenses; they cannot be judged solely by the code's Apache-2.0 license.
- External services such as domains, hosting, databases, payments, or AI may incur additional charges.
- Production deployment of this template depends on the Cloudflare Workers service and requires using Wrangler to publish the site as a Worker named sanju, which is an external hosting service requirement.
- Deployment requires using the Wrangler CLI and specifying a Worker name, meaning a Cloudflare account and corresponding deployment permissions are needed.
- The build output depends on Astro's Cloudflare adapter, and the server-side rendering portion must run in the Cloudflare Workers environment rather than pure static hosting.
- The README explicitly requires switching production deployment to Cloudflare Workers; the old Cloudflare Pages project has been removed, so deployment options are limited.
View Original Text Basis
no-charge, royalty-free, irrevocable copyright license
Original License Text
the site is deployed as a cloudflare worker named `sanju`.
Original README
bunx wrangler deploy --name sanju
Original README
the astro cloudflare adapter writes a worker bundle to `dist/server` and static assets to `dist/client`.
Original README
https://github.com/Spikeysanju/sanju.sh/blob/main/LICENSEhttps://github.com/Spikeysanju/sanju.sh/blob/main/README.mdthe old cloudflare pages projects were removed after the astro 7 migration. use workers for production deploys going forward.
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-05. 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
- Astro Themes
- Documentation and maintenance reference score
- More documented · 87 / 100
- Technologies
- Astro
- Website type
- Portfolio
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-10
- Screenshot last checked
- 2026-10-05
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
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.
Review declaration: [email protected] · 2026-10-06
Inspect the recorded source material
SHA-256: dac96437a47fb00ab98e4fa0c1107190e5284b1aa00821d8529d6a15cc122415
2026-10-05T18:08:02.206Z
Source file / repository # 🌐 sanju.sh – internet space hey! this is my personal corner on the web where I share my thoughts, ideas, and projects. feel free to explore and contact me if you have any questions or just want to chat. ## 📖 about project this is a simple personal website i built using [astro](https://astro.build/), a static site generator. i chose Astro for its speed, flexibility, and ease of use. i hope you like the site! ## ✨ features - **writings**: a collection of my blog posts and articles - **thoughts**: a place for me to share my random thoughts and ideas (more like tweets or quotes) - **dynamic og images**: auto-generated per post using svg + resvg-wasm on the edge - **self-hosted fonts**: uncut sans, four weights, woff2 + woff fallback ## 🛠️ tech stack - **astro**: content-focused web framework with ssr on cloudflare workers - **tailwindcss**: utility-first css framework for rapid prototyping - **markdown**: for writing content in a simple and easy-to-read format - **typescript**: for type-checking and better code quality - **biome**: Format, lint, and more in a fraction of a second. - **cloudflare workers**: hosts the production site with static assets and server rendering ## 🎨 design - i wanted to keep the design simple and clean. i used a monochrome color scheme with a pop of color for the accent. - i also used a lot of whitespace to make the content easy to read and navigate. - i'm a big fan of minimalism and KISS (keep it simple, stupid) and i think it works well for a personal website like this. - i hope you like the design as much as i do! ## 🚀 deployment the site is deployed as a cloudflare worker named `sanju`. ```bash bun run build bunx wrangler deploy --name sanju ``` the astro cloudflare adapter writes a worker bundle to `dist/server` and static assets to `dist/client`. `wrangler.jsonc` points at the cloudflare adapter entrypoint, and wrangler follows the generated `dist/server/wrangler.json` during deploy. the old cloudflare pages projects were removed after the astro 7 migration. use workers for production deploys going forward. ## 🤝 contributing if you have ideas or suggestions, feel free to open an issue or submit a pull request. i'm open to collaborations and contributions. ## 📬 contact you can reach me at [email protected] or on twitter. don't hesitate to get in touch! ## 📜 license this project is open source under the Apache License 2.0. you're welcome to use the code for your own projects. if you do, a shoutout would be appreciated but it's not required.
Explore similar templates
Compare previews and descriptions within the same stack and category.

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

astro-nano
Astro Nano is a static, minimalist portfolio and blog template built with Astro, Tailwind, and TypeScript without frontend frameworks. It includes light/dark themes, animated UI, automatic sitemap and RSS feed generation, and Markdown/MDX support with component imports.
Astro · Portfolio

astro-erudite
astro-erudite is an opinionated, unstyled static blog template built with Astro and native CSS, with no UI or CSS framework and minimal dependencies.
Astro · Portfolio

astro-sphere
Astro Sphere is a static, minimalist portfolio and blog theme maintained by markhorn-dev, built mainly with Astro, Tailwind, and TypeScript, with a small amount of SolidJS for stateful components.
Astro · Portfolio

astro-micro
Astro Micro is a framework-free blog and portfolio theme for Astro, forked from Astro Nano. It adds Pagefind search and Giscus comments while retaining type safety, sitemap, RSS, Markdown and MDX support, and TailwindCSS with system, light, and dark themes.
Astro · Portfolio
