Web Development is Simple

Like all good things in life, October can be understood at a glance. The principles it implements are natural and have existed in programming for a long time - we've just collected and brought them into the realm of web development.

October is a transparent layer between your creativity and the final result

October doesn't impose any restrictions on the website page structure, HTML or CSS markup. There is not much difference between writing your markup in a text editor or in the October administration area, in the end you will get the same final markup in the browser.

October doesn't magically generate or convert code. There are no surprises when you work with October - the finished product is exactly what you imagined. Knowledge of new frameworks is not required.

{% if author %}
    <div class="page-title author-title">
        <div class="container">
            <img src="{{ author.user.getAvatarThumb(64, 'assets/images/default.png'|theme) }}">

            <div class="title">
                <h2>{{ author.name }}</h2>
                <p>October author</p>
            </div>
        </div>
    </div>
{% endif %}

Simple modern template engine

Twig is a simple template language, created specifically for web designers. It won't slow you down and it automatically takes care of escaping and other tedious tasks. We have documented all the details of this beautiful language to simplify your learning process.

Best tools from the PHP world

October is built on Laravel, the best existing PHP framework. The framework includes all of the tools and classes that are necessary for building quality websites and applications. October adds even more power to Laravel with a collection of simple and flexible features.

Page components

Components are building blocks for Pages. Just add a component to the Page to add new functionality and configure it with the Inspector. Inspector is a visual tool for managing component properties.

Extensible platform

Extend the platform with Plugins that seamlessly integrate with October’s back-end and front-end. Plugin classes are very simple, you just describe the Plugin and register the features that you want.

class Plugin extends PluginBase
{
    public function pluginDetails()
    {
        return [
            'name'        => 'rainlab.blog::lang.plugin.name',
            'description' => 'rainlab.blog::lang.plugin.description',
            'author'      => 'Alexey Bobkov, Samuel Georges',
            'icon'        => 'icon-pencil'
        ];
    }

    public function registerComponents()
    {
        return [
            'RainLab\Blog\Components\Post'       => 'blogPost',
            'RainLab\Blog\Components\Posts'      => 'blogPosts',
            'RainLab\Blog\Components\Categories' => 'blogCategories',
        ];
    }

    ...
}

Easy administrative interfaces

Effortlessly create back-end interfaces for your plugins. Back-end pages require minimal PHP coding and use simple configuration files. The power and flexibility is hidden behind a mask of simplicity!

Simple AJAX framework

The AJAX framework lets you easily bind an AJAX request to a form or a button. These requests can be handled by components or by your own code in the Page or Layout. Try it yourself!

To Do List

<form
    data-request="todoList::onAddItem"
    data-request-update="'todoList::list': '#result'"
    data-request-success="$('#input-item').val('')">
    <div class="panel panel-default">
        <div class="panel-heading">
            <h3 class="panel-title">To Do List</h3>
        </div>
        <div class="panel-body">
            <div class="input-group">
                <input type="text" id="input-item" class="form-control" value="" name="newItem" placeholder="What needs to be done?"> 
                <span class="input-group-btn">
                    <button type="submit" class="btn btn btn-primary">Add</button>
                </span>
            </div>
        </div>
        <ul class="list-group" id="result">
        </ul>
    </div>
</form>

Quick scaffolding

With the free Builder plugin you can create a fully functional plugin scaffold in a matter of minutes. Builder can manage the plugin's database structure, create back-end user interface and do much more without breaking your usual development workflow.

File-based templates

CMS pages, layouts and partials are just files, one file per template. This makes the website themes completely manageable with Content Version Systems like Git or SVN.

Built-in asset combiner

CSS and JavaScript assets can be combined and minified with just a single tag in your CMS templates. Combined assets reduce the pages loading time and your server traffic.

Support and resources

There is detailed documentation that describes all aspects of development with October. Community support is available through the forum, Slack, IRC and Stack Overflow.

No need to change your habits

Development with October can easily be adapted to any existing team workflow. Use your favorite version control system for storing and deploying website themes and plugins. Your team can use your text editor and other tools they're accustomed to. Build any sites with October - from simple promotional websites to high load social networks.

Marketplace

Save time and money by using existing third-party plugins and themes from the Marketplace which grows every day.

Always fresh

Always use the full power of October with safe core updates that don't break your sites. Updates are applied with a single click.

Reuse and share

Develop and reuse your own plugins for your clients. Whether you share them with the community through the Marketplace is up to you!

Manage the website without programming

Non-technical users can manage page contents with the WYSIWYG editor, manage images, videos and other files, and even edit website menus with a simple visual interface.

CDN support and image cropping

The most demanded features like the CDN support, image cropping and file management user interface are available out of the box and are elegantly integrated into the platform. They are so easy to use that they require little to no explanation.

Simple, powerful and reliable

With page snippets, the complexity of coding is hidden out of sight, but you still can create powerful tools that are easily configurable even by non-technical users.

Translatable contents

With the free Translate plugin you can easily translate content to different languages. The translatability is supported out of the box for most plugins and data types.

Easy to learn

Gain confidence using the system with a consistent and easy to use interface.

International

The back-end is translated in 20 languages thanks to our worldwide community.

Forever loved

After using the system for several minutes, you will know enough to use it forever!