Skip to main content

Fireback

active

Web Framework

A full-stack Golang framework for rapidly building web, mobile, and desktop apps — with built-in backend and client code generation. Based on famous libraries, such as gin, gorm, go-migrate, react.js, and emi compiler for JavaScript, TypeScript, Swift, Kotlin.

About Fireback

Fireback is highly opinionated framework, which allows to write backend code in Golang, and generation of clients [such that api calls are facilitated] in different famous targets, such as React.js. Fireback itself includes a backend project, which allows you to create backend based on Gin, Gorm, and provides a lot of helpers. Fireback gives you a basic structure, allows nested modules, and helps you to write any kind of project, such as traditional backend, system service, desktop apps using Golang and Electron.js (and Wails). Fireback allows every action to be available both on cli and http, and it's very easy to add other protocols, such as MQTT in between. Load balancing and multiple instance running is also considered. Websocket connection on such scenarios is also available by default. Fireback comes with an ABAC module, on top of core, and you can use that to give your project a role, permission, user management out of the box, and extend functionality there. Fireback React.js project both is used to create new projects, or be installed as self-service, which is super useful on projects you do not want to maintain such code, and by redirecting user to authentication page and getting token or cookie, this feature is done. ABAC module database structure allows for very complex projects itself, and got inspired by successful multi-tenant highly customized role permission projects in the past.

Related workshops

XHTML and Fireback

Ever wonder there is an easier way of creating websites, instead of using different frameworks, bundlers, constantly updating frameworks. Let's explore how can we build a website with pure javascript, pure css, and simple html.

Fireback Post Request Handling Features

In this video I am demoing the default features of Fireback framework when creating APIs. Parsing json Error handling on json Parsing Yaml Form data, formdata urlencoded XML support on API requests.

How we develop backend in 3 minutes

Fireback features overview.

Key Features

  • Compile the fastest (within 10 seconds or less), use the least memory (less than 5MB in idle mode), and ensure type safety.
  • Products should have a minimum lifespan of 20 years after their initial build.
  • Never rewrite the code, due to bad structure or skipping important details.
  • Achieve machine independence without relying on Docker or similar tools.
  • Compile for various platforms including web, native mobile (iOS, Android), desktop, and embedded devices.
  • Do not address ambiguity regarding roles, workspaces, permissions, or email/SMS/OAuth authentication.
  • Utilize SQL with an organized data structure.
  • Prioritize code management over code generation.
  • Significantly reduce build times for clients in Android, React, Angular, and SwiftUI.
  • Zero setup backend usage for front-end or app developers.
  • Always provide more than anyone’s need, always before they ask.
  • Integrated desktop app support using Wails.
  • Binaries ready to be embedded on Android and iOS native, as well as Cordova for offline backend usage (same code base).
  • Build on top of Golang — fast build time, blazing runtime, minimal memory usage.
  • Terminal (CLI) for everything, even user signup and password reset.
  • User/Role/Workspace built into everything.
  • User permission management.
  • Relational Database support (SQLite, MySQL, Oracle, Postgres).
  • Nested, Object in Object, Array in Object, Object in Array post form handler.
  • Polyglot (Multilingual) built into the definition.
  • File upload system with virtual directories based on resumable uploads (TUS).
  • Form validation for nested objects.
  • Reactive stream query via WebSocket on Module3 definition.
  • Bulk Patch (Update) on every entity.
  • Publicly available vs workspace/user protected actions.
  • Custom action definition with auto cast from HTTP and CLI.
  • Generate Post, Patch, Query, Delete, Bulk Patch for every entity.
  • HTML and rich text content storage.
  • Dynamic data via JSON and ERD data storage.
  • QueryDSL for every entity — query, filter, sort without dependencies.
  • Built-in search mechanism.
  • Multilingual menu, sidebar, and tabbar system.
  • Generate APIs and actions for nested entities (add/remove/etc).
  • Auto handle unique IDs and relations between non-nested elements.
  • Format dates, currency, and time based on client region.
  • Backend errors translated based on Accept-Language.
  • Unified Google JSON styleguide response without exception.
  • Manual and automatic mocking system for all entities.
  • Seeder system for including initial or necessary content (yaml/json/csv).
  • Advanced background operations for import/export of all entities.
  • Default and custom permission definitions.
  • CSV/YAML data template generation for import.
  • Auto sanitize content.
  • Advanced form validation and excerpt generation.
  • Casting DTO/entity from CLI parameters.
  • PDF export for queries (beta) without third-party dependencies.
  • JsonDSL (complex query conditions) and QueryDSL (textual query).
  • Predefined SQL queries (Pivot and Recursive CTE).
  • Event system for entity changes, broadcasted via WebSocket.
  • CLI wipe and multi-row delete for entities.
  • Automatic privilege enforcement on content creation/modification.
  • Multiple workspaces and multiple roles per workspace.
  • Multiple workspace types (e.g., School, Student).
  • Direct signup to a team via public join key.
  • Distinct-by-user workspace operation flag.
  • Interactive CLI tools for entity creation.
  • Support for complex enums, auto-casting to major programming languages.