← AI in action ·

Building this website

FILED UNDER: AI

I wanted a personal site to write about AI, showcase my work, and make it easy for people to get in touch – without a lot of ongoing maintenance. I built it in under 3 hours using Cursor, from idea to deployed site. Here are the steps I took and how I used the AI to move quickly.

What I wanted (and told Cursor)

I started with a clear brief so the AI could help without guesswork:

  • Write: A place to publish notes and essays, especially on AI and product.
  • Showcase: A clear view of my work and background.
  • Connect: A simple, secure way for people to reach me (form + LinkedIn).
  • Structure: Something clean and editorial, not a generic portfolio. I pointed to Hardik Pandya’s site as inspiration – hero, latest essays, work timeline, get in touch – and asked Cursor to adapt that structure.

Spelling this out up front meant every prompt (“Add a work timeline”, “Add a contact form”, “Use Markdown for blog posts”) stayed aligned with the same goal.

Steps I took

  1. Defined the stack with one decision – I chose a static site so I wouldn’t manage servers or a database. I asked Cursor to use Astro and GitHub Pages. From there, Cursor set up the project, content collections, and a GitHub Action that builds and deploys on push to main.

  2. Built the structure in order – Home (hero, intro, latest notes, work preview, get in touch) → Notes index → Work timeline (editable array in code) → About → Contact. I described each page in plain language; Cursor generated the Astro components and wired the content.

  3. Moved content into Markdown – Blog posts live in src/content/blog/ with frontmatter. I said “new posts are Markdown files with title, description, date”; Cursor configured the collection and listing pages so adding a new .md file is enough to publish.

  4. Offloaded the contact form – I didn’t want a backend. I asked for a form that posts to an external service. Cursor integrated Formspree: I dropped in my form ID, and submissions go to my email with no server or exposed address.

  5. Added a single source of truth – I asked for a “contract” file so future me (or the AI) knows where to change what. Cursor helped me create ROADMAP.md – which file to edit for posts, work history, about copy, images, form, theme. When I want a change, I open ROADMAP and either edit or prompt with a clear ask (“Add my Formspree ID”, “Use avatar.jpg in the header”).

  6. Deployed with a push – Once the GitHub Action was in place, I committed, pushed to main, and the site went live at https://dsharmaai.github.io/ai/. No separate hosting dashboard; push → build → live.

How Cursor helped me ship in <3 hours

  • Scaffolding: One prompt for “Astro site with blog, work timeline, about, contact” produced a coherent project layout. I didn’t write boilerplate.
  • Content model: I described how I wanted to manage posts and work history; Cursor defined the content collections and schema so everything stayed consistent.
  • Copy-paste reduction: For repeated patterns (e.g. listing posts, work items), I described the pattern once and let Cursor generate the component and the loop.
  • Docs and config: When I asked “how do I add a new post?” or “where do I put images?”, Cursor updated ROADMAP and HOW_TO_UPDATE so I (or a collaborator) could iterate without re-reading the whole codebase.
  • Fixing and iterating: When something broke or I wanted a tweak (“move the essay to AI in action”, “fix the pubDate year”), I stated the change; Cursor made the edit and I moved on.

I didn’t hand-write every line – I gave direction, reviewed output, and corrected when needed. The result was a live, maintainable site in one short session.

What’s on the site today

  • Home – Hero, short intro, latest notes, work timeline preview, get in touch.
  • Notes – All posts with optional categories (e.g. AI, Product, Leadership).
  • AI in action – Deep dives and demos (like this one) on building with AI.
  • Work – Timeline of roles (period, title, org, description) in one editable array.
  • About – Bio, what I work on, looking ahead.
  • Contact – Form (Name, Email, Message) plus LinkedIn.

Navigation: Notes, AI in action, Work, About, Contact. “Skip to main content” for accessibility.

Why this stack

  • Astro: Content and Markdown are first-class; output is static HTML/CSS, easy to reason about and deploy anywhere.
  • GitHub Pages + Actions: Free, tied to the repo, automatic. Push → build → live.
  • Formspree: Real contact form without a backend or exposing my email to scrapers.
  • Cursor: Fast iteration with clear prompts and a single source of truth (ROADMAP) so the AI and I stayed aligned.

If you’re building something similar – a personal site to write, showcase work, and connect – this structure and flow (clear brief → Cursor-assisted build → ROADMAP for maintenance) is a solid way to go from zero to live in a few hours. If you want to go deeper on any part (e.g. adding RSS, or moving to a different host), we can iterate from here.

Each reaction counts as 1 flash point ⚡️