Skip to content

huddlz-hq/huddlz

Repository files navigation

huddlz

huddlz is a social networking platform focused on facilitating real-life meetups and events, prioritizing in-person connections over digital interactions. The platform aims to support tech meetup organizers and other community builders with tools for event management and attendee coordination.

Naming Convention: In huddlz, a singular event is called a "huddl" and multiple events are called "huddlz", matching the platform name. For branding purposes, we always use lowercase in UI and documentation.

License: BSL 1.1

Current Features

  • Huddl Listing - Discover upcoming discussion events directly on the landing page
  • Search Functionality - Find huddls by keyword across titles and descriptions
  • Password Authentication - Secure login with password reset functionality

Project Status

Huddlz is under active development. The landing page with huddl listings has been implemented, providing immediate value to users visiting the site. Users can browse available huddls and search for events matching their interests without requiring authentication.

Technology Stack

  • Backend: Elixir with Phoenix Framework
  • Frontend: Phoenix LiveView for interactive UI components
  • Data Layer: Ash Framework for domain modeling
  • Authentication: Ash Authentication with password-based login
  • Database: PostgreSQL
  • Testing: Cucumber/Gherkin for behavior-driven development

Dependencies

System Dependencies

macOS:

brew bundle  # or: brew install vips

Ubuntu/Debian:

apt install libvips-dev

Fedora:

dnf install vips-devel

Language Runtimes

This project uses mise for version management:

mise install

This installs Elixir 1.19.5 (OTP 28) and Erlang 28.4 as specified in .mise.toml.

Getting Started

To start your Phoenix server:

  • Run mix setup to install and setup dependencies
  • Start Phoenix endpoint with mix phx.server or inside IEx with iex -S mix phx.server

Now you can visit localhost:4000 from your browser.

Development

Testing

  • Run all tests: mix test
  • Run a specific test file: mix test path/to/test_file.exs
  • Run Cucumber features: mix test test/features/

Code Quality

  • Format code: mix format

Contributing

Documentation

Deployment

Required Environment Variables

The following environment variables must be set in production:

  • DATABASE_URL - PostgreSQL database connection string
  • SECRET_KEY_BASE - Secret key for session encryption (generate with mix phx.gen.secret)
  • TOKEN_SIGNING_SECRET - Secret for signing authentication tokens
  • SENDGRID_API_KEY - SendGrid API key for sending emails (required for password reset functionality)

Optional Environment Variables

  • RENDER_EXTERNAL_HOSTNAME - Hostname for the application (defaults to "huddlz.com")
  • PORT - Port to bind to (defaults to 4000)
  • POOL_SIZE - Database connection pool size (defaults to 10)

Ready to run in production? Please check the Phoenix deployment guides for detailed instructions.

License

Huddlz is licensed under the Business Source License 1.1 (BSL 1.1). This license:

  • Allows you to freely use, modify, and distribute the software for non-commercial purposes
  • Allows contributions to the project
  • Restricts commercial use without a separate agreement
  • Automatically converts to Apache License 2.0 5 years after the release of v1.0.0

Learn more

About

A community event platform for organizing and discovering local huddlz (gatherings).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors