Production-ready fullstack Nuxt 3 starter with a well-working, opinionated configuration

Overview

sidebase-logo-for-dark sidebase-logo-for-light

sidebase

CI Status Follow us on Twitter Join our Discord GitHub stars

sidebase is a modern, best-practice, batteries-included fullstack-app starter based on Nuxt 3 and TypeScript.

With this nuxt 3 starter you get production-ready frontend + backend projects while still having fun! Atinux, CEO of Nuxt said to sidebase on Twitter:

Beautiful work on sidebase!

Quick start

sidebase-preview-for-dark sidebase-preview-for-light

  1. Use the official nuxi-cli to start:
    npx nuxi@latest init -t community/sidebase
  2. Go into the nuxt-sidebase/ directory
    cd nuxt-sidebase
  3. Install the dependencies
    npm i
  4. Start developing (with database, backend, API, ... running) at localhost:3000
    npm run dev

Features

The key features are:

  • πŸŽ’ Fullstack: Develop frontend and backend in a single TypeScript code base
  • 🏎️ Fast to code: Database, example tests, example components and example pages are all there for you to fill out
  • πŸ› Fewer bugs: Strong data-validation using zod to validate all transferred data, fully typed API-routes, strict DB models via TypeORM
  • 😊 Easy to use: Designed to follow best practices and to be ready-to-go for development, without additional dev-dependencies like docker that make it hard to get started
  • πŸš€ Ready for launch: Github Actions CI, Dockerfile, easy switch to most popular SQL-databases are all there, out of the box (get in touch if you're missing something)

To facilitate this sidebase bootstraps a nuxt 3 project that permits developing a backend and a frontend using just Nuxt 3 with overarching TypeScript support. We want to show the world how enjoyable end-to-end typescript programming can be, displacing the myth that JS/TS-backends are no good. This starter solves a lot fo the "real-world" problems that occur after you start using Nuxt or any other framework: How to write backend tests? How to write component tests? How to calculate test coverage? How to integrate a database? How to build a docker image? ...?

If you have any problems with this project (e.g., setting it up on your PC) open an issue and we'll figure it out together with you πŸŽ‰

Documentation

This is the documentation section of sidebase. It contains useful commands and guides to make your work easier and more pleasurable.

Commands

Useful Commands for development, testing and deployment:

  • Develop & Debug the app:
    • npm i: Install required dependencies
    • npm run dev: Start the fullstack app, including database
    • npm run story: Start histoire for component story based development of UI
  • Linting & Formatting (npm run lint)
    • npm run lint:style: eslint for formatting & linting
    • npm run lint:style -- --fix: Autofix styles and lints where possible
    • npm run lint:types: typescript typechecking
  • Testing & Code Coverage & Component Snapshots
    • npm run test: Run tests once, report results and coverage
      • npm run test:watch: Run tests and watch file changes, run tests for changed files
      • npm run test -- -u: Update component snapshots after components changed
      • npm run test -- -t "some test-text": Run all tests with some test-text in their test(...) description
    • npm run test:ui: Run the vitest testing web UI for easier test interaction
    • @testing-library/vue for easy and best-practice component tests, see example here
    • breakpoint debugging (zero-config in VS Code)
      1. Open the command palette (CMD / CTRL + SHIFT + P)
      2. Select "Debug: JavaScript Debug Terminal"
      3. Run any npm command inside app/, e.g.: npm run test
      4. Your code editor colors should change a bit (e.g.: to orange) while executing the command, the left side should show deep execution insights
      5. Set breakpoints (click left of line count in editor - red dot should appear) - the debugger will automatically work and stop at them and allow you to inspect variables
      6. Run a command that runs the code you set breakpoints at, e.g., npm run test
  • Building & Deploying:
    • npm run build: Build the app for production
    • npm run start: Start the app in production (requires npm run build beforehand)
  • CSS usable without imports
    • Utility & Styling: TailwindCSS 3
    • Components: Ant Design Vue with component-auto-import
  • slim docker ready
    > docker build -t nuxt3-app .
    > docker run -p 3000:3000 --init --rm nuxt3-app
    • Note: Docker is not required for development or deployment - for development sqlite3 is used and will launch automatically via npm run dev πŸš€
  • Miscallaneous
    • nvm use: If you use nvm, use this command to make sure that your local environment uses the correct, required node version
    • Pre-commit checking (husky) & fixing (lint-staged)
    • github CI pipeline to linting, testing, typing checks
    • nuxt-component support in tests and histoire
    • debug sql database queries by setting logging: true in the database/index.ts: This will show you a live log of all ongoing database queries which is super helpful to debug database problems

Guides

Useful guides to get started with or use more advanced features of sidebase.

First time node and npm setup

If this is the first time you run a npm / node app on your setup:

  1. Install the node version manager nvm by running:
    > curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
  2. Install the required node and npm version:
    # uses existing `.nvmrc`-file to install required version
    > nvm install
  3. Use the required node and npm version:
    # uses `.nvmrc` to use required version
    > nvm use
    
    # ALTERNATIVE: make node 16.14.2 your default node version (version copied from `.nvmrc`, check there for most up to date node version)
    > nvm alias default 16.14.2
  4. Install a code editor (recommended: VS Code), get it here
  5. Uninstall or disable the old Vue VS Code extension Vetur, else conflicts may arise between volar and Vetur
  6. Install the volar extension to support vue, nuxt and typescript development help
  7. Enable "take over mode" for volar for this project.
    • documented here: johnsoncodehk/volar#471
    • for VS Code:
      1. Run (CMD/CTRL + SHIFT + P): Extensions: Show Built-in Extensions
      2. Find "TypeScript and JavaScript Language Features"
      3. Right click and select "disable for workspace"
      4. Reload the editor
      5. A message "Take over mode enabled" (or similar) should appear
  8. Go to the top of this section and execute commands (start with npm i to get all packages!)

If you have type-problems after running npm i for the first time:

  • Ensure you have vetur disabled or uninstalled (see above),
  • Ensure you have the builtin typescript extention of VS Code disabled (see above),
  • Reload the vue volar server (VS Code command: "Volar: Restart Vue Server")
  • Close and re-open the file you have problems with

If none of this works, file an issue (preferrably with a reproduction) here.

nuxt-sidestream-parse

  1. nuxt-sidestream-parse to validate and deserialize data from the server in the frontend:
    • Define a zod-schema for the response of your endpoint, like so:
      // file: ~/server/schemas/healthz.ts
      import { z } from '@sidestream-tech/nuxt-sidebase-parse'
      import { transformStringToDate } from './helpers'
      
      export const responseSchemaHealthCheck = z.object({
        status: z.literal('healthy'),
        time: z.string().transform(transformStringToDate),
        nuxtAppVersion: z.string(),
      })
      
      export type ResponseHealthcheck = z.infer<typeof responseSchemaHealthCheck>
    • Define an endpoint that returns complex data (e.g.: date-objects), like so:
      // file: ~/server/api/healthz.get.ts
      import { defineEventHandler } from 'h3'
      import type { ResponseHealthcheck } from '~/server/schemas/healthz'
      
      export default defineEventHandler((): ResponseHealthcheck => {
        return {
          status: 'healthy',
          time: new Date(),
          nuxtAppVersion: process.env.NUXT_APP_VERSION || 'unknown',
        }
      })
    • Call it from the frontend, get free data validation, derserialization (e.g.: string-date is transformed to Date object) and typing, like so:
      // file: ~/pages/index.vue
      import { makeParser } from '@sidestream-tech/nuxt-sidebase-parse'
      import { responseSchemaHealthCheck } from '~/server/schemas/healthz'
      
      const transform = makeParser(responseSchemaHealthCheck)
      const { data } = await useFetch('/api/healthz', { transform })
      
      console.log(data)
      // -> Object { status: "healthy", time: Date Thu Sep 15 2022 15:45:53 GMT+0200 (Central European Summer Time), nuxtAppVersion: "unknown" }
    • That's it! data will be fully typed AND all data inside will be de-serialized, so time will be a Date-object, and not a string, that you first need to deserialize
    • If an error is thrown, it's done using nuxt createError, so it works well in frontend and on the server. data will be null in that case. You can find zod-details about your error in error.data
  2. Use nuxt-sidestream-parse to validate data that the user has passed to your API endpoint:
    • Parse user data like this:
      import { defineEventHandler } from 'h3'
      import type { CompatibilityEvent } from 'h3'
      import { parseBodyAs, z } from '@sidestream-tech/nuxt-sidebase-parse'
      
      export default defineEventHandler(async (event: CompatibilityEvent) => {
        // Parse the payload using the update schema. The parsing is important to avoid bad, incorrect or malicious data coming in
        const payload = await parseBodyAs(event, z.object({
          requestId: z.string().uuid(),
          pleaseDoubleThisNumber: z.number()
        }))
      
        return {
          requestId: payload.requestId,
          doubledNumber: 2 * payload.pleaseDoubleThisNumber
        }
      })
    • Other helpers like parseQueryAs, parseCookiesAs, parseParamsAs, ... are defined in @sidestream-tech/nuxt-sidebase-parse. See a bigger example here

License

MIT

Comments
  • Choose vue 3 UI framework

    Choose vue 3 UI framework

    Goal

    List vue 3 ui component frameworks.

    Context

    We may want to switch away from ant-design-vue. For this we should list and evaluate existing CSS frameworks. The comparison in the end should be similar to this one ORM comparison we did: https://github.com/sidestream-tech/shift-book/issues/49#issuecomment-1152344039

    Tasks

    • [ ] list shortcomings of ant-design vue
    • [ ] List answerable and understandable requirements in a first comment
      • answerable means: you should be able to give clear yes / no / number answers in a short form
      • understandable means: people with a base of web-development can read and understand them in a couple of words
      • see #1 for some requirements already gathered
    • [ ] discuss requirements with @BracketJohn
    • [ ] Then create a table overview of exisitng frameworks that support vue3
      • [ ] rate them in the requirements you listed above
    enhancement 
    opened by BracketJohn 20
  • Upgrade to nuxt 3 stable, remove histoire

    Upgrade to nuxt 3 stable, remove histoire

    Closes #50 Contributes to #65

    The upgrade and removal of historie went successfully. However afterwards I have now run into the issue that the type CompatibilityEvent and CompatibilityEventHandler do not exist within the h3 package. I did some googling about these types and also found no documentation on them. Any tips @BracketJohn?

    Screenshot 2022-11-14 at 17 02 28

    opened by zoey-kaiser 19
  • feat/add pinia store

    feat/add pinia store

    Closes #45

    Checklist:

    • [x] issue number linked above after pound (#)
      • replace "Closes " with "Contributes to" or other if this PR does not close the issue
    • [x] issue checkboxes are all addressed
    • [x] manually checked my feature / not applicable
    • [x] wrote tests / not applicable
    • [x] attached screenshots / not applicable
    opened by MaloLebrin 12
  • Get open-source ready

    Get open-source ready

    Get open-source ready.

    This PR:

    • [x] removes some sidestream-specific components:
      • helm, k8s charts,
      • drone.yml for drone CI
      • sidestream naming
    • [x] upgrades to nuxt rc.8
    • [x] add github actions based CI
      • we should use github actions so that people can use it by just "cloning" and be ready to go, no drone server setup or similar needed
    • [x] to be discussed: switch from ant-design-vue to some other CSS framework? -> NOT RIGHT NOW, moved to #2
      • blocking problem: bad esm support that keeps on tripping - right now npm run build is broken as antd does a "bad" esm import under the hood ([2]),
      • auto-import support often quite slow + types are not hinted correctly for some of the components,
      • the ant-design-vue website is quite slow to use :(
      • alternatives should:
        • support vue3,
        • support auto-import feature,
        • use ESM and non-ESM properly,
        • be "hyped" by developers for its DX (this should probably be phrased in a more measurable way)
      • alternatives proposed so far:
        • prime vue: https://www.primefaces.org/primevue/
        • quasar: https://quasar.dev/
        • vuetify: https://next.vuetifyjs.com/en/introduction/why-vuetify/ (still in beta for vue 3)
    • [x] after npm run build the ui is duplicated, see [1]
    • [x] add repo-local issue templates, so that our org-templates are not used ("New devops task" doesn't make any sense here)
    • [x] Remove docker-compose dependency by making default database engine to be sqlite (and make it configurable via env vars)
    • [x] Add a screenshot of the first page
    • [x] db fail on startup if connection goes bad
    • [x] fix the storybook stories that are meant to demonstrate nuxt components (and dont work)
    • [x] Improve loading animation of the first page -> simply no more loading animation / jumping
    • [x] upgrade to nuxt rc.9

    After this PR / at end of this PR:

    • [x] check all npm scripts at the end
    • [x] check docker build in very end
    • [x] make documentation nice + correct

    Will not do in this PR:

    • [ ] add our personal, stricter eslint config
    • [ ] autoimport db entities from entities
    • [ ] fix double-tilde suggestion on import
    • [ ] write test that auto mounts all components to see if there's an error
    • [ ] checkout if husky works, fix it if it doesn't

    [1] duplicated UI after npm run build image

    [2] bad esm import of ant design

     ERROR  [h3] [unhandled] Error: Cannot find module lodash-es/isPlainObject imported from repos/sidestream/sidebase/app, repos/sidestream/sidebase/, repos/sidestream/sidebase/app/_index.js, repos/sidestream/sidebase/node_modules
    
    opened by BracketJohn 12
  • Add a nuxt sidebase setup wizard

    Add a nuxt sidebase setup wizard

    Describe the feature

    Currently when someone wants to use the scaffold they have to clone the repo. We could create a setup wizard with npx that automatically sets up the project locally for the user. This could also solve #2, as we can offer a selection of CSS frameworks that the user can choose from.

    We could also let the user customize how much they want to include in their setup (do they want a backend? Do they want a component testing system? Do they want JEST?).

    This could allow it to be come even more versatile in the future and truly become THE SCAFFOLD for nuxt 3.

    Additional information

    No response

    enhancement 
    opened by zoey-kaiser 11
  • Design a website for SideBase.io

    Design a website for SideBase.io

    Goal In order to present the features and benefits of SideBase, we are looking to launch a website. This is a preliminary planning issue in which we will collect the information we aim to provide and create mocks for the finished site.

    Tasks

    • [x] Collect the information we want to show on the page
    • [x] Create a mock for the design
    documentation 
    opened by zoey-kaiser 11
  • Investigate CLI options

    Investigate CLI options

    I was looking at other create_blank_app cli tools and the one that seemed the most promising is create_nuxt_app.

    They have the following structure:

    SAO

    They use a tool called SAO which is a scaffolding tool. It lets you define specific generators, that can combine different parts of a scaffold together. You can then pass options to the generators to scaffold a custom project based on the user input.

    I would recommend that we create seperate branches for each lib (addon that can be changed eg. CSS framework or backend). Once we have the seperate branches we can compare them with main and see which files will need to be updated.

    This is their SAO generator file. It defines where to get the different parts of the project that can then be installed: https://github.com/nuxt/create-nuxt-app/blob/master/packages/create-nuxt-app/lib/saofile.js

    Inside the generator file you can define actions to build the starter:

    Actions

    Adds files to the template

    if (this.answers.ui !== 'none') {
      actions.push({
        type: 'add',
        files: '**',
        templateDir: join(frameworksDir, this.answers.ui)
      })
    }
    

    Move files from one place to another

    actions.push({
      type: 'move',
      patterns: {
        gitignore: '.gitignore',
        '_package.json': 'package.json',
      }
    })
    

    Modify a file

    actions.push({
      type: 'modify',
      files: 'package.json',
      handler (data) {
        return { ...data, ...pkg.load(generator) }
      }
    })
    

    Remove a file

    actions.push({
      type: 'remove',
      files: 'package.js'
    })
    

    Templates

    In a separate folder they have all the required files to add a specific technology or framework. While their system is a bit more simple then ours (no backend), I think we can split specific parts of our starter into smaller segments.

    Lets take the backend as an example: We could move all the files we need for the backend to work in another folder. In our case these files would be:

    • package.json with only the extra packages and scripts needed to run the backend
    • /server
    • /tests/server

    When the developers selected with-backend these files will be copied over. The templates folder is a seperate npm package, which is installed inside the CLI package. Through this the files can be accessed.

    Prompts

    They have one file in which all their questions are defined: https://github.com/nuxt/create-nuxt-app/blob/master/packages/create-nuxt-app/lib/prompts.js These questions are asked and the answers are collected. SAO comes with a custom prompt system that we can use!

    Conclusion

    This option for the CLI will require a rewrite of the sidebase template. We will have to decide if we want to keep a demo version of sidebase in this repo, or if we create a new repo (or use sidebase-libs), however I believe this is the best option we can take to ensure we can continue to expand sidebase!

    opened by zoey-kaiser 9
  • Nuxt server error on 'npm run dev'

    Nuxt server error on 'npm run dev'

    Environment

    • Operating System: Darwin
    • Node Version: v16.14.2
    • Nuxt Version: 3.0.0-rc.9
    • Nitro Version: 0.5.1
    • Package Manager: [email protected]
    • Builder: vite
    • User Config: -
    • Runtime Modules: -
    • Build Modules: -

    Reproduction

    No response

    Describe the bug

    The nuxt server works with docker running, but when the server does not connect on docker, it gives a 500 server error. However, npm run build works fine in any scenario.

    Additional context

    This seems similar as reported nuxt bug

    Logs

    Nuxi 3.0.0-rc.9                                                               14:00:38
    Nuxt 3.0.0-rc.9 with Nitro 0.5.1                                              14:00:38
                                                                                  14:00:39
      > Local:    http://localhost:3000/ 
      > Network:  http://192.168.2.109:3000/
    
    β„Ή Vite client warmed up in 541ms                                              14:00:41
    β„Ή Vite server warmed up in 139ms                                              14:00:41
    βœ” Nitro built in 530 ms                                                 nitro 14:00:42
    DB: Initializing DB connection
    DB: Successfully initialized database connection
    [Vue warn]: inject() can only be used inside setup() or functional components.
    [Vue warn]: Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.
    [Vue warn]: Unhandled error during execution of setup function 
      at <NuxtRoot>
    [nuxt] [request error] [unhandled] [500] Cannot read properties of undefined (reading 'modules')
      at _sfc_main.setup (./node_modules/nuxt/dist/app/components/nuxt-root.vue:67:16)  
      at callWithErrorHandling (./node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:157:22)  
      at setupStatefulComponent (./node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7107:29)  
      at setupComponent (./node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7062:11)  
      at renderComponentVNode (./node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:172:17)  
      at renderToString (./node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:446:26)  
      at Object.renderToString$1 [as renderToString] (./.nuxt/dev/index.mjs:661:24)  
      at Object.renderToString (./node_modules/vue-bundle-renderer/dist/runtime.mjs:173:40)  
      at processTicksAndRejections (node:internal/process/task_queues:96:5)  
      at async ./.nuxt/dev/index.mjs:710:21
    [Vue warn]: inject() can only be used inside setup() or functional components.
    [Vue warn]: Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.
    [Vue warn]: Unhandled error during execution of setup function 
      at <NuxtRoot>
    [Vue warn]: inject() can only be used inside setup() or functional components.
    [Vue warn]: Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.
    [Vue warn]: Unhandled error during execution of setup function 
      at <NuxtRoot>
    
    bug 
    opened by DaeunYoon 8
  • Removed historie packages and upgraded to RC 13

    Removed historie packages and upgraded to RC 13

    After removing everything related to historie I recieved the following error:

     ERROR  Cannot find package 'pathe' imported from /Users/zoey/Documents/Development/SideStream/sidebase/sidebase/node_modules/@nuxtjs/tailwindcss/dist/module.mjs                                                         14:42:17
    
      at new NodeError (node:internal/errors:387:5)
      at packageResolve (node:internal/modules/esm/resolve:951:9)
      at moduleResolve (node:internal/modules/esm/resolve:1000:20)
      at defaultResolve (node:internal/modules/esm/resolve:1214:11)
      at nextResolve (node:internal/modules/esm/loader:165:28)
      at ESMLoader.resolve (node:internal/modules/esm/loader:844:30)
      at ESMLoader.getModuleJob (node:internal/modules/esm/loader:431:18)
      at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:76:40)
      at link (node:internal/modules/esm/module_job:75:36)
    

    This confuses me a lot, as I do not know why @nuxtjs/tailwindcss would be linked with historie. The exact package that causes this error to be thrown is @historie/plugin-nuxt.

    opened by zoey-kaiser 7
  • Issues installing packages

    Issues installing packages

    Environment

    ------------------------------
    - Operating System: `Darwin`
    - Node Version:     `v16.14.2`
    - Nuxt Version:     `^3.0.0-rc.10`
    - Nitro Version:    `-`
    - Package Manager:  `[email protected]`
    - Builder:          `webpack`
    - User Config:      `-`
    - Runtime Modules:  `-`
    - Build Modules:    `-`
    ------------------------------
    

    Reproduction

    No response

    Describe the bug

    After the latest update, I tried to clone the repo and run npm i. I got the following error message:

    npm ERR! code 1
    npm ERR! path /Users/zoey/Documents/Development/SideStream/sidebase/node_modules/sqlite3
    npm ERR! command failed
    npm ERR! command sh -c node-pre-gyp install --fallback-to-build
    npm ERR! Failed to execute '/Users/zoey/.nvm/versions/node/v16.14.2/bin/node /Users/zoey/.nvm/versions/node/v16.14.2/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/Users/zoey/Documents/Development/SideStream/sidebase/node_modules/sqlite3/lib/binding/napi-v6-darwin-unknown-arm64/node_sqlite3.node --module_name=node_sqlite3 --module_path=/Users/zoey/Documents/Development/SideStream/sidebase/node_modules/sqlite3/lib/binding/napi-v6-darwin-unknown-arm64 --napi_version=8 --node_abi_napi=napi --napi_build_version=6 --node_napi_label=napi-v6' (1)
    npm ERR! node-pre-gyp info it worked if it ends with ok
    npm ERR! node-pre-gyp info using [email protected]
    npm ERR! node-pre-gyp info using [email protected] | darwin | arm64
    npm ERR! node-pre-gyp info check checked for "/Users/zoey/Documents/Development/SideStream/sidebase/node_modules/sqlite3/lib/binding/napi-v6-darwin-unknown-arm64/node_sqlite3.node" (not found)
    npm ERR! node-pre-gyp http GET https://github.com/TryGhost/node-sqlite3/releases/download/v5.1.0/napi-v6-darwin-unknown-arm64.tar.gz
    npm ERR! node-pre-gyp ERR! install response status 404 Not Found on https://github.com/TryGhost/node-sqlite3/releases/download/v5.1.0/napi-v6-darwin-unknown-arm64.tar.gz 
    npm ERR! node-pre-gyp WARN Pre-built binaries not installable for [email protected] and [email protected] (node-v93 ABI, unknown) (falling back to source compile with node-gyp) 
    npm ERR! node-pre-gyp WARN Hit error response status 404 Not Found on https://github.com/TryGhost/node-sqlite3/releases/download/v5.1.0/napi-v6-darwin-unknown-arm64.tar.gz 
    npm ERR! gyp info it worked if it ends with ok
    npm ERR! gyp info using [email protected]
    npm ERR! gyp info using [email protected] | darwin | arm64
    npm ERR! gyp info ok 
    npm ERR! gyp info it worked if it ends with ok
    npm ERR! gyp info using [email protected]
    npm ERR! gyp info using [email protected] | darwin | arm64
    npm ERR! gyp ERR! find Python 
    npm ERR! gyp ERR! find Python Python is not set from command line or npm configuration
    npm ERR! gyp ERR! find Python Python is not set from environment variable PYTHON
    npm ERR! gyp ERR! find Python checking if "python3" can be used
    npm ERR! gyp ERR! find Python - "python3" is not in PATH or produced an error
    npm ERR! gyp ERR! find Python checking if "python" can be used
    npm ERR! gyp ERR! find Python - "python" is not in PATH or produced an error
    npm ERR! gyp ERR! find Python 
    npm ERR! gyp ERR! find Python **********************************************************
    npm ERR! gyp ERR! find Python You need to install the latest version of Python.
    npm ERR! gyp ERR! find Python Node-gyp should be able to find and use Python. If not,
    npm ERR! gyp ERR! find Python you can try one of the following options:
    npm ERR! gyp ERR! find Python - Use the switch --python="/path/to/pythonexecutable"
    npm ERR! gyp ERR! find Python   (accepted by both node-gyp and npm)
    npm ERR! gyp ERR! find Python - Set the environment variable PYTHON
    npm ERR! gyp ERR! find Python - Set the npm configuration variable python:
    npm ERR! gyp ERR! find Python   npm config set python "/path/to/pythonexecutable"
    npm ERR! gyp ERR! find Python For more information consult the documentation at:
    npm ERR! gyp ERR! find Python https://github.com/nodejs/node-gyp#installation
    npm ERR! gyp ERR! find Python **********************************************************
    npm ERR! gyp ERR! find Python 
    npm ERR! gyp ERR! configure error 
    npm ERR! gyp ERR! stack Error: Could not find any Python installation to use
    npm ERR! gyp ERR! stack     at PythonFinder.fail (/Users/zoey/.nvm/versions/node/v16.14.2/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:330:47)
    npm ERR! gyp ERR! stack     at PythonFinder.runChecks (/Users/zoey/.nvm/versions/node/v16.14.2/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:159:21)
    npm ERR! gyp ERR! stack     at PythonFinder.<anonymous> (/Users/zoey/.nvm/versions/node/v16.14.2/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:202:16)
    npm ERR! gyp ERR! stack     at PythonFinder.execFileCallback (/Users/zoey/.nvm/versions/node/v16.14.2/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:294:16)
    npm ERR! gyp ERR! stack     at exithandler (node:child_process:406:5)
    npm ERR! gyp ERR! stack     at ChildProcess.errorhandler (node:child_process:418:5)
    npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:526:28)
    npm ERR! gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:289:12)
    npm ERR! gyp ERR! stack     at onErrorNT (node:internal/child_process:478:16)
    npm ERR! gyp ERR! stack     at processTicksAndRejections (node:internal/process/task_queues:83:21)
    npm ERR! gyp ERR! System Darwin 21.6.0
    npm ERR! gyp ERR! command "/Users/zoey/.nvm/versions/node/v16.14.2/bin/node" "/Users/zoey/.nvm/versions/node/v16.14.2/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "--fallback-to-build" "--module=/Users/zoey/Documents/Development/SideStream/sidebase/node_modules/sqlite3/lib/binding/napi-v6-darwin-unknown-arm64/node_sqlite3.node" "--module_name=node_sqlite3" "--module_path=/Users/zoey/Documents/Development/SideStream/sidebase/node_modules/sqlite3/lib/binding/napi-v6-darwin-unknown-arm64" "--napi_version=8" "--node_abi_napi=napi" "--napi_build_version=6" "--node_napi_label=napi-v6"
    npm ERR! gyp ERR! cwd /Users/zoey/Documents/Development/SideStream/sidebase/node_modules/sqlite3
    npm ERR! gyp ERR! node -v v16.14.2
    npm ERR! gyp ERR! node-gyp -v v8.4.1
    npm ERR! gyp ERR! not ok 
    npm ERR! node-pre-gyp ERR! build error 
    npm ERR! node-pre-gyp ERR! stack Error: Failed to execute '/Users/zoey/.nvm/versions/node/v16.14.2/bin/node /Users/zoey/.nvm/versions/node/v16.14.2/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/Users/zoey/Documents/Development/SideStream/sidebase/node_modules/sqlite3/lib/binding/napi-v6-darwin-unknown-arm64/node_sqlite3.node --module_name=node_sqlite3 --module_path=/Users/zoey/Documents/Development/SideStream/sidebase/node_modules/sqlite3/lib/binding/napi-v6-darwin-unknown-arm64 --napi_version=8 --node_abi_napi=napi --napi_build_version=6 --node_napi_label=napi-v6' (1)
    npm ERR! node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/Users/zoey/Documents/Development/SideStream/sidebase/node_modules/@mapbox/node-pre-gyp/lib/util/compile.js:89:23)
    npm ERR! node-pre-gyp ERR! stack     at ChildProcess.emit (node:events:526:28)
    npm ERR! node-pre-gyp ERR! stack     at maybeClose (node:internal/child_process:1092:16)
    npm ERR! node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:302:5)
    npm ERR! node-pre-gyp ERR! System Darwin 21.6.0
    npm ERR! node-pre-gyp ERR! command "/Users/zoey/.nvm/versions/node/v16.14.2/bin/node" "/Users/zoey/Documents/Development/SideStream/sidebase/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
    npm ERR! node-pre-gyp ERR! cwd /Users/zoey/Documents/Development/SideStream/sidebase/node_modules/sqlite3
    npm ERR! node-pre-gyp ERR! node -v v16.14.2
    npm ERR! node-pre-gyp ERR! node-pre-gyp -v v1.0.10
    npm ERR! node-pre-gyp ERR! not ok
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /Users/zoey/.npm/_logs/2022-09-16T11_12_01_789Z-debug-0.log
    

    Additional context

    No response

    Logs

    No response

    bug 
    opened by zoey-kaiser 6
  • RFC: Collect possible nuxt-module ideas

    RFC: Collect possible nuxt-module ideas

    Describe the feature

    Collect possible ideas for useful nuxt-modules we can pull out of sidebase for easier development + versioning + distribution.

    Modules docs: https://v3.nuxtjs.org/guide/going-further/modules

    Additional information

    Ideas so far:

    • [ ] nuxt-typeorm: Easy typeorm integration for nuxt, could even allow client-side usage of typeorm-objects, e.g., converting it to API-calls if on the client side
    • [ ] nuxt-secrets: Integration for chamber to use AWS SSM easily from app
    • [ ] nuxt-pdf
    • [ ] nuxt-swagger
    • [x] nuxt-server-parse: Make a module out of https://github.com/sidestream-tech/sidebase/blob/main/app/server/helpers.ts
      • library: https://github.com/sidebase/nuxt-parse
      • comment: with the current nuxt 3 state probably better to use zod or tRPC, e.g., via npm create sidebase@latest
    • [x] nuxt-prisma
      • layer: https://github.com/sidebase/nuxt-prisma
    rfc 
    opened by BracketJohn 6
  • RFC: Add either storybook or histoire as story framework

    RFC: Add either storybook or histoire as story framework

    Describe the feature

    The newest version of Storybook allows you to drop webpack and only use vite. As we are currently having issue upgrading to newer release candidates, due to an issue with historie it may make sense to drop historie for now and replace it with storybook.

    https://twitter.com/storybookjs/status/1582023943098990592

    Additional information

    No response

    rfc 
    opened by zoey-kaiser 1
Owner
sidestream
KΓΆlscher Reinheitscode
sidestream
🏝 Opinionated Web Components Starter template to help kick-start development of a cross-framework component library.

Web Component Library Starter Kit "Why create components for a specific framework when it can be written to be understood by all β€” including browsers?

Open Web Labs 14 Dec 24, 2022
🏝 Opinionated Web Components Starter template to help kick-start development of a cross-framework component library.

Web Component Library Starter Kit "Why create components for a specific framework when it can be written to be understood by all β€” including browsers?

Open Web Labs 5 May 1, 2022
πŸ¦‡ Opinionated Vite Starter Template

because our first commits never have parents I bet your parents taught you that you mean something, that you're here for a reason. My parents taught m

gamachexx 62 Dec 22, 2022
Nuxt 3 starter with Algolia, Storyblok, and Indexer

Nuxt 3 with Storyblok CMS and Algolia Search (incl. automatic indexing) This is a demo repository for an article in Dev.to. We recommend to look at th

Jakub Andrzejewski 5 May 24, 2022
Libraries for sidebase, the confident nuxt 3 starter template

Sidebase Libraries This is the repository containing the packages that power sidebase. Open packages/ to see the packages. Usage We use lerna to manag

sidestream 0 Oct 20, 2022
A vite plugin that deletes console.log in the production environment

vite-plugin-remove-console A vite plugin that deletes console.log in the production environment English | δΈ­ζ–‡ Install npm install vite-plugin-remove-co

啝裳 49 Dec 22, 2022
Vite plugin for minifying / obfuscating CSS classes in production builds

vite-plugin-class-mangler Vite plugin for minifying / obfuscating classes in production builds. Compatible with Tailwind, inline, or imported styles.

Maxim 28 Dec 22, 2022
A Vite plugin for projecting your application onto a remote production page during development.

vite-plugin-proxy-page A Vite plugin for developing an SPA in the context of a deployed production page. What's the Problem? It's an increasingly comm

Alex MacArthur 13 Nov 13, 2022
The fullstack Angular meta-framework

Analog Analog is a meta-framework for building applications and websites with Angular. Getting Started Use your package manager of choice to create a

null 583 Dec 23, 2022
Automatically configure Vitest from your SvelteKit configuration.

vitest-svelte-kit Automatically configure Vitest from your SvelteKit configuration. Getting Started Installing In an existing SvelteKit project, run t

Nick Breaton 44 Dec 30, 2022
Minimal, zero-configuration and fast solution for static site generation in any front-end framework.

Staticit - Introduction Whether you want to increase performance of your web application or improve SEO. Generally you have 2 options, use SSR (Server

Engineerhub 4 Jun 11, 2022
Matteo Bruni 4.7k Jan 4, 2023
⚑️ Minimal GraphQL Client + Code Generation for Nuxt

nuxt-graphql-client ⚑️ Minimal GraphQL Client + Code Generation for Nuxt ⚑️ Minimal GraphQL Client + Code Generation for Nuxt Features Zero Configurat

Dizzy 245 Dec 27, 2022
Nuxt.js module to use Unleash toggle feature services

nuxt-unleash Nuxt.js module to use Unleash toggle feature services ?? Release Notes Features Use $unleash to access and handle your Unleash feature fl

Juanjo Conejero 15 Dec 3, 2022
Easy generation of OpenGraph & Twitter meta-tags in Nuxt 3 πŸ“‹

nuxt-social-tags Easy generation of OpenGraph & Twitter meta-tags in Nuxt 3 ✨ Release Notes ?? Read the documentation Features Nuxt3 ready Composables

Conner 19 Dec 17, 2022
Easily connect your Nuxt 3 application with LogSnag πŸ“°

Nuxt LogSnag ?? LogSnag integration for Nuxt 3 ✨ Release Notes Features Nuxt 3 ready Easy integration Handy composables TypeScript support Setup Insta

Conner 13 Apr 28, 2022
End-to-end typesafe APIs with tRPC.io in Nuxt applications.

tRPC-Nuxt End-to-end typesafe APIs with tRPC.io in Nuxt applications. The client above is not importing any code from the server, only its type declar

Robert Soriano 231 Dec 30, 2022
A modern, zero-dependency uptime monitoring tool & status page based on GitHub Actions & Nuxt Content v2.

StatusBase Uptime monitoring tool & beautiful status pages Powered by Nuxt Content v2! Free β€’ Open Source β€’ Notification View Demo Β· Report Bug Β· Requ

zernonia 208 Dec 27, 2022
Vue3 SSR prod-ready multi-languages template

vue3-ssr-template About This template is a prod ready starter for your Vue SSR application where you can do what you want at any level, client or serv

null 9 Mar 11, 2022