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
-
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. -
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.
-
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.mdfile is enough to publish. -
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.
-
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”).
-
Deployed with a push – Once the GitHub Action was in place, I committed, pushed to
main, and the site went live athttps://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.