Hello there (ʘ‿ʘ)╯
This post is part of a short series you may prefer to read chronologically.
Chosing what will compose a stack is both a matter of experience, opinion and timing.
Experience helps identifying what will stick, but opinion has a major role in the final chosing.
As of timing, what seems to be a good idea at the time, may be compromised by a lack of maintainers goodwill or vision a year later.
So by no means is the LOLstack The Perfect Stack™️. Now that's out, let's cover what it has to offer.
TL;DR: Enough with the stalling, Access the good stuff
An App, an API, a Database and all of the in-between that make an App and its stack work.
|Mobile app that targets iOS, Android & the web||React Native Expo|
|Design system for a component-based, modular & consistent design||Eva Design UI Kitten|
|Typing for a type-safe runtime & auto-generated interfaces||TypeScript|
|Database with both relational and unstructured data||PostgresQL|
|GraphQL API autogenerated from the database schemas||PostGraphile|
|RESTful API autogenerated from the database schemas||PostgREST|
|Custom RESTful API for implementing server-side specific needs||ExpressJS TypeScript|
|Authentication flow for handling sign-up and sign-in||JSON Web Token|
|Role-based permissions for a granular and low-level security||PostgresQL|
|Containers for services isolation and reproducibility||Docker|
|Job queue for handling asynchronous tasks||Graphile Worker|
|Job scheduler for running repetitive automated tasks||ofelia|
|Web proxy with SSL certificate handling, access logs||traefik|
|Admin interface for accessing & manipulating the data directly||pgweb adminer|
|Unit testing for ensuring that code is functional||Jest plpgunit|
|Status page to communicate outage and downtime to customers||Cachet|
Some of these choices are questionable? Please drop a comment, and let's 👊 discuss 'em softly :)
Feeling overwhelmed? Don't. That was the boring part.
Now is the good part, as booting this stack is just a copy-paste away:
git clone email@example.com:codename-co/stack.git && cd $_ docker-compose up
🤭 Installing Docker first would be a good idea by the way.
The LOLstack boilerplate is open source.
This is great news to you right now for your 🤪 crazy app idea.