What is the Finisher Studio?
The Finisher Studio is my current favorite
tech stack and an example of my work built with...
It's not a starter template, it's a Finisher Studio!
Most code samples that developers use to build their websites are either narrowly focused
on a very specific task, like for example a password strength meter, or shallow in nature,
primarily focused on layout or style, like a typical starter template.
By contrast, the Finisher Studio incorporates all those things by focusing on complete sets of functional workflows,
like for example, user authentication. In fact, it goes a step further and ties directly into a
curated set of Software as a Service(SAAS) platforms that serve user authentication,
data and file storage, search,
transactional emails and email-based marketing campaigns, all in one package.
The idea is to provide complete code to connect and use platforms that offer low cost massive scaling
while requiring only a
simple account creation on each platform with a little simple copying and pasting of platform API keys into a
configuration file and settings page. No changes to code. Code passes from developer to Github,
to Heroku, thru the server pipeline
to production either automatically or manually via point-and-click on Heroku.
The Finisher Studio is a web app template of core security and user management features built with
Nuxt,
Vue and
Node
that supports point-and-click horizontal scaling
from the best of class and near-free platform service plans of
Firebase,
Algolia,
SendGrid and
Heroku
to plans that support millions of users.
Low Cost Scalability
The Finisher Studio is based on best-of-class web application
service providers like Firebase, Algolia, SendGrid and Heroku that all offer generous INDEFINITELY FREE accounts,
so that you can go from incubating your startup with near-$ZERO on free plans to scaling up to a web app of
literally hundreds of servers;
all with a credit card, a few clicks, a few configuration file entries, a few minor template changes, but no changes to existing code.
Marketing Campaign Integration
This means more time and resources can be spent on the aspects of your startup that make it unique!
It also means that early and critical marketing, partnership and hiring efforts can start leveraging great tools like
SendGrid Email Marketing Campaigns,
Email WYSIWYG Designer and Templates without changes to code.
Web Services Architecture
The Finisher Studio employs a web services architecture whereby the web client
makes calls to a Node.js web service that processes the requests including calls to
the FiresStore database, Algolia search and SendGrid email services. This design
provides a necessary layer of security including the protection of platform service API keys.
User Management for Role-based Hierarchy and a Built-in Premium-Wall
Users administration can be delegated to three levels deep, Owners, Super Admins and Admins.
Users can be designated as Super Users to reflecting a special status that may
be assigned to indicate a membership status or paywall access.
Core Workflows & Features
User Authentication
Sign up flow, Sign in flow, Password reset flow, Email address update flow.
Users can signup, signin, reset their password, and change their email. All user flows register through Firebase Authentication and include the necessary
email-based checks and verifications.
Search
Find and populate data fast.
Read-only datasets and search are provided by Algolia with speed, high availability, intelligence and customizable search.
User Engagement
Contact Us flow, Subscribe To Updates flow.
Users can send messages to the website Contact Us email as well as signup to receive updates and marketing.
Email unsubscribe features are included and built in to the flows. All flows include the necessary
email-based verifications.
Marketing specialists can then login to SendGrid to create
Marketing Campaigns without changes to website code, taking advantage of the separation of labor between developers and marketing specialists.
User Management
Change user system role, Review user data and authentication details, Enable/disable users, Delete users.
Users page allows for a user permissions hierarchy of Users, Super Users, Admins, Super Admins, and Owners.
Owners, SuperAdmins and Admins can only view or manage
other accounts of a lesser System Role.
Admins don't see other Admins or SuperAdmins or Owners;
SuperAdmins don't see other SuperAdmins or Owners;
and Owners don't see other Owners.
Therefore Owners are never viewed or managed from this interface
but instead are maintained directly by the developer that manages the application database.
This design allows for the delegation of administrative monitoring and tasks from the Owner on down.
Data is kept in Firebase FireStore.
Separation of Code and Configuration
Server-specific configurations, client-specific configurations.
By separating the code from configuration, along the development pipeline, data like platform API keys are kept private on the hosting service
throughout the process allowing developers to work collaboratively without compromising API keys and other private data.
By separating the public configuration data that gets passes to the client device in real-time from the private configuaration
data that is necessary on the server, the security of API keys is again maintained.