It's designed by Clever Beagle, a company offering 1-on-1 mentorship, tools, and resources for building your first product. First and foremost, Pup exists as a teaching aid for Clever Beagle's mentorship services.
Before you go any further, here are some big important things to know:
Make sure you agree with Pup's technology stack
- Pup uses GraphQL for its data. It ships with a fully implemented GraphQL server and schema with subscriptions support.
- Pup uses MongoDB as its database but GraphQL allows you to use any data source.
- Pup uses React for its UI library.
- Pup uses Bootstrap (v3) for its CSS framework and React Bootstrap to get Bootstrap components in React.
- Pup uses React Router v4 for its router.
- Pup uses styled-components for authoring CSS.
- Pup includes server-side rendering (SSR) out of the box.
- Pup uses Jest for unit and integration testing and TestCafe for end-to-end testing.
Fair warning: this stack was selected because it uses technology we're familiar with, enjoy using, and think is best for helping folks to build their product. This Pup doesn't chase squirrels.
Unless you're honestly interested in helping us to improve Pup, keep your opinions to yourself.
Pup is a different breed of OSS project
What goes into Pup and when is extremely deliberate. Though it's open source, it exists as a tool for Clever Beagle's mentorship services like Together and Solo. By design, updates are kept to a minimum so the stack remains stable for customers. If you disagree with anything we're doing, you're encouraged to fork the repo or submit an issue to see if your ideas can be incorporated.
Keen to fix bugs
Though the underlying technology of Pup is updated infrequently, we are keen to fix bugs ASAP. If you think you've found a bug, please submit an issue on GitHub.
Pup is designed for production use
The goal of Pup is to give you a real-world foundation for your product. It's designed to be production ready from day one. All of our own products like Hound are built with Pup—we trust it that much. The technology it uses is designed to be "scale friendly," though, scaling is up to you—that's impossible for Pup to automate.
If all of this sounds good, you're ready to get started! Your first step is to clone Pup and install its dependencies: