Staq.js

A JavaScript library for building software that makes you money

Get started

Open-source MIT Licensed. GitHub

World Class Design

Get professional landing, pricing, about pages and more out of the box with multiple built in templates

User Ready

Staq ships with code and UI to handle user registration, log in, log out, and password reset flows

Easy Payments

Integrate one-time purchases or subscription billing into your site with just a few lines of code


What

Staq is a Javascript library for creating Software-as-a-Service (SaaS) products. It works with React, Firebase, and Stripe to abstract away all the boring parts of building software people pay you for.

The library contains a set of React components that implement standard SaaS features including:

  • User accounts
  • Landing page
  • Pricing page
  • Billing and subscription management

Staq also ships with a set of NodeJS functions to be used with Firebase to implement the backend logic necessary for features like subscription billing with Stripe.

Why

We believe it should be as easy as possible to start making money online. We believe owning and running a profitable software business will increasingly become the best way for individuals to reach financial independence.

But right now it takes too long to set up the technology to power a simple SaaS company. Even for engineers who know what they’re doing and are familiar with existing tools.

We’re building Staq to fix that.

Batteries Included

The StaqRoutes component that ships with the library will render all the routes users expect in a modern SaaS application. This code is all you need to install a professional-grade responsive landing page, along with support for user registration, sign in/sign out, and password reset flows.

	  
// App.jsx

import { BrowserRouter as Router } from 'react-router-dom'
import { StaqRoutes } from '@staqjs/client'

function App() {
  return (
    <Router>
      <StaqRoutes />
    </Router>
  )
}

export default App
	  
	
	  
// index.js

import { initStaq } from '@staqjs/client'

initStaq({
  SiteTitle: 'My Site',
  Template: {
    Name: 'One',
    Config: {
      Hero: {
        PrimaryText: 'Business Analytics like you\'ve never seen',
        SecondaryText: 'Improve your metrics with the click of a button',
        PrimaryLink: { Text: 'Get Started', To: '/signup' },
        SecondaryLink: { Text: 'Learn More', To: '/about' },
        Image: '/path/to/hero.png'
      }
    }
  }
})
	  
	

Configurable

Every one of the many built-in templates lets you customize the colorscheme and marketing copy to fit your brand.

Convenient

Use Staq to access the logged in user from anywhere in your application, along with interfaces for interacting with Stripe and Firebase.

	  
import { compose } from 'recompose'
import { withAuth, withFirebase, withStripe } from '@staqjs/client'

function UserProfileBase(props) {
  const { auth, firebase, stripe } = props

  return (
    <div>
      {/* ... */}

      <p>Hello { auth.currentUser.name }</p>

      {/* ... */}
    </div>
  )
}

const UserProfile = compose(
  withAuth,
  withFirebase,
  withStripe
)(UserProfileBase)

export default UserProfile