{"id":18837072,"url":"https://github.com/bkuhlmann/hanamismith","last_synced_at":"2026-03-15T11:41:14.296Z","repository":{"id":65339505,"uuid":"590243024","full_name":"bkuhlmann/hanamismith","owner":"bkuhlmann","description":"A command line interface for smithing Hanami projects.","archived":false,"fork":false,"pushed_at":"2025-07-15T23:07:37.000Z","size":1016,"stargazers_count":15,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-08-05T15:55:29.479Z","etag":null,"topics":["cli","gem","hanami","ruby"],"latest_commit_sha":null,"homepage":"https://alchemists.io/projects/hanamismith","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bkuhlmann.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.adoc","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["bkuhlmann"]}},"created_at":"2023-01-18T00:36:54.000Z","updated_at":"2025-07-15T23:07:41.000Z","dependencies_parsed_at":"2023-02-16T01:30:26.537Z","dependency_job_id":"4cd30160-66a6-42df-a61a-18f1e4277fa3","html_url":"https://github.com/bkuhlmann/hanamismith","commit_stats":{"total_commits":107,"total_committers":1,"mean_commits":107.0,"dds":0.0,"last_synced_commit":"bf2a9eb4783627a8d1415459712303f58db8bbc1"},"previous_names":[],"tags_count":66,"template":false,"template_full_name":null,"purl":"pkg:github/bkuhlmann/hanamismith","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkuhlmann%2Fhanamismith","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkuhlmann%2Fhanamismith/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkuhlmann%2Fhanamismith/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkuhlmann%2Fhanamismith/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bkuhlmann","download_url":"https://codeload.github.com/bkuhlmann/hanamismith/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkuhlmann%2Fhanamismith/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269659406,"owners_count":24455109,"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","status":"online","status_checked_at":"2025-08-09T02:00:10.424Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["cli","gem","hanami","ruby"],"created_at":"2024-11-08T02:33:43.811Z","updated_at":"2026-03-15T11:41:14.289Z","avatar_url":"https://github.com/bkuhlmann.png","language":"Ruby","funding_links":["https://github.com/sponsors/bkuhlmann"],"categories":[],"sub_categories":[],"readme":":toc: macro\n:toclevels: 5\n:figure-caption!:\n\n:capybara_link: link:https://github.com/teamcapybara/capybara[Capybara]\n:cuprite_link: link:https://cuprite.rubycdp.com[Cuprite]\n:dotenv_link: link:https://github.com/bkeepers/dotenv[Dotenv]\n:dotfiles_link: link:https://alchemists.io/projects/dotfiles[Dotfiles]\n:hanami_link: link:https://hanamirb.org[Hanami]\n:htmx_gem_link: link:https://alchemists.io/projects/htmx[HTMX]\n:htmx_link: link:https://htmx.org[htmx]\n:pg_link: link:https://github.com/ged/ruby-pg[pg]\n:postgresql_link: link:https://www.postgresql.org[PostgreSQL]\n:puma_link: link:https://puma.io[Puma]\n:rack_link: link:https://github.com/rack/rack[Rack]\n:rom_link: link:https://rom-rb.org[ROM]\n:rubysmith_link: link:https://alchemists.io/projects/rubysmith[Rubysmith]\n\n= Hanamismith\n\nHanamismith is a Command Line Interface (CLI) for smithing Hanami projects. Perfect when you need a professional, configurable, and robust tool for building new project skeletons.\n\ntoc::[]\n\n== Features\n\n* Built atop {rubysmith_link} for building project skeletons.\n* Uses {hanami_link} for web application development.\n* Uses {htmx_link} (along with the {htmx_gem_link} gem) for Hypermedia REST so you can write less code and avoid bloated JavaScript stacks.\n* Uses {postgresql_link} for the database, {pg_link} for the client, and {rom_link} Ruby object mapper.\n* Uses {rack_link}, specifically: link:https://github.com/rack/rack-attack[Rack::Attack], `Rack::Deflater`, and `Rack::Static`.\n* Uses {puma_link} for the web server including being fully configured for local and production environments.\n* Uses {capybara_link} with {cuprite_link} (driver) for full, headless, feature testing.\n* Uses {dotenv_link} for managing your environment configurations.\n* Provides support for Continuous Integration systems like link:https://circleci.com[Circle CI] (default) and link:https://docs.github.com/en/actions[GitHub Actions].\n* Provides the `/up` health check endpoint via the `Health` slice.\n* Configures link:https://github.com/ruby/ruby/blob/master/doc/yjit/yjit.md[YJIT] so you can deploy with YJIT disabled (i.e. `RUBYOPT=--yjit-disable --yjit-exec-mem-size=192`) and let the application enable upon boot.\n* Ensures link:https://github.com/ruby/irb[IRB] console autocomplete is disabled when used in production-like environments. You can re-enable IRB autocomplete by setting `IRB_USE_AUTOCOMPLETE=true` before launching your console in non development or test environments.\n\n== Screenshots/Screencasts\n\nimage:https://alchemists.io/images/projects/hanamismith/screenshots/home.png[Home,width=1060,height=725,role=focal_point]\n\nThe above is a screenshot of a _demo_ project that was generated locally. Here's a quick screencast of it:\n\nvideo::https://alchemists.io/videos/projects/hemo/demo.mp4[poster=https://alchemists.io/images/projects/hemo/demo.png,width=1280,height=720,role=focal_point]\n\n== Requirements\n\n. link:https://www.ruby-lang.org[Ruby].\n\n== Setup\n\nTo install _with_ security, run:\n\n[source,bash]\n----\n# 💡 Skip this line if you already have the public certificate installed.\ngem cert --add \u003c(curl --compressed --location https://alchemists.io/gems.pem)\ngem install hanamismith --trust-policy HighSecurity\n----\n\nTo install _without_ security, run:\n\n[source,bash]\n----\ngem install hanamismith\n----\n\n== Usage\n\n=== Command Line Interface (CLI)\n\nFrom the command line, type: `hanamismith --help`\n\nimage:https://alchemists.io/images/projects/hanamismith/screenshots/usage.png[Usage,width=586,height=333,role=focal_point]\n\nThe core functionality of this gem centers around the `build` command and associated flags. The build options allow you to further customize the kind of gem you want to build. Most build options are enabled by default. For detailed documentation on all supported flags, see the link:https://alchemists.io/projects/rubysmith/#_build[Rubysmith] documentation.\n\n=== Configuration\n\nThis gem can be configured via a global configuration:\n\n....\n$HOME/.config/hanamismith/configuration.yml\n....\n\nIt can also be configured via link:https://alchemists.io/projects/xdg[XDG] environment\nvariables.\n\nThe default configuration is everything provided in the\nlink:https://alchemists.io/projects/rubysmith/#_configuration[Rubysmith]. It is recommended that you provide common URLs for your project which would be all keys found in this section:\n\n[source,yaml]\n----\nproject:\n  url:\n    # Add key/value pairs here.\n----\n\nWhen these values exist, you'll benefit from having this information added to your generated project documentation. Otherwise -- if these values are empty -- they are removed from new project generation entirely.\n\n=== Workflows\n\nWhen implementing and testing your project locally, a typical workflow might be:\n\n[source,bash]\n----\n# Build new project\nhanamismith build --name demo\n\n# Run code quality and test coverage checks\ncd demo\nbin/setup\nbin/rake\n\n# Develop (red, green, refactor)\nNO_COVERAGE=true retest\ngit commit  # (repeat until finished with implementation)\n\n# Run: With Overmind (recommended)\novermind start --procfile Procfile.dev\n\n# Run: Without Overmind\nbin/hanami server\n\n# Deploy\ngit push\n\n# Help\nbin/hanami --help\n----\n\nOnce the server is running you can visit (or ping) the following endpoints:\n\n* `/`: The home page.\n* `/up`: The health status of the application. This will be _green_ (200 OK) when the server is up or _red_ (503 Service Unavailable) when the server is down.\n\n=== Aliases\n\nFor link:https://www.gnu.org/software/bash[Bash] users -- or other shell users -- you might find these suggested aliases helpful in reducing keystrokes when using this gem:\n\n[source,bash]\n----\nalias hsb=\"hanamismith build --name\"\nalias hse=\"hanamismith config --edit\"\nalias hsh=\"hanamismith --help\"\n----\n\nThe above is what I use via my {dotfiles_link} project.\n\n== Development\n\nTo contribute, run:\n\n[source,bash]\n----\ngit clone https://github.com/bkuhlmann/hanamismith\ncd hanamismith\nbin/setup\n----\n\nYou can also use the IRB console for direct access to all objects:\n\n[source,bash]\n----\nbin/console\n----\n\n== Tests\n\nTo test, run:\n\n[source,bash]\n----\nbin/rake\n----\n\n== link:https://alchemists.io/policies/license[License]\n\n== link:https://alchemists.io/policies/security[Security]\n\n== link:https://alchemists.io/policies/code_of_conduct[Code of Conduct]\n\n== link:https://alchemists.io/policies/contributions[Contributions]\n\n== link:https://alchemists.io/policies/developer_certificate_of_origin[Developer Certificate of Origin]\n\n== link:https://alchemists.io/projects/hanamismith/versions[Versions]\n\n== link:https://alchemists.io/community[Community]\n\n== Credits\n\n* Built with link:https://alchemists.io/projects/gemsmith[Gemsmith].\n* Engineered by link:https://alchemists.io/team/brooke_kuhlmann[Brooke Kuhlmann].\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbkuhlmann%2Fhanamismith","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbkuhlmann%2Fhanamismith","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbkuhlmann%2Fhanamismith/lists"}