Demand for Web Framework? Similar to Django for Python

Hi fellow Goophers,

I’ve been using Django, a Python web framework, extensively. However, I’ve come to believe that Python might not be the ideal choice for web frameworks.

Consequently, I’ve embarked on creating my own framework, aimed at offering a solid starting point for backend development similar to Django, but using Go.

Currently, I’m contemplating whether to keep this framework for personal use or to invest more effort into making it open source. This could potentially bring more attention to Go in the realms of web frameworks and headless CMS.

Question 1:
Can you recommend other Go web frameworks? I looked at Gin, Echo, Beego and Fiber so far.

Question 2:
Which features are you looking for in a web framework?

Question 3:
Here’s my preliminary feature list. Am I overlooking anything?

-Very Straightforawrd and easy code.
-User management system
-Permission management system
-Caching for user and permission data
-Admin dashboard
-Bulk create users from CSV upload.
-Optional two-factor authentication for superusers
-Built-in database migration.
-Simplified deployment process (utilizing Docker Compose for NGINX, Go, PostgreSQL) through SSH bash scripts
-I plan to let NGINX handle static files, because it is good in doing so.
-Instead of traditional documentation, plan is to provide a manual and a cookbook, aiming for self-explanatory code complemented by comments.
-Include Send email integration via external API to commercial service of the dev choice.
-Backup system to save the persistent data offline and also remigrate it into the app.

Question 4:
Do you find this project appealing, and do you think there’s a demand for it in the Go community?

2 Likes

If you are planning to open source the project, then why not do it? You will get valuable feedback once it is shared. It is tough to offer any feedback without seeing the product. There are projects like beego so large frameworks are definitely in demand by specific sectors.

highly recommend you open your source code, more gophers will join and make it develop very rapidly. you can begin with your ideas or concepts and simple structure

Ultimately, the best choice depends on your project’s needs and preferences. Consider factors like complexity, features offered, and community support.

Thanks for your input. The development is going great. I plan to release it on the first of may (If I do not get a gig until then) or may the fourth, for reasons :wink:

Two projects that seem to have at least some traction and are related, would be:

NGINX is working perfectly. It wouldn’t drop that fast piece of software. Instead embrace it. Let it serve your statics.

I’ve already tried HTMX, but it felt clunky. I replaced it with just a few lines of vanilla js. Using a script that triggers on DOM load, combined with {{baseUrl}} string replace of go, actually did a better job for me, to be honest. Just store your auth token in your browser storage and send it with the request. So I decided not to make HTMX a part of the project itself, but users can of course include it, if they are willing to do so.

“Unfortunately” :innocent: I got a bit of paid work to do, so I hope I will be ready at 01.05.

Hi @Karl
Can you recommend other Go web frameworks?

GoFr - GitHub - gofr-dev/gofr: An opinionated Go framework for accelerated microservice development

Which features are you looking for in a web framework?

  1. Easy to write code
  2. Abstractions to make redundant tasks faster.

Here’s my preliminary feature list. Am I overlooking anything?
I am doubtful if all of this would be present in any framework, as user management, permission management seems to be part of the business logic.
Every application would have its own way of what should be allowed to whom and what not.
But Yes,

From your list gofr provides the following :slight_smile:

  1. Very Straightforawrd and easy code
  2. Built-in database migration.
  3. Simplified deployment process (provides endpoint for kubernetes aliveness and liveness probe)
  4. Instead of traditional documentation, plan is to provide a manual and a cookbook, aiming for self-explanatory code complemented by comments.
  5. Observability

Do you find this project appealing, and do you think there’s a demand for it in the Go community?
Yes, to go from poc to production its the fastest way I am aware of -

GoFr - An opinionated Go Framework

Moreover, if talking about microservices you need not to match the responses as, it has a standard format for the same.

Hey there!

It’s exciting to hear about your project to create a web framework in Go. Here are some responses to your questions:

Question 1: You’ve already looked at some popular Go web frameworks like Gin, Echo, Beego, and Fiber, which is a great start. These frameworks each have their strengths and weaknesses, so exploring them further can help you understand what features are important to you and your project.

Question 2: Features that many developers look for in a web framework include:

  • Performance and scalability
  • Ease of use and simplicity
  • Good documentation and community support
  • Flexibility and extensibility
  • Built-in security features
  • Integration with other tools and services
  • Effective handling of concurrency and asynchronous tasks

Question 3: Your preliminary feature list looks comprehensive and covers many aspects of a robust web framework. Some additional features you might consider include:

  • Middleware support for handling common tasks like authentication, logging, and request/response manipulation
  • Support for websockets and real-time communication
  • Built-in testing tools and frameworks
  • Internationalization and localization support
  • Built-in support for RESTful APIs and GraphQL
  • Automatic generation of API documentation

Question 4: As for the appeal and demand for your project in the Go community, it’s challenging to predict without knowing more about the specifics of your framework and the unique value it brings compared to existing solutions. However, if your framework focuses on simplicity, performance, and ease of use while providing valuable features like user management, permissions, and deployment automation, there could indeed be a demand for it among developers looking for a reliable and efficient Go web framework.