Awayto Developer Documentation

Check out Awayto.exchange, which uses version 0.3.0.

Overview

The Awayto framework was built off of these core ideas:

  • Enhance the developer experience
  • Provide opportunities for developers to learn
  • Minimal focus on deployment
  • Use conventions that compliment functionality

At its core, the platform generates self-hosted web applications with built-in infrastructure, APIs, and UI components.

There is a great deal of functionality threaded throughout the platform created purely to enhance the developer’s experience. Most abstractions are planned and designed to be extended. Core systems at both the application layer, like the API, or the development layer, like the CLI, can be added to or modified with very little effort.

Awayto is opinionated software. For the most part an experienced developer will be familiar with the concepts used throughout the system, although some things are homebrew. Adding new features across the stack is generally a matter of implementing pre-existing, highly-configurable structures.

Basic Concepts

Awayto is for those seeking a web platform containing many features out of the box which can be further built upon. The project is developed by a single person, with the intention of simplifying development and making constructs to enhance development. The goal is to provide a path to fast feature development.

If you’re a novice developer and are interested in running everything yourself, you will be provided with step-by-step instructions on how to install, deploy, and expand a platform you control. Otherwise, it is assumed the developer is familiar with common web technologies like APIs and databases, as well as being proficient in Go, Typescript, SQL, and shell scripts.

Perhaps the largest underlying theme of Awayto is to offer a fully featured development environment that can be easily tinkered with and controlled via configuration and scripting. A basic CLI is provided to run commands, from first time setup to deploying, building, and scaling resources locally or in the cloud.