# Guren > Guren is a Bun-native fullstack TypeScript framework with Laravel-style ergonomics: MVC controllers, Drizzle ORM models, Inertia + React pages, and end-to-end type safety from route to component. Guren pairs Laravel-style conventions (controllers, models, middleware, validation) with the TypeScript ecosystem: Bun runtime, Hono HTTP, Drizzle ORM, and Inertia.js + React. Codegen keeps routes, page props, and API clients typed end to end. Every documentation page is also available as raw Markdown: append `.md` to its URL. ## Guides - [Guren at a Glance](https://guren.dev/docs/guides/overview.md): The fullstack TypeScript framework that feels like Laravel — powered by Bun. - [Why Guren](https://guren.dev/docs/guides/why-guren.md): An honest look at where Guren fits — compared with Hono, Next.js, AdonisJS, and Laravel — and why it is built the way it is. - [Getting Started](https://guren.dev/docs/guides/getting-started.md): This guide has two parts. Part A gets a fresh Guren app running in about five minutes with SQLite — no Docker, no database server. Part B covers the full setup: Postgres or MySQL, environment variables, feature generators, and production builds. Start with Part A; come back to Part B when you need it. - [First Steps: A 10-Minute Tour of One Request](https://guren.dev/docs/guides/first-steps.md): This tour follows a single request — GET /posts — through every layer of a Guren app: route, controller, validation, model, resource, Inertia page, and test. Read it to build a mental map; each stop links to the guide that goes deeper. - [Architecture](https://guren.dev/docs/guides/architecture.md): Guren reimagines Laravel's design principles in TypeScript, tying together Bun, Hono, Inertia.js, React, and Drizzle ORM into a full-stack MVC framework. This document outlines the end-to-end flow from routing to response generation and explains the main building blocks. - [Routing](https://guren.dev/docs/guides/routing.md): Routes map URLs to your application logic. They define what happens when a user visits /posts, submits a form, or hits an API endpoint. In vNext-style apps, each application owns a Router instance and route files export a registrar function instead of mutating a global registry. - [Controllers](https://guren.dev/docs/guides/controllers.md): Controllers are where your application logic lives. They receive HTTP requests, interact with models and services, and return responses. Think of them as the glue between what the user asks for and what your app delivers. - [Middleware Guide](https://guren.dev/docs/guides/middleware.md): Guren routes and applications share Hono's middleware model but expose Laravel-style ergonomics for common tasks. You can register middleware globally on the Application instance, per-route via the routing DSL, or through named aliases and groups. - [CSRF Protection](https://guren.dev/docs/guides/csrf.md): Cross-Site Request Forgery (CSRF) protection prevents malicious websites from submitting forms on behalf of authenticated users. Guren provides built-in CSRF middleware that integrates seamlessly with sessions. - [Validation](https://guren.dev/docs/guides/validation.md): Guren's primary validation path is schema-first. Use Zod-compatible schemas in controllers, route definitions, or middleware so request parsing and type inference stay in one place. A legacy FormRequest compatibility layer still exists for migrations. - [Error Handling](https://guren.dev/docs/guides/error-handling.md): Guren provides multiple layers of error handling, from a centralized ExceptionHandler to controller-level exception catching. Built on Hono's robust error handling primitives, you can customize how errors are displayed to users in both development and production. - [Database](https://guren.dev/docs/guides/database.md): Guren uses Drizzle ORM and supports PostgreSQL, SQLite, and MySQL. You define your schema in TypeScript, derive models from those tables, and get a fluent query API that feels like Laravel Eloquent while staying fully type-safe. - [Frontend Guide](https://guren.dev/docs/guides/frontend.md): Guren delivers a single-page application experience by combining Inertia.js with React. Controllers return Inertia responses, and the frontend renders the matching React components located under resources/js/pages/. - [Authentication Guide](https://guren.dev/docs/guides/authentication.md): Guren ships with a Laravel-inspired authentication stack that sits on top of the session middleware and the ORM layer. The goal is to match the expressiveness of Laravel's guards and user providers while staying idiomatic to TypeScript and Bun. - [OAuth Guide](https://guren.dev/docs/guides/oauth.md): Guren ships an OAuth 2.0 authorization-code flow for "Sign in with GitHub / Google / Discord" style login. It handles the redirect, CSRF-safe state, token exchange, and profile fetch — you wire it into your own login controller and session. - [Authorization](https://guren.dev/docs/guides/authorization.md): Authorization determines what an authenticated user is allowed to do. Guren provides a policy-based authorization system inspired by Laravel. - [API Tokens Guide](https://guren.dev/docs/guides/api-tokens.md): Guren provides a secure API token system for authenticating API requests. Tokens are hashed before storage, support abilities (scopes), and can have expiration times. - [Password Reset Guide](https://guren.dev/docs/guides/password-reset.md): Guren provides a secure password reset system with token generation, verification, and expiration. Tokens are hashed before storage for security. - [Email Verification Guide](https://guren.dev/docs/guides/email-verification.md): Guren provides a secure email verification system with token generation, verification, and expiration. Tokens are hashed before storage for security. - [Encryption & Hashing](https://guren.dev/docs/guides/encryption.md): Guren provides utilities for encrypting data and hashing passwords securely. - [Events Guide](https://guren.dev/docs/guides/events.md): Guren provides a simple yet powerful event system for decoupling components in your application. Events allow you to broadcast occurrences in your application that other parts can listen and react to. - [Queue Guide](https://guren.dev/docs/guides/queue.md): Guren provides a robust queue system for deferring time-consuming tasks to be processed in the background. This is essential for maintaining fast response times while handling operations like sending emails, processing uploads, or making external API calls. - [Cache Guide](https://guren.dev/docs/guides/cache.md): Guren provides a unified caching API with support for multiple storage backends. Caching helps improve application performance by storing expensive computations or database queries for quick retrieval. - [Mail Guide](https://guren.dev/docs/guides/mail.md): Guren provides a fluent API for sending emails with support for multiple transport backends. The mail system integrates with the queue system for async sending and supports HTML templates, attachments, and more. - [Notifications Guide](https://guren.dev/docs/guides/notifications.md): Guren provides a unified API for sending notifications across multiple channels like email, database, Slack, and more. Notifications are class-based, making them reusable and easy to test. - [Broadcasting Guide](https://guren.dev/docs/guides/broadcasting.md): Guren provides a broadcasting system for real-time event broadcasting to connected clients. This is useful for building features like live notifications, chat applications, and real-time dashboards. - [Storage Guide](https://guren.dev/docs/guides/storage.md): Guren provides a unified file storage API with support for multiple storage backends. The storage system makes it easy to work with local filesystems, Amazon S3, and other cloud storage providers with a consistent interface. - [Task Scheduling Guide](https://guren.dev/docs/guides/scheduling.md): Guren provides a fluent API for defining scheduled tasks within your application. Instead of managing multiple cron entries, you can define your entire task schedule in code. - [Rate Limiting Guide](https://guren.dev/docs/guides/rate-limiting.md): Guren provides a flexible rate limiting system to protect your application from abuse. It supports multiple storage backends, custom key generators, and both fixed and sliding window algorithms. - [Logging Guide](https://guren.dev/docs/guides/logging.md): Guren provides a flexible logging system with multiple channels, log levels following RFC 5424, and contextual logging support. - [Health Checks](https://guren.dev/docs/guides/health-checks.md): Guren provides a comprehensive health checking system to monitor your application's dependencies and services. Use health checks to expose a /health endpoint for load balancers, orchestrators, and monitoring tools. - [Internationalization (i18n) Guide](https://guren.dev/docs/guides/i18n.md): Guren provides a comprehensive internationalization system with translation management, pluralization support for multiple languages, and both file-based and memory-based loading. - [API Resources](https://guren.dev/docs/guides/api-resources.md): API Resources provide a transformation layer between your models and API responses. They give you fine-grained control over how data is serialized to JSON. - [Testing](https://guren.dev/docs/guides/testing.md): A single well-written test catches bugs before your users do. Guren makes testing so convenient that writing tests feels faster than manually checking things in a browser. - [Deployment Guide](https://guren.dev/docs/guides/deployment.md): This guide summarizes the steps required to promote a freshly scaffolded Guren application to production. It assumes you generated your project with create-guren-app and that you have a PostgreSQL instance available. - [Serverless Deployment (AWS Lambda)](https://guren.dev/docs/guides/serverless.md): Guren runs on AWS Lambda via the @guren/core/lambda adapter. This guide covers the full serverless stack — HTTP, queues, scheduled tasks, CLI commands, and infrastructure. - [Production Operations Runbook](https://guren.dev/docs/guides/operations.md): This runbook defines minimum reliability operations before GA. - [Build an Auth App](https://guren.dev/docs/guides/build-auth-app.md): This guide walks you through building an application with user registration, login, and protected routes. You will go from an empty directory to a working auth flow in under ten minutes. - [Ship an API](https://guren.dev/docs/guides/ship-api.md): This guide walks you through building and shipping a JSON API with Guren. You will scaffold an API-only project, define a database schema, create controllers with validation, and test your endpoints. - [Deploy to Production](https://guren.dev/docs/guides/deploy-production.md): This guide covers the essential steps to take a Guren application from local development to a production environment. It focuses on Docker-based deployment with Bun. - [Troubleshoot a Broken Setup](https://guren.dev/docs/guides/troubleshoot.md): This guide covers the most common issues you will encounter when developing with Guren and how to fix them quickly. When something goes wrong, start here before diving into individual package documentation. - [CLI Reference](https://guren.dev/docs/guides/cli.md): Guren ships with two companion CLIs: - [Plugin Authoring Guide](https://guren.dev/docs/guides/plugins.md): This guide walks you through creating, testing, and publishing a Guren plugin. - [Support Matrix](https://guren.dev/docs/guides/support-matrix.md): | Runtime | Versions | Status | - [Upgrading Guren](https://guren.dev/docs/guides/upgrading.md): Use this guide for minor-to-minor upgrades. - [Release & Compatibility Policy](https://guren.dev/docs/guides/release-policy.md): This document defines the minimum release contract for production use. - [Glossary](https://guren.dev/docs/guides/glossary.md): Short definitions for common terms in the Guren docs. ## Tutorials - [Tutorials: Build a Mini Blog](https://guren.dev/docs/tutorials/overview.md): This tutorial series takes you from an empty directory to a small but real blog application. You build it one layer at a time — schema, model, validator, controller, routes, React pages — so by the end you understand how every piece of a Guren app fits together. - [Part 1: Create a Blog Post App](https://guren.dev/docs/tutorials/create-blog-post-app.md): In this part you build the heart of the blog: creating, listing, and reading posts. You write every file by hand — table, model, validator, controller, routes, and pages — so you see exactly how a request travels through a Guren application. - [Part 2: Add Authentication](https://guren.dev/docs/tutorials/authentication.md): Your blog from Part 1 lets anyone publish posts. In this part you add user accounts with one command, put post creation behind a login wall, and attach an author to every post. - [Part 3: Relationships: Comments](https://guren.dev/docs/tutorials/relationships.md): Your blog has posts and authors from Part 2. In this final part, readers get a voice: you add a comments table that belongs to both a post and a user, wire up the model relationships, and build a comment form on the post page. ## Optional - [Full documentation as one file](https://guren.dev/llms-full.txt) - [GitHub repository](https://github.com/gurenjs/guren) - [Japanese documentation](https://guren.dev/docs/ja)