starter

    Opinionated SaaS quick-start with pre-built user account and organization system for full-stack application development in React, Node.js, GraphQL and PostgreSQL. Powered by PostGraphile, TypeScript, Apollo Client, Graphile Worker, Graphile Migrate, GraphQL Code Generator, Ant Design and Next.js

    Language: typescript

    Author: Elijah Perry (@eperry)

    16 stars · 393 views

    Files

    • codegen.yml (yml)
    • account_activity.mjml (mjml)
    • .devcontainer (devcontainer)
    • app_public (app_public)
    • functions (functions)
    • .eslintignore (eslintignore)
    • .github (github)
    • .gitattributes (gitattributes)
    • workflows (workflows)
    • nodejs.yml (yml)
    • .vscode (vscode)
    • plugin-typescript.cjs (cjs)
    • .yarn (yarn)
    • .yarnrc.yml (yml)
    • plugins (plugins)
    • @yarnpkg (@yarnpkg)
    • releases (releases)
    • @app (@app)
    • plugin-workspace-tools.cjs (cjs)
    • __tests__ (__tests__)
    • client (client)
    • src (src)
    • graphql (graphql)
    • AcceptOrganizationInvite.graphql (graphql)
    • EmailsForm_User.graphql (graphql)
    • Logout.graphql (graphql)
    • OrganizationBySlug.graphql (graphql)
    • DeleteOrganization.graphql (graphql)
    • EmailsForm_UserEmail.graphql (graphql)
    • RemoveFromOrganization.graphql (graphql)
    • OrganizationPage.graphql (graphql)
    • ProfileSettingsForm_User.graphql (graphql)
    • SettingsPassword.graphql (graphql)
    • SettingsEmails.graphql (graphql)
    • TransferOrganizationBillingContact.graphql (graphql)
    • Shared.graphql (graphql)
    • SettingsProfile.graphql (graphql)
    • UpdateOrganization.graphql (graphql)
    • UpdateUser.graphql (graphql)
    • pages (pages)
    • VerifyEmail.graphql (graphql)
    • _document.tsx (tsx)
    • create-organization (create-organization)
    • _app.tsx (tsx)
    • index.tsx (tsx)
    • accept.tsx (tsx)
    • invitations (invitations)
    • o (o)
    • [slug] ([slug])
    • settings (settings)
    • login.tsx (tsx)
    • members.tsx (tsx)
    • accounts.tsx (tsx)
    • settings (settings)
    • security.tsx (tsx)
    • components (components)
    • src (src)
    • jest.config.js (js)
    • package.json (json)
    • SpinPadded.tsx (tsx)
    • Warn.tsx (tsx)
    • SharedLayout.tsx (tsx)
    • config (config)
    • babel.config.js (js)
    • jest.config.js (js)
    • src (src)
    • tsconfig.json (json)
    • README.md (md)
    • db (db)
    • __tests__ (__tests__)
    • CONVENTIONS.md (md)
    • app_private (app_private)
    • functions (functions)
    • tables (tables)
    • migrations (migrations)
    • jest.config.js (js)
    • user_emails.test.ts (ts)
    • babel.config.js (js)
    • committed (committed)
    • current (current)
    • 000001.sql (sql)
    • 1-current.sql (sql)
    • scripts (scripts)
    • wipe-if-demo (wipe-if-demo)
    • e2e (e2e)
    • babel.config.js (js)
    • homepage.cy.ts (ts)
    • cypress (cypress)
    • e2e (e2e)
    • fixtures (fixtures)
    • support (support)
    • example.json (json)
    • tsconfig.json (json)
    • README.md (md)
    • jest.config.js (js)
    • graphql (graphql)
    • package.json (json)
    • jest.config.js (js)
    • lib (lib)
    • babel.config.js (js)
    • src (src)
    • GraphileApolloLink.client.ts (ts)
    • babel.config.js (js)
    • server (server)
    • __tests__ (__tests__)
    • index.tsx (tsx)
    • withApollo.tsx (tsx)
    • mutations (mutations)
    • __snapshots__ (__snapshots__)
    • queries (queries)
    • __snapshots__ (__snapshots__)
    • babel.config.js (js)
    • helpers.ts (ts)
    • jest.config.js (js)
    • public (public)
    • scripts (scripts)
    • src (src)
    • fs.ts (ts)
    • middleware (middleware)
    • graphile.config.ts (ts)
    • .eslintrc.js (js)
    • installCypressServerCommand.ts (ts)
    • installPassportStrategy.ts (ts)
    • plugins (plugins)
    • installSharedStatic.ts (ts)
    • SubscriptionsPlugin.ts (ts)
    • utils (utils)
    • worker (worker)
    • handleErrors.ts (ts)
    • src (src)
    • tasks (tasks)
    • templates (templates)
    • password_reset_unregistered.mjml (mjml)
    • TECHNICAL_DECISIONS.md (md)
    • apollo.config.js (js)
    • LICENSE.md (md)
    • Procfile (Procfile)
    • README.md (md)
    • data (data)
    • docker (docker)
    • babel.config.js (js)
    • scripts (scripts)
    • schema.graphql (graphql)
    • amazon-rds-ca-cert.pem (pem)
    • lsfix.sh (sh)
    • docs (docs)
    • setup.sh (sh)
    • dockerctl (dockerctl)
    • error_codes.md (md)
    • docker-compose.yml (yml)
    • heroku-setup.template (template)
    • package.json (json)
    • jest.config.js (js)
    • scripts (scripts)
    • random.js (js)
    • lib (lib)
    • _setup_utils.js (js)
    • setup_db.js (js)
    • yarn.lock (lock)
    • send_email.ts (ts)
    • CurrentUserAuthentications.graphql (graphql)
    • manage_emails.cy.ts (ts)
    • passwords.ts (ts)
    • production.Dockerfile (Dockerfile)
    • ATTRIBUTION.md (markdown)
    • user__forgot_password.ts (ts)
    • production_todo.md (md)
    • README.md (md)
    • dotenv.js (js)
    • transport.ts (ts)
    • README.md (md)
    • index.ts (ts)
    • schema-export.ts (ts)
    • login.cy.ts (ts)
    • user__forgot_password_unregistered_email.ts (ts)
    • password_reset.mjml (mjml)
    • SPONSORS.md (md)
    • pgrita.yml (yml)
    • FourOhFour.tsx (tsx)
    • Orders.ts (ts)
    • test.js (js)
    • fs.ts (ts)
    • index.tsx (tsx)
    • run.js (js)
    • index.ts (ts)
    • tsconfig.json (json)
    • windows-nodejs.yml (yml)
    • installLogging.ts (ts)
    • InvitationDetail.graphql (graphql)
    • change_password.test.ts (ts)
    • verify_email.cy.ts (ts)
    • package.json (json)
    • errors.ts (ts)
    • ResetPassword.graphql (graphql)
    • login.test.ts (ts)
    • error.html (html)
    • index.ts (ts)
    • afterReset.sql (sql)
    • extensions.json (json)
    • babel.config.js (js)
    • tsconfig.json (json)
    • GraphileApolloLink.ts (ts)
    • ButtonLink.tsx (tsx)
    • devcontainer.json (json)
    • RemoveQueryQueryPlugin.ts (ts)
    • crontab (crontab)
    • tsconfig.json (json)
    • cypress.config.js (js)
    • setup_env.js (js)
    • package.json (json)
    • e2e.js (js)
    • Redirect.tsx (tsx)
    • installHelmet.ts (ts)
    • installWorkerUtils.ts (ts)
    • installPassport.ts (ts)
    • package.json (json)
    • register_account.cy.ts (ts)
    • really_create_user.test.ts (ts)
    • tsconfig.json (json)
    • test-docker.js (js)
    • installSSR.ts (ts)
    • .gitignore (gitignore)
    • tsconfig.json (json)
    • README.md (md)
    • PrimaryKeyMutationsOnlyPlugin.ts (ts)
    • shutdownActions.ts (ts)
    • RequestAccountDeletion.graphql (graphql)
    • ChangePassword.graphql (graphql)
    • helpers.ts (ts)
    • index.tsx (tsx)
    • .babelrc (babelrc)
    • DeleteEmail.graphql (graphql)
    • SharedLayout_Query.graphql (graphql)
    • Register.graphql (graphql)
    • schema.sql (sql)
    • README.md (md)
    • package.json (json)
    • installPostGraphile.ts (ts)
    • dump-db.js (js)
    • package.json (json)
    • tsconfig.json (json)
    • Dockerfile (Dockerfile)
    • forms.ts (ts)
    • reset_password.test.ts (ts)
    • package.json (json)
    • index.tsx (tsx)
    • AddEmail.graphql (graphql)
    • delete_account.mjml (mjml)
    • UnlinkUserAuthentication.graphql (graphql)
    • ResendEmailVerification.graphql (graphql)
    • register.tsx (tsx)
    • SettingsLayout.tsx (tsx)
    • jest.watch.hack.ts (ts)
    • verify_email.mjml (mjml)
    • .eslintrc.js (js)
    • user__audit.ts (ts)
    • StandardWidth.tsx (tsx)
    • CreateOrganization.graphql (graphql)
    • clean.js (js)
    • README.md (md)
    • README.md (md)
    • test-seed.js (js)
    • installSession.ts (ts)
    • package.json (json)
    • run-docker-with-env.js (js)
    • .dockerignore (dockerignore)
    • babel.config.js (js)
    • cypress.yml (yml)
    • README.md (md)
    • launch.json (json)
    • settings.json (json)
    • spellright.dict (dict)
    • next-env.d.ts (ts)
    • README.md (md)
    • README.md (md)
    • ConfirmAccountDeletion.graphql (graphql)
    • CurrentUserUpdated.graphql (graphql)
    • Login.graphql (graphql)
    • OrganizationMembers.graphql (graphql)
    • next.config.js (js)
    • _error.tsx (tsx)
    • forgot.tsx (tsx)
    • delete.tsx (tsx)
    • index.tsx (tsx)
    • reset.tsx (tsx)
    • delete.tsx (tsx)
    • emails.tsx (tsx)
    • verify.tsx (tsx)
    • styles.css (css)
    • Text.tsx (tsx)
    • ErrorAlert.tsx (tsx)
    • OrganizationSettingsLayout.tsx (tsx)
    • SocialLoginOptions.tsx (tsx)
    • organizationHooks.tsx (tsx)
    • env.js (js)
    • extra.js (js)
    • .gmrc (gmrc)
    • README.md (md)
    • .jest.watch.hack.json (json)
    • link_or_register_user.test.ts (ts)
    • helpers.ts (ts)
    • confirm_account_deletion.test.ts (ts)
    • invite_to_organization.test.ts (ts)
    • logout.test.ts (ts)
    • README.md (md)
    • subscriptions.cy.ts (ts)
    • jest.config.js (js)
    • register.test.ts (ts)
    • currentUser.test.ts (ts)
    • postgraphile.tags.jsonc (jsonc)
    • app.ts (ts)
    • installDatabasePools.ts (ts)
    • installErrorHandler.ts (ts)
    • installForceSSL.ts (ts)
    • installSameOrigin.ts (ts)
    • PassportLoginPlugin.ts (ts)
    • CONTRIBUTING.md (md)
    • jest.config.js (js)
    • organization_invitations__send_invite.ts (ts)
    • user_emails__send_verification.ts (ts)
    • organization_invite.mjml (mjml)
    • GRAPHILE_STARTER_LICENSE.md (md)
    • README.md (md)
    • package.json (json)
    • copy-local-config-and-ssh-creds.sh (sh)
    • yarn-setup.js (js)
    • delete-env-file.js (js)
    • start.js (js)
    • PasswordStrength.tsx (tsx)
    • register.test.ts.snap (snap)
    • babel.config.js (js)
    • jest.config.js (js)
    • production-docker.yml (yml)
    • .env.ci (ci)
    • .editorconfig (editorconfig)
    • index.ts (ts)
    • ForgotPassword.graphql (graphql)
    • InviteToOrganization.graphql (graphql)
    • MakeEmailPrimary.graphql (graphql)
    • index.tsx (tsx)
    • README.md (md)
    • ErrorOccurred.tsx (tsx)
    • OrganizationPage_Query.graphql (graphql)
    • TransferOrganizationOwnership.graphql (graphql)
    • index.tsx (tsx)
    • currentUser.test.ts.snap (snap)
    • organization_create.cy.ts (ts)
    • organization_page.cy.ts (ts)
    • forgot_password.test.ts (ts)
    • cloudflare.ts (ts)
    • commands.ts (ts)
    • installCSRFProtection.ts (ts)
    • tsconfig.json (json)
    • README.md (md)
    • user__send_delete_account_email.ts (ts)
    • clean-volumes.js (js)
    • jest.config.base.js (js)

    Loading code snippet…