🚀 Version 0.1.0 Released

Build Faster with Oven 🔥

The Next.js-style full-stack framework for Bun

เฟรมเวิร์ค Full-stack สไตล์ Next.js สำหรับ Bun

Get Started → ⭐ GitHub
4x
Faster than Node.js
เร็วกว่า Node.js
0ms
Cold Start
Cold Start
100%
TypeScript
TypeScript
Possibilities
ความเป็นไปได้

Features

ความสามารถที่ครบครัน

📁

App Router

ระบบ Routing

Next.js-style file-based routing with nested layouts, loading states, and error boundaries.

ระบบ routing แบบ Next.js รองรับ layouts ซ้อนกัน, loading states และ error boundaries

Blazing Fast

เร็วสุดขีด

Powered by Bun runtime - up to 4x faster than Node.js with native TypeScript support.

ขับเคลื่อนด้วย Bun runtime เร็วกว่า Node.js ถึง 4 เท่า รองรับ TypeScript

🎨

SSR Built-in

SSR พร้อมใช้

Server-side rendering out of the box with streaming support for optimal performance.

Server-side rendering พร้อมใช้งาน รองรับ streaming เพื่อประสิทธิภาพสูงสุด

🔌

API Routes

API Routes

Create RESTful APIs with route.ts files. Support GET, POST, PUT, DELETE and more.

สร้าง RESTful API ด้วยไฟล์ route.ts รองรับ GET, POST, PUT, DELETE

📦

TypeScript First

TypeScript

Full TypeScript support with type safety, auto-completion, and better developer experience.

รองรับ TypeScript เต็มรูปแบบ type safety และ auto-completion

🧩

Nested Layouts

Layouts ซ้อนกัน

Compose UIs with nested layouts and route groups for better code organization.

สร้าง UI ด้วย layouts ซ้อนกันและ route groups เพื่อจัดระเบียบโค้ด

Simple & Intuitive

เรียบง่ายและใช้งานง่าย

📄 app/page.tsx
import type { PageProps } from 'oven';

export const metadata = {
  title: 'Home',
  description: 'Welcome to my app',
};

export default function Home({ searchParams }: PageProps) {
  return `
    <h1>Hello, Oven! 🔥</h1>
    <p>Build amazing apps with Bun</p>
  `;
}
📄 app/api/users/route.ts
// GET /api/users
export async function GET(request: Request) {
  const users = await db.users.findMany();
  return Response.json(users);
}

// POST /api/users
export async function POST(request: Request) {
  const body = await request.json();
  const user = await db.users.create(body);
  return Response.json(user, { status: 201 });
}

Ready to Start?

Get up and running in seconds

# Create a new project
bunx oven create my-app

# Navigate to project
cd my-app

# Start development server
bun run dev

# Open http://localhost:3000 🚀

Project Structure

โครงสร้างโปรเจค

my-app/
├── app/
│   ├── layout.tsx        # Root layout
│   ├── page.tsx          # Home page (/)
│   ├── loading.tsx       # Loading UI
│   ├── error.tsx         # Error boundary
│   ├── not-found.tsx     # 404 page
│   │
│   ├── about/
│   │   └── page.tsx      # About (/about)
│   │
│   ├── blog/
│   │   ├── layout.tsx    # Blog layout
│   │   ├── page.tsx      # Blog list (/blog)
│   │   └── [slug]/
│   │       └── page.tsx  # Blog post (/blog/:slug)
│   │
│   ├── api/
│   │   └── users/
│   │       ├── route.ts  # API (/api/users)
│   │       └── [id]/
│   │           └── route.ts  # API (/api/users/:id)
│   │
│   └── (dashboard)/      # Route group
│       ├── layout.tsx    # Dashboard layout
│       └── dashboard/
│           └── page.tsx  # Dashboard (/dashboard)
│
├── public/               # Static files
├── components/           # Shared components
└── oven.config.ts        # Configuration
          

Explore More

สำรวจเพิ่มเติม

📚 Documentation 📝 Blog 📊 Dashboard Demo 🔌 API Demo