Introduction

Learn more about the Caesar framework.

What is Caesar?

Caesar is a Go web framework, designed for productivity. It takes inspiration from traditional web frameworks such as Ruby on Rails, Laravel, Django, Phoenix, AdonisJS, etc.

As of today, Go developers have to spend tremendous time architecting their web applications, setting up the project structure, configuring the database, choosing the right routing library, and so on.

Caesar aims to solve this problem by providing a set of tools and conventions that allow developers to focus on building their web applications, rather than setting them up.

Where does it come from?

Caesar is an open-source project, initiated by Software Citadel to facilitate the development of its cloud platform.

The project is maintained by a team of developers, and is open to contributions from the community.

Why is it called Caesar?

The name Caesar is inspired by the Roman general and statesman, Julius Caesar. Caesar was known for his military campaigns, and his ability to conquer new territories.

In the same way, Caesar aims to help developers conquer the web, by providing them with the tools they need to build web applications quickly and efficiently.

Why would I even need a web framework?

The Go community has a strong preference for simplicity and minimalism. However, building web applications from scratch can be a daunting task, especially for beginners.

While there is no obligation to use a web framework, Caesar can help you get started quickly, by providing a set of tools and conventions that allow you to focus on building your web application, rather than setting it up.

How a Caesar application looks like?

You can also take a check out Software Citadel's GitHub repo, which is an open-source cloud platform in development, making use of Caesar.

Feel free to take a look at its codebase to learn more about how to use Caesar in a real-world application.

Traditionally, a Caesar application looks like this :

├── app
│   ├── controllers
│   │   └── *_controller.go
│   ├── listeners
│   │   └── *_listener.go
│   ├── middleware
│   │   └── *_middleware.go
│   ├── models
│   │   └── *.go
│   ├── repositories
│   └──   └── *_repository.go
├── cmd
│   ├── caesar
│   │   └── main.go
├── config
│   ├── app.go
│   ├── auth.go
│   ├── database.go
│   └── *.go
├── database
│   └── migrations
│       ├── _*.go
│       └── migrations.go
├── public
│   ├── assets
│   │   └── *.{css,svg,...}
│   └── public.go
└── views
    ├── app.css
    └── *.templ