My Start-up's tech stack.
Tags: startup, php, webdev, productivity
Published: 2022-09-18 00:59:08

Hi there! We recently shared a post over at [Assembly](https://assemblyapp.io/), and I thought I'd share it here too - since you may find it interesting!


What is the Assembly tech stack?
Working primarily with small development agencies and technical people, we often get asked about the technology that powers the Assembly platform - and as a part of our effort to be transparent and honest, we love to share every inch of information that we can.


Laravel
Our core application logic is handled by Laravel. We’re huge fans of the Laravel Framework and the PHP language in general. By using Laravel, we can very quickly prototype, deploy and monitor new features, which is critical to our fast-moving philosophy. Thanks to the opinionated & standardised approach taken by Laravel, we can onboard new developers much easier than we would with a homebrew solution.


Tailwind.css
Our beautiful dashboards are styled by the utility-first library Tailwind. Tailwind is our go-to styling library for a few reasons, but the primary reason is simply how fast we can design new features and integrate them into our design library. Tailwind automatically 🌳shakes too, which means we don’t have to worry (too much) about optimizing CSS file sizes.


Livewire
Laravel Livewire utilizes over-the-wire reloading of components, handling what would be complex front-end logic in PHP, and returning rendered HTML to the user. Livewire components help us confidently ship new features and massively reduce stack complexity, effectively eliminating complicated JavaScript from our development process. Since Livewire is SSR’d, we don’t need to worry about SSR’ing JS, which is always cumbersome for the purpose of SEO.


Alpine.js
We utilize Alpine to handle simple front-end interactions that don’t qualify for an entire Livewire component. Think toggling opening and closing of menu’s, keyboard shortcuts - that kind of thing. Coming in at 7.1kB gzipped, Alpine is absolutely tiny, and packs a big punch.


Github Actions
We make use of Github actions to handle our deployment process. Effectively, our pipe looks something like this: set up PHP, install Composer, NPM, and all dependencies. Run tests, deploy code, dump caches, and reboot listeners.



Digital Ocean Database Clusters
We use MySQL-managed databases provided by DigitalOcean. We opted for DO-managed clusters to give us, and our customers peace of mind in the knowledge that all of our data is backed up, scalable, and highly available, reducing DB-based downtime to a minimum. When DO notices degraded performance or node failure, their infrastructure automatically spins up replacement nodes, keeping our platform online when it’s most important.



Sentry
We use Sentry to monitor application-level errors. When an unhandled error occurs, we are instantly notified, and provided with detailed stack traces and debugging information, to help us immediately pinpoint the error and provide resolution.



Pingdom
Using Pingdom to monitor application uptime allows us to provide public uptime status pages, which let you know when we’re having a bad day. Our team is notified when Pingdom sees something go wrong, giving us confidence that our application is online, and when it isn’t, we’ll know.


Sendgrid
Sendgrid is a fantastic tool that allows to easily send emails with high reliability, with reasonable pricing and easy integration, it’s a no-brainer for us to use their service to make sure emails arrive on time, every time.


Stripe
You guessed it, we use Stripe to handle payment and subscriptions. Why? Well, why wouldn’t you? We’re huge fans of their docs, pricing and features.


Google API’s
As you know, we provide Google Calendar integrations, for which… we use… the Google API. The Cloud Console is awesome, and pricing is pretty fair.


Open Source packages
We’d like to add a note that we’re huge fans of Open Source Software, and we extensively use OSS packages from awesome people like Spatie, jamesmills, and Guzzle.



Fathom Analytics
We care for privacy. Instead of using free services like Google Analytics, where your data, and our data is the payment, we opted to use the fantastic privacy-first Fathom Analytics, who provide fast, private and anonymous analytics.




Our thoughts
As you can hopefully tell, our stack is focused on allowing us to quickly, securely, and confidently prototype, build - and - ship new features. We like to use modern tools, and we aren’t scared of moving the stack around, previously, we did use Inertia, but we changed to Livewire - and we’re loving it.