Skip to content
View abelinkinbio's full-sized avatar

Block or report abelinkinbio

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
abelinkinbio/README.md

@abelinkinbio — v3.0.0

Personal site built with Astro + Cloudflare Workers.

Blueprint design system · Dark/light mode · Content collections · Map-ready architecture.

Quick Start

# Install dependencies
npm install

# Run local dev server
npm run dev

# Build for production
npm run build

# Deploy to Cloudflare Workers
npm run deploy

Project Structure

src/
  content/
    blog/              ← Long-form writing (markdown)
    livedin/
      lisbon/          ← Restaurant & café reviews by city
      dc/
      atx/
    playground/        ← Project dashboard entries

  pages/
    index.astro        ← Home
    bio.astro          ← Bio (edit directly)
    blog/              ← Blog listing + individual posts
    playground/        ← Project dashboard
    livedin/           ← City guides with maps + reviews

  layouts/
    BaseLayout.astro   ← Wraps every page (nav, footer, dark mode)

  styles/
    blueprint.css      ← The entire Blueprint design system

Adding Content

New blog post: Create a .md file in src/content/blog/:

---
title: "My Post Title"
description: "A short description"
date: 2025-01-15
tags: ["topic"]
---

Your content here.

New review: Create a .md file in src/content/livedin/{city}/:

---
title: "Restaurant Name"
description: "One-line description"
date: 2025-01-15
emoji: "🍽️"
category: "dinner"
googleMapsUrl: "https://maps.app.goo.gl/..."
tags: ["date-night"]
---

Your review here.

New project: Create a .md file in src/content/playground/:

---
title: "project-name"
description: "What it does"
date: 2025-01-15
emoji: "🧪"
status: "active"  # active | investing | shipped | killed
url: "https://..."
tags: ["tag"]
---

Details about the project.

New city: Create a new folder in src/content/livedin/ (e.g., sf/) and add review files. Then add the city's display name and emoji to the cityMeta object in:

  • src/pages/livedin/index.astro
  • src/pages/livedin/[city]/index.astro
  • src/pages/livedin/[city]/[slug].astro

Deploy to Cloudflare Workers

Your domain (abelinkinbio.com) is already on Cloudflare DNS.

  1. Install Wrangler if you haven't: npm install -g wrangler
  2. Log in: wrangler login
  3. Deploy: npm run deploy

Wrangler will build the site and push the static assets to Workers. Static asset serving is free — you don't pay per request.

Phase Roadmap

  • Phase 1 — Foundation: Astro scaffold, Blueprint design system, core pages, Workers config
  • Phase 2 — Content: Migrate all markdown from Hugo, geocode reviews from Google Maps links
  • Phase 3 — Maps: Leaflet integration on city pages, Stamen Toner Lite tiles, pin interactions
  • Phase 4 — Polish: Responsive refinement, SEO, RSS, performance audit, DNS cutover

Popular repositories Loading

  1. alert-system alert-system Public

    Emergency alert system built on Cloudflare Workers, Resend, and Twilio.

    JavaScript 2

  2. spotify-sorter spotify-sorter Public

    Spotify API wrapper to easily organize your playlists. Powered by Cloudflare Workers 🧡

    JavaScript 1

  3. cloudflare-docs cloudflare-docs Public

    Forked from cloudflare/cloudflare-docs

    Cloudflare’s documentation

    MDX

  4. abelinkinbio abelinkinbio Public

    Astro

  5. Emoji-Wrapped Emoji-Wrapped Public

    Quick and easy python tool to analyze emoji usage patterns in iMessage conversations

    Python

  6. prnt prnt Public

    HTML