Overview
Build a minimal HTTP server withBun.serve, run it locally, then evolve it by installing a package.
Prerequisites: Bun installed and available on your
PATH. See installation for setup.1
Step 1
Initialize a new project with The new
bun init.terminal
bun init prompts you to pick a template: Blank, React, or Library. For this guide, pick Blank.terminal
my-app directory contains a basic Bun app.2
Step 2
Run
index.ts with bun run.terminal
3
Step 3
Replace the contents of Run Visit
Then add the following to your
index.ts with the following code:index.ts
index.ts again.terminal
http://localhost:3000 to test the server. You should see a page that says "Bun!".Seeing TypeScript errors on Bun?
Seeing TypeScript errors on Bun?
bun init installs Bun’s TypeScript declarations and configures your tsconfig.json. If you’re trying out Bun in an existing project, you may see a type error on the Bun global.To fix this, first install @types/bun as a dev dependency.terminal
compilerOptions in tsconfig.json:tsconfig.json
4
Step 4
Install the Update Run Visit
figlet package and its type declarations. Figlet is a utility for converting strings into ASCII art.terminal
index.ts to use figlet in routes.index.ts
index.ts again.terminal
http://localhost:3000/figlet to test the server. You should see a page that says "Bun!" in ASCII art.5
Step 5
Now add some HTML. Create a new file called Then, import this file in Run Visit
index.html:index.html
index.ts and serve it from the root / route.index.ts
index.ts again.terminal
http://localhost:3000 to test the server. You should see the static HTML page.Run a script
Bun can also execute"scripts" from your package.json. Add the following script:
package.json
bun run start.
terminal
⚡️ Performance —
bun run is roughly 28x faster than npm run (6ms vs 170ms of overhead).