TallPBX

Looks like this was vibe-coded with AI about a week ago. So how much actual coding experience do you have yourself, and how much VoIP knowledge?
 
  • Like
Reactions: RandomSeed
Just because it was recently committed to Git doesn't mean they haven't been working on it for a while.

Welcome, tallpbx and @smn. This forum is the right place to talk about multiple PBXs.
It's likely we will see more PBX's on this forum in the future.

You should ask for your own spot on the forum like DjangoPBX and others.
 
It's actually very important for some people to know the developer's skill set. The stack that TallPBX was built on is very similar to FS PBX. I might consider hiring him.
Unfortunately, with AI, we have a lot of rookie developers, and proper vetting is required. AI can write code. Everyone knows that. However, producing well-written AI code still needs supervision from a developer with the skill and system knowledge.
 
  • Like
Reactions: RandomSeed
Looks like this was vibe-coded with AI about a week ago. So how much actual coding experience do you have yourself, and how much VoIP knowledge?
About 20 years VoIP & 15 years coding. Development was started on a private repo long before I did the initial commit released to a public repo, so that is not the entire commit history.

Honestly, I rarely need to look at the code anymore. Forcing AI to do test driven development helps catch lots of things. TallPBX currently has around 2000 Pest tests. All run before almost every major commit. I don't think there are any other open source PBX projects out there that have as many tests as TallPBX.

Code:
# Smoke — critical-path verification (~20s)
php artisan app:test --smoke

# Default — all feature tests, parallel by default (~65s)
php artisan app:test

# Full — features + Dusk browser tests (~150s, requires Chromium; do not use the
# web panel in another tab while they run — see INSTALL.md, "Browser Testing (Dusk)")
php artisan app:test --full

# Filter a specific test file
php artisan test --filter=AdminAuthTest

# Sequential debugging (no --parallel)
php artisan app:test --sequential

# Optional: clear Laravel caches before testing
php artisan app:test --smoke --clear-cache

I also had AI do a lot of performance/stress testing, cache optimization, and VoIP validation.


It's preloaded with AI agent instructions and skills and uses the Apache 2.0 license, so people are free to clone it and have AI customize it for their own use if they want.
 
Last edited:
It's actually very important for some people to know the developer's skill set. The stack that TallPBX was built on is very similar to FS PBX. I might consider hiring him.
Unfortunately, with AI, we have a lot of rookie developers, and proper vetting is required. AI can write code. Everyone knows that. However, producing well-written AI code still needs supervision from a developer with the skill and system knowledge.
I've never heard of FSPBX until I came to this forum to make this post.

Looks like it uses a Vue front end. I am using a TALL stack, which is completely different.

Although it appears to use Laravel on the backend, I am guessing that is considerably different as well. I am using a modular design that uses Composer. That helps enforce separation of concerns and makes it easy to add/remove unnecessary features. It also makes it easy for people to create their own custom modules in their own repos and easily add them using Composer.

Creating a New Module​

Scaffold a new module with the make:module command:
Code:
php artisan make:module call-forwarding \
    --display-name="Call Forwarding" \
    --description="Forward calls to external numbers" \
    --category="PBX Features"
This creates the full directory structure:
Code:
app-modules/call-forwarding/
├── composer.json          # PSR-4 autoloading + Composer discovery
├── module.json            # Module manifest (version, namespace, requirements)
├── config/                # Module-specific config files
├── database/migrations/   # Database migrations
├── lang/en/               # English translations
├── resources/views/       # Blade views (namespace: call-forwarding::)
└── src/
    ├── Livewire/          # Livewire components
    └── Providers/         # ModuleServiceProvider

Module Commands​

TallPBX provides first-party Artisan commands for module discovery and registry maintenance:
Code:
# Sync module.json manifests into the database module registry
php artisan module:sync

# Sync only first-party modules under app-modules/
php artisan module:sync --only-local

# Build the TallPBX module manifest cache
php artisan module:cache

# Clear generated module manifest caches
php artisan module:clear

# List modules known to the registry
php artisan module:list
 
Last edited:
I've never heard of FSPBX until I came to this forum to make this post. Looks like it uses a Vue front end. I am using the TALL stack, which is completely different. Although it also appears to use Laravel, I am guessing the backend is considerably different as well. I am using a modular design that runs on composer. That makes it easy for people to create their own custom modules in their own repos and add them using composer.
It's quite similar. I use Vue.js, while you use Alpine.js. I moved away from Livewire because it was too slow. I then switched to Inertia, which was faster but still not as fast as I desired. Now, my setup is entirely API-driven and lightning fast. Laravel is modular by design, so we have that in common as well.

Likewise, I've never heard of TallPBX.
 
  • Like
Reactions: RandomSeed
It's quite similar. I use Vue.js, while you use Alpine.js. I moved away from Livewire because it was too slow. I then switched to Inertia, which was faster but still not as fast as I desired. Now, my setup is entirely API-driven and lightning fast. Laravel is modular by design, so we have that in common as well.

Likewise, I've never heard of TallPBX.
API driven, such as when designing single page applications (SPAs) using a Vue front end, is a completely different design choice. TallPBX doesn't even have an API. At least not yet. I thought about going with an SPA front end at first but decided to go with the TALL stack instead. Not saying it's better, just a different design choice.

Alpine.js is a minimalist library for UI presentation. Vue.js is a full framework, so about the only thing they have in common is that they both use JavaScript.
 
Last edited:
My opinion/s. Ignore me if you will ;)

I think it really boils down to whether folks are in favour of or against AI and vibe coding. Its kind of a big deal. Akin to whether or not your next meal has been sustainably farmed or sourced. That should be declared clearly and openly. When its not then I find it hard to trust, because its a misrepresentation and an omission. That blurry line is not normal, and should not be glossed over. Personally I'd like to know if the majority of the contents of an email from a real person is actually written by them. Not easy to tell, but when there is a crap ton of detail in a reply, I start to wonder. I appreciate my time, and I'd appreciate it if others shared theirs equally.

From this thread I get that the majority of this code has been LLM generated, and not human coded. It is very new, and likely of a month.
 
Audit: There is no information on the developer. Despite having "15 years" of coding experience the Github has one repo created two weeks ago. Likely completely LLM vibe coded, "Egoded". Developer posts / replies are LLM generated.

Why not put some effort into one of the other already developed projects? Unless this isn't even a real person.