GolpoPhone is a platform that allows users to send and receive anonymous voice messages. This project is built with Go and HTMX.
- Generate temporary links (valid for 24 hours) to receive voice messages
- Record anonymous voice messages up to 60 seconds
- Receive email notifications when messages are received
- Voice messages expire after 3 days
- Clean, modern UI with voice waveform visualization
- Go (backend)
- HTMX (frontend interactivity)
- Templ (Go HTML templating)
- Echo (web framework)
- TailwindCSS (styling)
- Go 1.24 or later
- Make
- Clone the repository
- Build and run the application:
make build
./mainOr you can use the development mode with live-reloading:
make run- Open your browser and navigate to http://localhost:8080
- A user visits the homepage and enters their email to generate a unique link
- The user shares this link with friends (e.g., via social media)
- Friends can visit the link and record a 60-second voice message
- The user receives an email notification when a message is received
- The user can listen to the message by clicking the link in the email
GET /- HomepageGET /health- Health check endpointGET /version- Application version information (production builds only)- Various other endpoints for voice message functionality
This project uses the following directory structure:
cmd/api: Application entry pointinternal/handlers: Request handlersinternal/models: Data modelsinternal/server: Server configurationinternal/view: UI components (using Templ)components: Reusable UI componentslayout: Page layoutspages: Full page templates
This project is licensed under the MIT License - see the LICENSE file for details.
Run build make command with tests
make allBuild the application
make buildRun the application
make runCreate DB container
make docker-runShutdown DB Container
make docker-downDB Integrations Test:
make itestLive reload the application:
make watchRun the test suite:
make testClean up binary from the last build:
make clean