{"id":34594378,"url":"https://github.com/ferdiebergado/go-fullstack-boilerplate","last_synced_at":"2026-04-08T20:30:24.702Z","repository":{"id":261943984,"uuid":"885619951","full_name":"ferdiebergado/go-fullstack-boilerplate","owner":"ferdiebergado","description":"A template to scaffold a fullstack go web application","archived":false,"fork":false,"pushed_at":"2025-01-26T12:22:47.000Z","size":8505,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-25T22:57:34.416Z","etag":null,"topics":["best-practices","bundler","database-sql","docker-compose","express","full-stack-web-development","go","hot-reload","migrations","nginx","pgx","podman","postgres","router","servemux","simple","stdlib","typescript"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ferdiebergado.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-09T00:36:58.000Z","updated_at":"2025-01-20T13:20:12.000Z","dependencies_parsed_at":"2024-11-09T13:17:41.863Z","dependency_job_id":"d43f04f0-258d-419c-b108-95c39011e399","html_url":"https://github.com/ferdiebergado/go-fullstack-boilerplate","commit_stats":null,"previous_names":["ferdiebergado/go-fullstack-boilerplate"],"tags_count":1,"template":true,"template_full_name":null,"purl":"pkg:github/ferdiebergado/go-fullstack-boilerplate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ferdiebergado%2Fgo-fullstack-boilerplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ferdiebergado%2Fgo-fullstack-boilerplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ferdiebergado%2Fgo-fullstack-boilerplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ferdiebergado%2Fgo-fullstack-boilerplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ferdiebergado","download_url":"https://codeload.github.com/ferdiebergado/go-fullstack-boilerplate/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ferdiebergado%2Fgo-fullstack-boilerplate/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31573781,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["best-practices","bundler","database-sql","docker-compose","express","full-stack-web-development","go","hot-reload","migrations","nginx","pgx","podman","postgres","router","servemux","simple","stdlib","typescript"],"created_at":"2025-12-24T11:27:00.495Z","updated_at":"2026-04-08T20:30:24.677Z","avatar_url":"https://github.com/ferdiebergado.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# go-fullstack-boilerplate\n\n![Github Actions](https://github.com/ferdiebergado/go-fullstack-boilerplate/actions/workflows/go.yml/badge.svg?event=push) ![Github Actions](https://github.com/ferdiebergado/go-fullstack-boilerplate/actions/workflows/security.yml/badge.svg?event=push) [![Go Report Card](https://goreportcard.com/badge/github.com/ferdiebergado/go-fullstack-boilerplate)](https://goreportcard.com/report/github.com/ferdiebergado/go-fullstack-boilerplate)\n\nA template to scaffold a fullstack go web application.\n\n## Features\n\n-   Standard Go Project [Layout](https://github.com/golang-standards/project-layout)\n-   Postgresql database using database/sql with [pgx](https://pkg.go.dev/github.com/jackc/pgx/stdlib) driver\n-   [Router](https://github.com/ferdiebergado/goexpress) based on net/http ServeMux\n-   HTML templating using html/template\n-   Typescript support out-of-the-box\n-   [Toolkit](https://github.com/ferdiebergado/gopherkit) that makes common tasks easier\n-   Database migrations\n-   Hot reloading during development\n-   [nginx](https://nginx.org/en/) as web server and reverse proxy configured for high-performance\n-   Docker deployment\n\n## Requirements\n\n-   Go version 1.22 or higher\n-   Docker\n\n## Getting Started\n\n### Step 1\n\nRename .env.example to .env.\n\n```sh\nmv .env.example .env\n```\n\n### Step 2\n\nDeploy the application.\n\n```sh\nmake dev\n```\n\n### Step 3\n\nBrowse the application at [localhost:8080](http://localhost:8080).\n\n## Migrations\n\n### Create Migrations\n\nRun the migration target with the name of the migration as argument.\n\n```sh\nmake migration create_users_table\n```\n\n### Run Migrations\n\n```sh\nmake migrate\n```\n\n### Rollback Migrations\n\n```sh\nmake rollback\n```\n\n### Recover from a Failed Migration\n\nWhen a migration fails, fix the error and force the version of the failed migration.\nThen run the migration again.\n\n```sh\nmake force 1\nmake migrate\n```\n\n## Bundling Assets\n\n### Bundle for development\n\n```sh\nmake bundle\n```\n\n### Watch mode for css files\n\n```sh\nmake watch-css\n```\n\n### Watch mode for typescript/javascript files\n\n```sh\nmake watch-ts\n```\n\n### Bundle for production\n\n```sh\nmake bundle-prod\n```\n\n## Tests\n\nRun unit tests.\n\n```sh\nmake test\n```\n\nRun integration tests.\n\n```sh\nmake integration\n```\n\n## Other Tasks\n\n### Interact with the database using psql\n\n```sh\nmake psql\n```\n\n### Restart a service\n\nProvide a service as argument to the restart target.\n\n```sh\nmake restart proxy\n```\n\n### Stop all the running containers\n\n```sh\nmake stop\n```\n\n### Help\n\nView the usage information by running make.\n\n```sh\nmake\n```\n\n## TODOs\n\n-   [x] Health endpoint\n-   [x] Login with email and password\n-   [ ] Email verification\n-   [ ] Secure Cookie Session Management\n-   [ ] Login with Google (OAuth2)\n-   [ ] Authorization\n-   [ ] Audit logs\n-   [ ] Database query caching\n-   [ ] Environment Page (go version, drivers, env, os kernel, etc.)\n-   [ ] Cache busting for assets\n\n## Linting\n\nThis project comes with a golangci-lint config file. Just install golangci-lint and enable it as the default linter on your editor of choice.\n\n## License\n\nThis project is distributed under the MIT License. See [LICENSE](https://github.com/ferdiebergado/go-fullstack-boilerplate/blob/main/LICENSE) for more details.\n\n## Tech Stack\n\n![Go](https://img.shields.io/badge/go-%2300ADD8.svg?style=for-the-badge\u0026logo=go\u0026logoColor=white) ![TypeScript](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge\u0026logo=typescript\u0026logoColor=white) ![Postgres](https://img.shields.io/badge/postgres-%23316192.svg?style=for-the-badge\u0026logo=postgresql\u0026logoColor=white) ![Nginx](https://img.shields.io/badge/nginx-%23009639.svg?style=for-the-badge\u0026logo=nginx\u0026logoColor=white) ![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge\u0026logo=docker\u0026logoColor=white)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fferdiebergado%2Fgo-fullstack-boilerplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fferdiebergado%2Fgo-fullstack-boilerplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fferdiebergado%2Fgo-fullstack-boilerplate/lists"}