/inertia

A framework for creating server-driven single page apps

Primary LanguageTypeScriptMIT LicenseMIT

Inertia.js-Revamped

A framework for creating server-driven single page apps

Introduction

Overview

The article Server-side apps with client-side rendering, which Jonathan Reinink published on his blog in 2019 looked very promising as an alternative to spatie/laravel-server-side-rendering.
When Inertia.js was subsequently released, it looked like the next rising star.

However, due to the lack of development, unanswered issues and rejected pull requests at Inertia.js, we decided to continue developing a fork under the name Inertia.js-Revamped.

Current Roadmap

Application related:

  • Improve TypeScript support - Provide better type definitions for IDE and autocomplete
  • Improve application performance - Optimize the application performance and reduce required dependencies
  • Expand the test suites - Add test suites for better code control

Community related:

  • Improve user & developer experience - Optimize the docs, examples, starter-kits, workspace- and user-tools continuously
  • Collaborate with community members - Issue prioritization will be based on community feedback, please share your thoughts

Documentation

View the docs (currently in development) at inertiajs-revamped.com.

Directory Structure

Inertia.js-Revamped is using Laravel Vite conventions for a consistent and organized architecture:

example-app
└── resources
    ├── application
    │   ├── app.css    
    │   ├── main.tsx
    │   └── ssr.tsx
    ├── types
    │   └── inertia.d.ts
    └── views
        ├── components
        │   └── button.tsx
        ├── layouts
        │   └── default.tsx
        ├── pages
        │   ├── about.tsx
        │   └── home.tsx
        └── app.blade.php

Rundown

  • File and directory names use kebab-case instead of StudlyCase
  • The app.blade.php is stored in resources/views
  • Main entrypoint is resources/application/main.{ts,tsx,js,jsx}
  • SSR entrypoint is resources/application/ssr.{ts,tsx,js,jsx}
  • Pages are stored in resources/views/pages
  • Components are stored in resources/views/components
  • Layouts are stored in resources/views/layouts
  • Types are stored in resources/types

Changelog

Temporary changelogs for the forked/migrated packages can be found in the root CHANGELOG.md.

Contributing

Contributing Guidelines

Please read our CONTRIBUTING guide and CODE OF CONDUCT for more information.

Contributors ✨

Contributors

License

Licensed under the MIT license.

Credits

This project is based on Inertia.js by Jonathan Reinink. Read the CREDITS.