ianc
Introducing Travel Massive — a community platform built with Phoenix LiveView
Hey folks,
We built a community platform for Travel Massive with Phoenix LiveView. This is my first project with Phoenix LiveView, and the first time I’ve programmed in Elixir.
Here’s a few notable features:
- A community publishing platform with submitted posts, comments and upvotes
- Event platform with registration, invitations, and attendee messaging
- Member profiles, direct messaging, and member search
- Group membership for location-based meetup groups
- Passwordless “Sign in” with pin code for easier sign up / login
- A Jobs Board and Careers Directory (monetized)
- Topic pages for content discovery
- Markdown CMS for information and about pages
- An awesome moderator backend with activity logs
Tech details
- Currently running LiveView 0.17.11
- We use a combination of LiveView Components and Surface UI with Tailwind CSS
- Alpinejs 3 for a few user interactions (e.g. upvote), and Tippy for popups
- We’re hosted on Gigalixir and Cloudinary (images)
- esbuild only.. no npm required

Special thanks
A big thanks to @mplatts and @nhoban who developed our initial MVP and got us to launch last year, and @daamsie who helped with a lot of UX and other features. Also a thanks to elixirforum as I found a lot of helpful answers here while learning Elixir ![]()
Migrating from Drupal to Phoenix LiveView
I originally created the Travel Massive community in 2014 and built it with Drupal 7 (and open-sourced the project). Migrating a live community of ~50,000 members from Drupal to Phoenix LiveView was a unique challenge. To solve this, we built built a private REST endpoint in Drupal to provide structured data to our Elixir importer. This method also gave us the benefit of developing the platform with real membership data.
What’s next?
We launched in September 2021 and I’ve spent the past year adding features, fixing bugs, and growing and building our community. The project has slowly matured, but I’m still thinking about new features to build:
- Community points to reward participation
- Travel map (people can share places they are visiting)
- Automated newsletters (we currently curate a weekly newsletter)
Hopefully this post can help others who are thinking about building community platforms with Phoenix LiveView, and can help showcase what can be done! ![]()
Most Liked
ianc
It felt like being in the deep end at the beginning, because I was learning both Elixir and Phoenix. Two things really helped me get over the learning curve:
- A working project / codebase to dive into
- A mentor to review my code and help me learn Elixir (e.g. answer all my newbie questions!)
On point 1, @mplatts created Petal Framework which is worth checking out.
It’s difficult to compare 1:1 because the new platform is simpler by design (more pragmatic, less features). However I find myself writing simpler, shorter code in Elixir.
Never! There are often “aha!” moments when you think “how the heck was I writing that in X when I could have been over here in Elixir doing this way simpler / faster!”
ianc
Our old platform was a combinaton of Drupal (member profiles, chapters, events, search), Wordpress (blog), Slims (jobs board), and Discourse (forum). We unified everything we needed into a single platform with Phoenix LiveView.
Our server runs with < 500mb memory and we do about ~100k views a month.
We’re using topbar. I previously had a spinner in top left. I don’t think we need to point out (too much) to users that we’re waiting for the socket to connect, so I prefer to keep it subtle.
AstonJ
This is awesome - congrats ![]()
Is the new site offering more or less the same as the Drupal site? If so I’d be interested to know whether anything changed on your server/hosting requirements? Could you also share how many page views you are serving a month?
Have you also experimented using a spinner instead of a progress bar for page loads? Personally I am not that keep on progress bars if the header always stays the same. Since you’re a travel site you could use a rotating globe as your spinner
On one of my sites we use a running dog (it’s a dog related site):

Popular in Discussions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance









