Hiker — Craft high-quality Laravel applications effortlessy

Discover a battle-tested way to develop beautiful and highly maintainable applications in no time.

Watch the guided tour
 1/**
 2 * Create a journey
 3 */
 4public function create(): Roadmap
 5{
 6    return roadmap()
 7        ->run(FetchWeatherConditions::class)
 8        ->branch(CheckWeather::class, function (Outcome $weather) {
 9            $weather->is('rainy')
10                ->show(RaincoatForm::class);
11            $weather->is('sunny')
12                ->show(ShadesForm::class);
13        })
14        ->save(SaveJourney::class)
15        ->chain('draft', Picnic::class)
16        ->show(JourneyDetail::class);
17}

Introduction

The ultimate toolbox
for Laravel projects

Hiker provides a clear and well-defined methodology and UI toolkit to translate business logic into accessible interfaces.

Philosophy

Stay on track with a robust development philosophy

Structure application logic into flows, composed of nodes of different types.

Run actions

Hiker’s runnable nodes are your bread and butter. They represent one action within your flow and simply execute the code you provide to them.

  • Name your actions with a class
  • Avoid duplicated logic
  • Improve modularity
 1public function create(): Roadmap
 2{
 3    return roadmap()
 4        ->run(FetchWeatherConditions::class)
 5        ->branch(CheckWeather::class, function (Outcome $weather) {
 6            $weather->is('rainy')
 7                ->show(RaincoatForm::class);
 8            $weather->is('sunny')
 9                ->show(ShadesForm::class);
10        })
11        ->save(SaveJourney::class)
12        ->chain('draft', Picnic::class)
13        ->show(JourneyDetail::class);
14}

Control and direct execution

Full control over your application's logic flows. Branches allow you to implement conditional logic, while chaining lets you seamlessly link to other flows, even to other resources.

  • Define conditional logic easily
  • Reuse and connect flows
  • Express logic paths clearly
 1public function create(): Roadmap
 2{
 3    return roadmap()
 4        ->run(FetchWeatherConditions::class)
 5        ->branch(CheckWeather::class, function (Outcome $weather) {
 6            $weather->is('rainy')
 7                ->show(RaincoatForm::class);
 8            $weather->is('sunny')
 9                ->show(ShadesForm::class);
10        })
11        ->save(SaveJourney::class)
12        ->chain('draft', Picnic::class)
13        ->show(JourneyDetail::class);
14}

Manage data in real-time

Save and Delete type nodes let you focus on the important business logic and handle real-time UI updates for you automatically using websockets.

  • Control how models are saved
  • Provide real-time UI updates
 1public function create(): Roadmap
 2{
 3    return roadmap()
 4        ->run(FetchWeatherConditions::class)
 5        ->branch(CheckWeather::class, function (Outcome $weather) {
 6            $weather->is('rainy')
 7                ->show(RaincoatForm::class);
 8            $weather->is('sunny')
 9                ->show(ShadesForm::class);
10        })
11        ->save(SaveJourney::class)
12        ->chain('draft', Picnic::class)
13        ->show(JourneyDetail::class);
14}

Display views

Show modular, component-based views and present forms at the right moment within a flow to gather the information needed for further execution.

  • Build complex views easily
  • Avoid front-end work
  • Extend with custom components
 1public function create(): Roadmap
 2{
 3    return roadmap()
 4        ->run(FetchWeatherConditions::class)
 5        ->branch(CheckWeather::class, function (Outcome $weather) {
 6            $weather->is('rainy')
 7                ->show(RaincoatForm::class);
 8            $weather->is('sunny')
 9                ->show(ShadesForm::class);
10        })
11        ->save(SaveJourney::class)
12        ->chain('draft', Picnic::class)
13        ->show(JourneyDetail::class);
14}

This is just the beginning

There's a lot more to say about what Hiker can do for you. Dive into the documentation to explore advanced capabilities and unleash the full potential of your applications!

MountainJourneyFlows.php

 1public function create(): Roadmap
 2{
 3    return roadmap()
 4        ->run(FetchWeatherConditions::class)
 5        ->branch(CheckWeather::class, function (Outcome $weather) {
 6            $weather->is('rainy')
 7                ->show(RaincoatForm::class);
 8            $weather->is('sunny')
 9                ->show(ShadesForm::class);
10        })
11        ->save(SaveJourney::class)
12        ->chain('draft', Picnic::class)
13        ->show(JourneyDetail::class);
14}

Components

Build beautiful UIs without a line of HTML, CSS or JS

Hiker helps you create stunning user interfaces effortlessly with pre-built components, so you can focus on building your application instead of wrestling with front-end code.

Packages

A package store is coming soon

Got some cool custom components, or useful resources and flows you'd like to share? The store will let you browse and upload packages, both free and paid.

Hiker CMS

The best way to publish and manage pages, articles and other content using Hiker.
Coming soon

Hiker e-commerce

Painless transactions and invoicing for your e-commerce projects.
Coming soon

Hiker Advanced Fields

A collection of meticulously crafted advanced form fields.
Coming soon

Early access

Free, open-source, and uncompromising

Hiker will be free and open source, but it is currently in private early-access. Contact us to request a license!