Skip to content
| Marketplace
Sign in
Visual Studio Code>Snippets>Prompt to Website — No AINew to Visual Studio Code? Get it now.
Prompt to Website — No AI

Prompt to Website — No AI

Anand Sundaramoorthy

|
5 installs
| (0) | Free
| Sponsor
Production front-end sites from a prompt. No model, no API key, no network.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Prompt to Website — No AI

Prompt to Website — No AI

Describe the site. Get the site. No model, no API key, no network.

Marketplace Installs Downloads CI License PRs Welcome


A Visual Studio Code extension that turns a sentence into a complete, accessible, dependency-free website — HTML, CSS, JavaScript, or Bootstrap — by composing a curated corpus of human-authored blocks. Every site is reproducible byte for byte, audited against WCAG 2.2 AA, and ships a provenance file proving no model was involved. No API key. No network. No AI.


Table of Contents

  • About
  • Why This Extension
  • Features
  • The Prompt Stack
  • Installation
  • Usage
  • Commands
  • Settings
  • How It Works
  • Output Stacks
  • Accessibility
  • Build From Source
  • Contributing
  • Roadmap
  • Star History
  • License
  • Acknowledgments

📖 About

You type a 4 page site for a bakery called Sunrise with a menu page. About ten milliseconds later you have four finished pages — real copy, working navigation, a menu with prices, a contact form, sitemap, favicon and README.

Nothing was generated by a language model. The extension reads your sentence with a hand-written lexicon, picks a recipe, and assembles blocks a person wrote and audited. That is why the output is identical every time you run it, and why it works on a plane.


🎯 Why This Extension

AI-generated code is measurably worse on the axes that matter for a site you have to maintain.

AI-generated vs human-written code Multiple
Total issues introduced 1.7×
Logic and correctness errors 1.75×
Security findings 1.57×
Technical debt growth within 6 months 30–41%

Accessibility is the thing generators skip most consistently — and since 28 June 2025 the European Accessibility Act has made it a legal requirement for anyone selling to consumers in the EU, wherever the business is based.

AI generates code that looks right. This generates code that is known-good.

There is also a growing set of places where AI codegen is simply not allowed — Flathub bans AI-generated submissions, Codeberg members voted to prohibit primarily-AI-written repositories, and GCC excludes LLM-derived contributions. Every site produced here carries a PROVENANCE.txt you can hand to a reviewer.


✨ Features

🧩 Deterministic Generation (No Model, No Network)

  • Hand-written lexicon across 8 site types — SaaS, restaurant, portfolio, agency, conference, shop, pet shop, and a generic business fallback for everything else
  • Weighted scoring with negative terms, so "a bakery site, no dashboards" is not read as software
  • Unknown words are reported, never guessed — you always know what was ignored
  • A word map in the Studio panel shows which of your words mapped to what
  • Same prompt, same site, byte for byte, forever

🗂 80-Block Corpus

  • 80 blocks across 37 categories, 23 of them with alternatives
  • Two markup variants each — Bootstrap and vanilla — from one shared manifest
  • Every block MIT-licensed, human-authored, with a dated accessibility review

🖼 Icons Drawn, Not Downloaded

  • 22 inline SVG icons held in the corpus and drawn into the page — no icon font, no CDN
  • They inherit colour from their surroundings, so they cannot drift out of contrast
  • A copy bank names an icon per item; an unknown name falls back to a letter rather than leaving an empty box

🎨 Six Palettes, Four Style Axes

  • Palette, corner radius, spacing density and shadow depth, all driven from the prompt
  • A custom primary colour automatically gets a foreground that passes contrast
  • You cannot customise your way into an inaccessible site

📄 Multi-Page Sites

  • Up to six pages with shared navigation, correct relative links, sitemap and robots.txt
  • add a blog page works even for page types no recipe anticipated

🌐 Real Browser Preview

  • A local server on 127.0.0.1, opened in your browser — real DevTools, real Lighthouse
  • Loopback-only bind, no traversal above the site root, off until you ask

♿ Audited, Not Assumed

  • axe-core with target-size enabled, in both light and dark
  • Browser-driven checks for the criteria automation cannot reach
  • All 160 block pages verified, plus every page of every site type

🔒 Provable Provenance

  • PROVENANCE.txt per site: corpus hash, block hashes, prompt hash, licences
  • The prompt stack is recorded, so the site's derivation is in your own words

🧱 The Prompt Stack

A site is not one prompt. It is an ordered, editable list of statements:

[x] 1  a site for a design agency called Fernway
[x] 2  add a blog page
[x] 3  make it roomier, sharp corners, teal primary
[ ] 4  add testimonials              <- toggled off

A chat transcript is not reproducible — you cannot re-run message 7 without messages 1–6 going the same way. A stack of declarative statements is a build script.

Toggle any step off and watch the site change. Toggle it back and you get the exact original bytes. The stack lives in .promptsite/session.json with the corpus version pinned, so a replay still works months later.

No AI tool can offer this, because it has no addressable intermediate state.


📥 Installation

From VS Code Marketplace (recommended)

  1. Open Extensions (Ctrl+Shift+X / Cmd+Shift+X)
  2. Search for Prompt to Website
  3. Click Install

Or from the command line:

code --install-extension AnandSundaramoorthySa.prompt-to-website-no-ai

From a .vsix file

# Download the .vsix from Releases, then:
code --install-extension prompt-to-website-no-ai-0.1.0.vsix

Open VSX (Cursor, Windsurf, VSCodium, Gitpod)

ovsx get AnandSundaramoorthySa.prompt-to-website-no-ai

🚀 Usage

  1. Open a folder in VS Code
  2. Ctrl+Shift+P → Prompt to Website: Generate
  3. Describe the site — for example: a landing page for a project management saas called Northwind with pricing and faq
  4. Pick the folder, and the files are written
  5. Ctrl+Shift+P → Prompt to Website: Preview in browser

To change anything, keep prompting:

Prompt to Website: Refine  →  add a blog page
Prompt to Website: Refine  →  make it roomier
Prompt to Website: Refine  →  no javascript

Every refinement becomes a step in the stack, visible in the Studio panel.


⌨️ Commands

Command What it does
Prompt to Website: Generate Prompt → complete multi-page site
Prompt to Website: Refine Add a step to the prompt stack
Prompt to Website: Open Studio panel The stack, live — toggle, reorder, delete steps
Prompt to Website: Preview in browser Serve locally and open your browser
Prompt to Website: Stop preview server Stop and release the port
Prompt to Website: Insert block Add a section to any HTML file, matching its tokens
Prompt to Website: Re-theme Swap the palette across a generated site
Prompt to Website: Copy diagnostic report Redacted report for an issue. Nothing is sent

The Activity Bar carries a Prompt stack view: click a step to switch it off or on, with Generate, Refine, Preview and Studio in the view title bar.


⚙️ Settings

Setting Default Description
promptToWebsite.defaultStack bootstrap Output stack when the prompt does not name one
promptToWebsite.previewPort 5510 First port tried by the preview server. Bound to 127.0.0.1 only

There are no telemetry settings, because there is no telemetry.


🔧 How It Works

prompt
  │
  ├─▶ 1. NORMALISE   tokenise, match longest phrases first
  ├─▶ 2. CLASSIFY    weighted lexicon → site type (below a floor, it asks)
  ├─▶ 3. SLOT-FILL   recipe defaults ⊕ requested sections ⊕ stack ⊕ pages
  ├─▶ 4. RESOLVE     concrete blocks, filtered by what the stack supports
  ├─▶ 5. COMPOSE     markup + deduped CSS + token layer + generated SVGs
  └─▶ 6. HARDEN      landmarks, meta tags, sitemap, PROVENANCE.txt

The corpus is compiled into the extension at build time, so activation never touches the disk and no file is fetched at runtime. Bootstrap ships pre-built and vendored — there is no Sass step, no PostCSS, no bundler in the output.


📦 Output Stacks

Stack Ships Best for
html-css Semantic markup + token CSS. Zero JavaScript. Lightest output, locked-down environments, learning fundamentals
html-css-js Same markup + vanilla progressive enhancement Lean and interactive, no frameworks
bootstrap ⭐ Bootstrap 5.3 (vendored, MIT) + theme override Default. Familiar to clients, deepest component set

All three produce the same sections in the same order — only the implementation differs. No build step in any of them: open index.html and it works.

Interactive blocks use CSS-only patterns — <details> accordions, checkbox navigation, scroll-snap carousels — which is why html-css keeps them.


♿ Accessibility

Every block ships WCAG 2.2 AA-audited:

  • Automated — axe-core with target-size (2.5.8) explicitly enabled, light and dark
  • Browser-driven — focus-not-obscured (2.4.11), keyboard reach (2.1.1), dragging alternatives (2.5.7) and reflow at 320px (1.4.10)
  • Contrast — every token pair verified in both themes before a block can ship

Your content determines final conformance. Alt text, copy and any markup you add are outside that audit. See CLAIMS.md for exactly what is and is not claimed.


🔨 Build From Source

# 1. Clone
git clone https://github.com/anandsundaramoorthysa/prompt-to-website-no-ai.git
cd prompt-to-website-no-ai

# 2. Install dependencies (no model weights, no browser download for the extension itself)
npm install

# 3. Build — vendors Bootstrap, compiles the corpus, bundles with esbuild
npm run build

# 4. Run everything: gates, tests, and the full accessibility sweep
npm run verify

# 5. Launch the Extension Development Host
#    Press F5 in VS Code

The headless CLI shares the same core:

node dist/cli.cjs "a landing page for a saas called Northwind" --out ./site
node dist/cli.cjs --refine "add a blog page" --out ./site
node dist/cli.cjs --stack-list --out ./site

Useful scripts:

Script Purpose
npm run new-block -- hero hero-centred "Centred" Scaffold a block, both variants + manifest
npm run check:tokens Reject raw colours, raw spacing, physical properties, opacity on text
npm run check:icons Reject any icon a copy bank names but the set lacks
npm run check:contrast Verify every token pair in both themes
npm run check:size Package-size budget against the 40 MB Marketplace cap
npm run audit:coverage Render all 160 block pages and audit every one

👥 Contributing

Contributions are very welcome — especially blocks.

Read CONTRIBUTING.md first. The short version:

  1. npm run new-block -- <category> <slug> "Label"
  2. Write the markup and CSS, tokens only, logical properties only
  3. Add copy under "<category>.<slot>" in a copy bank
  4. Replace every TODO in meta.json, including the dated manual review
  5. npm run verify

The one rule that matters: every block must be MIT-origin or original work, authored by a person. CI rejects anything else. Please do not paste from sources with attribution requirements or anti-compete terms.

By participating you agree to the Code of Conduct.


🗺 Roadmap

  • [ ] Tailwind output as a fourth stack
  • [ ] More site types — gym, school, charity, medical practice
  • [ ] Copy banks in more languages, with RTL recipes
  • [ ] Block browser in the sidebar with visual previews
  • [ ] move and rename refinement verbs surfaced in the Studio panel
  • [ ] Optional bundled OFL fonts for distinctive typography, still zero external requests

Have a request? Open an issue.


⭐ Star History

Star History Chart


📄 License

This project is released under the MIT License. You are free to use, modify, and distribute it under the terms of this license. See the LICENSE file for the full text.

Sites you generate are yours. No attribution required, no obligations inherited, no restrictions on commercial use. The MIT notices under assets/ cover only the third-party files bundled alongside your site.

No paid tier, no licence keys, no telemetry. Ever.


🙏 Acknowledgments

Built with these excellent open-source projects:

  • Bootstrap — vendored for the default output stack
  • axe-core — the automated half of the accessibility gate
  • Playwright — drives the browser checks axe cannot reach
  • esbuild — single-file bundling, fast enough to forget about
  • VS Code Extension API — webviews, quick picks and the status bar

GitHub · Marketplace · Issues · Discussions

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft