{"id":22425386,"url":"https://github.com/struckchure/go-alchemy","last_synced_at":"2025-03-27T06:15:12.777Z","repository":{"id":266504586,"uuid":"897984976","full_name":"struckchure/go-alchemy","owner":"struckchure","description":"Alchemy provides ready-to-use components for backend developers, empowering them to build applications quickly and efficiently.","archived":false,"fork":false,"pushed_at":"2024-12-13T09:05:41.000Z","size":24718,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-01T11:17:46.837Z","etag":null,"topics":["alchemy","codegenerator","golang"],"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/struckchure.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-12-03T15:30:00.000Z","updated_at":"2024-12-13T09:05:45.000Z","dependencies_parsed_at":"2024-12-04T16:34:43.633Z","dependency_job_id":"477a5a65-0ffd-43e9-9f02-bdc3225c9e84","html_url":"https://github.com/struckchure/go-alchemy","commit_stats":null,"previous_names":["struckchure/go-alchemy"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/struckchure%2Fgo-alchemy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/struckchure%2Fgo-alchemy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/struckchure%2Fgo-alchemy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/struckchure%2Fgo-alchemy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/struckchure","download_url":"https://codeload.github.com/struckchure/go-alchemy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245791967,"owners_count":20672671,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["alchemy","codegenerator","golang"],"created_at":"2024-12-05T19:13:59.496Z","updated_at":"2025-03-27T06:15:12.754Z","avatar_url":"https://github.com/struckchure.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Alchemy (Go)\n\n**Alchemy** provides ready-to-use components for backend developers, empowering them to build applications quickly and efficiently.\n\n---\n\n## ✨ Philosophy\n\nIf frontend developers can do something as simple as:\n\n```sh\nnpx shadcn add button\n```\n\nThen backend developers should be able to do:\n\n```sh\ngo-alchemy add authentication\n```\n\nAlchemy bridges this gap, providing a modular and intuitive toolset for backend development.\n\n---\n\n## 🛠️ Installation\n\nFor Linux and MacOS\n\n```sh\ncurl -fsSL https://raw.githubusercontent.com/struckchure/go-alchemy/main/scripts/install.sh | bash\n```\n\nFor Windows\n\n```sh\nirm https://raw.githubusercontent.com/struckchure/go-alchemy/main/scripts/install.ps1 | iex\n```\n\nOr download binaries from [release page](https://github.com/struckchure/go-alchemy/releases)\n\n---\n\n## 🚀 Usage\n\n### Initialize a New Alchemy Project\n\n\u003e You current directory must be a Golang project with `go.mod` for things to work properly.\n\nRun the following command to initialize a new project:\n\n```sh\ngo-alchemy init\n```\n\nYou’ll be prompted to provide details interactively:\n\n```plaintext\n? Provide alchemy component root:  .\n? Choose ORM:  Prisma\n? Choose Database Provider:  PostgreSQL\n? Provision Database with Docker Compose:  Yes\n```\n\nAlchemy will:\n\n- Generate a Docker Compose file for the database.\n- Configure your ORM (e.g., Prisma).\n- Set up a new Prisma project.\n- Update your Go dependencies.\n\n**Example Output:**\n\n```plaintext\n✨ Alchemy config has been generated!\n🛠️ Updating Go dependencies ...\n🥂 You're all set!\n```\n\nTo start the database service, run:\n\n```sh\n$ docker compose up -d\n```\n\n---\n\n### Add Components to Your Project\n\nAlchemy allows you to add modular backend components.\n\n#### **Interactively Add a Module**\n\n```sh\n$ go-alchemy add\n```\n\n**Example Interactive Flow:**\n\n```plaintext\n? Component Category Authentication\n? Select Components Login\nCreating Authentication.Login component\n  + prisma/schema.prisma\n  + dao/user.go\n  + services/authentication.go\n+ Authentication.Login\n```\n\n#### **Add All Components from a Module**\n\n```sh\n$ go-alchemy add Authentication.All\n```\n\nThis will add all components related to the `Authentication` module.\n\n#### **Add a Specific Component**\n\n```sh\n$ go-alchemy add Authentication.Login\n```\n\nThis will add only the `Login` component from the `Authentication` module.\n\n\u003e Component name is not case sensitive `Authentication.Login` is the same as `authentication.login`\n\n---\n\n## 📂 Example Project Structure\n\nAfter running the commands, your project might look like this:\n\n```\n.\n├── prisma\n│   ├── schema.prisma\n├── dao\n│   ├── user.go\n├── services\n│   ├── authentication.go\n├── docker-compose.yml\n├── go.mod\n├── go.sum\n├── main.go\n```\n\n---\n\n## 🧑‍💻 Contributions\n\nContributions are welcome! Feel free to open issues or submit pull requests to enhance Alchemy.\n\n---\n\n## 📖 License\n\nThis project is licensed under the [MIT License](LICENSE).\n\n---\n\n## 🛟 Support\n\nIf you encounter any issues, please open an issue in the [GitHub repository](https://github.com/struckchure/go-alchemy).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstruckchure%2Fgo-alchemy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstruckchure%2Fgo-alchemy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstruckchure%2Fgo-alchemy/lists"}