Skip to content

[Mirror] A Go web framework with user authentication, CSRF protection, templating, config handling, and simple migrations out of the box

License

Notifications You must be signed in to change notification settings

pattmax00/GoWeb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

86ff949 Β· Jun 25, 2024
Dec 19, 2023
Dec 23, 2023
Dec 23, 2023
Jan 20, 2024
Sep 3, 2023
Feb 9, 2024
Aug 3, 2023
Sep 3, 2023
Sep 3, 2023
Mar 6, 2023
Dec 21, 2023
Dec 23, 2023
May 5, 2023
Mar 7, 2023
Jan 8, 2023
Feb 18, 2024
Dec 23, 2023
Jun 25, 2024
Jun 25, 2024
Dec 23, 2023

Repository files navigation

GoWeb 🌐

GoWeb is a simple Go web framework that aims to only use the standard library. The overall file structure and development flow is inspired by larger frameworks like Laravel. It is partially ready for smaller projects if you are fine with getting your hands dirty, but I plan on having it ready to go for more serious projects when it hits version 2.0.


Current features πŸš€

  • Routing/controllers
  • Templating
  • Simple database migration system
  • Built in REST client
  • CSRF protection
  • Middleware
  • Minimal user login/registration + sessions
  • Config file handling
  • Scheduled tasks
  • Entire website compiles into a single binary (~10mb) (excluding env.json)
  • Minimal dependencies (just standard library, postgres driver, and x/crypto for bcrypt)

When to use πŸ™‚

  • You need to build a dynamic web application with persistent data
  • You need to build a dynamic website using Go and need a good starting point
  • You need to build an API in Go and don't know where to start
  • Pretty much any use-case where you would use Laravel, Django, or Flask

When not to use πŸ™ƒ

  • You need a static website (see Hugo)
  • You need a simple blog (see Hugo)
  • You need a simple site for your projects' documentation (see Hugo)

How to use πŸ€”

  1. Clone
  2. Delete the git folder, so you can start tracking in your own repo
  3. Run go get to install dependencies
  4. Copy env_example.json to env.json and fill in the values
  5. Run go run main.go to start the server
  6. Rename the occurences of "GoWeb" to your app name
  7. Start building your app!
  8. When you see useful changes to GoWeb you'd like in your project copy them over

How to contribute πŸ‘¨β€πŸ’»

  • Open an issue on GitHub if you find a bug or have a feature request.
  • Email me a patch if you want to contribute code.
    • Please include a good description of what the patch does and why it is needed, also include how you want to be credited in the commit message.

License and disclaimer 😀

  • You are free to use this project under the terms of the MIT license. See LICENSE for more details.
  • You are responsible for the security and everything else regarding your application.
  • It is not required, but I ask that when you use this project you give me credit by linking to this repository.
  • I also ask that when releasing self-hosted or other end-user applications that you release it under the GPLv3 license. This too is not required, but I would appreciate it.