archtechx Profile Banner
ARCHTECH Profile
ARCHTECH

@archtechx

Followers
6K
Following
3K
Media
156
Statuses
2K

Meticulously architected web applications. πŸ™ @TenancyLaravel πŸ’œ @LeanLaravel πŸ”₯ @LaravelCodeTips

Joined April 2021
Don't wanna be here? Send us removal request.
@archtechx
ARCHTECH
3 months
πŸ™ Tenancy v4 & SaaS boilerplate v2 release is very close!. If you're building a SaaS, make sure you don't miss out on the launch discount!. Subscribe here to be notified about the release (we don't send any spam, only big announcements):
1
1
13
@archtechx
ARCHTECH
7 days
Tenancy has reached 4000 stars on GitHub πŸ₯³. Just in time for v4 😎.
0
0
7
@archtechx
ARCHTECH
16 days
RT @valorin: ⚠️ New CRITICAL vulnerability disclosed in Livewire v3, you need to update ASAP! ⚠️. This is a rather sneaky one that gives an….
Tweet card summary image
securinglaravel.com
[Notice #4] Livewire v3 is vulnerable to an RCE (Remote Command Execution) during component property update hydration in specific scenarios. ⚠️ Update your Livewire ASAP! ⚠️
0
52
0
@archtechx
ARCHTECH
16 days
RT @samuelstancl: 4000 words about forking PHP processes and a bit of FFI for some extremely unnecessary optimizations, link below. This is….
0
12
0
@archtechx
ARCHTECH
17 days
RT @taylorotwell: We have an open source changelog now by the way. πŸ˜‡. Monthly summaries of what we've been shipping across our open source….
Tweet card summary image
laravel.com
Laravel is a PHP web application framework with expressive, elegant syntax. We’ve already laid the foundation β€” freeing you to create without sweating the small things.
0
27
0
@archtechx
ARCHTECH
3 months
.@enunomaduro is posting a lot about pcntl_fork(), which is a super underrated approach for doing things concurrently in PHP. Thinking it's time to write a long form article about how it can be used, with our use in @TenancyLaravel as a reference? 😼.
0
0
12
@archtechx
ARCHTECH
3 months
RT @archtechx: πŸ¦€ The neat thing is how we've implemented this. Maintaining 24 repos would be impossible, so instead we have a custom tool w….
0
4
0
@archtechx
ARCHTECH
3 months
@archtechx
ARCHTECH
3 months
πŸ™ Tenancy v4 & SaaS boilerplate v2 release is very close!. If you're building a SaaS, make sure you don't miss out on the launch discount!. Subscribe here to be notified about the release (we don't send any spam, only big announcements):
0
0
2
@archtechx
ARCHTECH
3 months
@archtechx
ARCHTECH
3 months
πŸ™ Tenancy v4 & SaaS boilerplate v2 release is very close!. If you're building a SaaS, make sure you don't miss out on the launch discount!. Subscribe here to be notified about the release (we don't send any spam, only big announcements):
0
0
2
@archtechx
ARCHTECH
3 months
This is just a short peek into what the process of generating 24 different app templates looks like. If people are interested, I can cover how we keep this reasonably fast (related to why we're using Rust) and some details like how distributing updates works.
1
0
3
@archtechx
ARCHTECH
3 months
The final step in generating each boilerplate setup is running tests (multiple variations, including regular tests, in-memory SQLite, and parallel tests) and if they all pass, create a zip file that users can download. If tests don't pass, the program reports which test run
Tweet media one
1
0
2
@archtechx
ARCHTECH
3 months
Speaking of helpers, can't forget dd() 😁. If you're at least a bit familiar with Rust, you'll notice we use unwrap() a lot. This is intentional β€” there are basically no recoverable errors in our code, so they should all panic and report exactly where they happened
Tweet media one
1
0
3
@archtechx
ARCHTECH
3 months
Most of the Rust code looks like this. Functions that either modify files or copy stubs, and helpers that are called by those functions
Tweet media one
1
0
2
@archtechx
ARCHTECH
3 months
This means the only things we need to maintain *separately* are views. Separate views for Inertia and Blade/Livewire setups, also depending on the starter kit being used since they use different components and layouts
Tweet media one
Tweet media two
1
0
2
@archtechx
ARCHTECH
3 months
The methods shown above are used in controller *templates* like this one. We keep route names consistent across setups, so the only things that need to change are usually view names (Blade vs Inertia) or parameters based on what the view might need
Tweet media one
1
0
2
@archtechx
ARCHTECH
3 months
The first thing is having descriptive types for anything our code may want to know about the setup being generated. Based on those types, functions adjust their behavior to the currently used frontend stack, database setup, identification method, or starter kit used
Tweet media one
1
0
2
@archtechx
ARCHTECH
3 months
πŸ¦€ The neat thing is how we've implemented this. Maintaining 24 repos would be impossible, so instead we have a custom tool written in Rust for generating these setups. Each generated setup has a clean git history and is automatically tested after being built. Here's how we keep
Tweet media one
@archtechx
ARCHTECH
3 months
🀯 Tenancy v4 will launch with 24 different SaaS boilerplate setups. That is any combination of:.- Jetstream with teams, Jetstream without teams, new Laravel 12 starter kits.- Domain identification / Path identification.- Livewire / Inertia + Vue.- Multi-database / PostgreSQL RLS.
2
4
21
@archtechx
ARCHTECH
3 months
Thread tomorrow about how we manage to maintain 24 different setups? πŸ€”.
@archtechx
ARCHTECH
3 months
🀯 Tenancy v4 will launch with 24 different SaaS boilerplate setups. That is any combination of:.- Jetstream with teams, Jetstream without teams, new Laravel 12 starter kits.- Domain identification / Path identification.- Livewire / Inertia + Vue.- Multi-database / PostgreSQL RLS.
0
0
5
@archtechx
ARCHTECH
3 months
RT @alexjgarrett: If you’re bored this weekend just pop your email in here and get instant alerts when new Laravel features drop. It’s fre….
Tweet card summary image
newinlaravel.com
Get periodic, easy to consume summaries of the most relevant changes in Laravel, directly to your inbox β€” as they're released.
0
3
0
@archtechx
ARCHTECH
3 months
Version 3 only had one boilerplate which obviously doesn't work for many apps β€” we use Livewire, domain identification, multi-database, but many apps don't!. This addresses that problem and makes the boilerplate usable for so many more projects. Excited to see what people build.
1
0
10