{"id":22120576,"url":"https://github.com/jorgecoke/qwikly-stack","last_synced_at":"2025-07-25T12:33:50.666Z","repository":{"id":185837270,"uuid":"671131177","full_name":"JorgeCoke/qwikly-stack","owner":"JorgeCoke","description":"⚡️ The \"qwikest\" delightful, overpowered, beautifully handcrafted full-stack web framework template, built on top of Qwik, seasoned with modern tools.                      (⬇️ The server might be on sleep mode, give it a few seconds to load, ty ⬇️)","archived":false,"fork":false,"pushed_at":"2023-11-06T11:41:12.000Z","size":697,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2023-11-06T12:41:50.430Z","etag":null,"topics":["boilerplate","deploy","drizzleorm","framework","fullstack","lucia-auth","qwik","ssr","stack","template","web"],"latest_commit_sha":null,"homepage":"https://qwikly-stack.fly.dev","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JorgeCoke.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-07-26T15:54:09.000Z","updated_at":"2023-10-14T20:01:34.000Z","dependencies_parsed_at":"2023-11-06T12:39:25.477Z","dependency_job_id":null,"html_url":"https://github.com/JorgeCoke/qwikly-stack","commit_stats":null,"previous_names":["jorgecoke/qwikly-stack"],"tags_count":17,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JorgeCoke%2Fqwikly-stack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JorgeCoke%2Fqwikly-stack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JorgeCoke%2Fqwikly-stack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JorgeCoke%2Fqwikly-stack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JorgeCoke","download_url":"https://codeload.github.com/JorgeCoke/qwikly-stack/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227576668,"owners_count":17788552,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["boilerplate","deploy","drizzleorm","framework","fullstack","lucia-auth","qwik","ssr","stack","template","web"],"created_at":"2024-12-01T14:28:07.734Z","updated_at":"2024-12-01T14:28:08.429Z","avatar_url":"https://github.com/JorgeCoke.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"Qwikly Stack Logo\" src=\"public/qwik.svg\" width=\"128\"/\u003e\n\u003c/p\u003e\n\n# Qwikly Stack ⚡️\n\nThe `qwikest` delightful, overpowered, beautifully handcrafted full-stack web framework template, built on top of **Qwik**, seasoned with _modern tools_\n\n## What's included?\n\n- Awesome [Qwik City](https://qwik.builder.io/) framework\n- [Modular Forms](https://qwik.builder.io/docs/integrations/modular-forms/) typesafe integration\n- [Tailwind](https://tailwindcss.com/) of course with Light/Dark mode\n- Including [Lucide](https://lucide.dev/) icons\n- Authentication with [Lucia Auth v2](https://lucia-auth.com/)\n- [DrizzleORM](https://orm.drizzle.team/) SQL builder + SQLite + Migrations\n- Full typesafe development using [zod](https://zod.dev/)\n- Automagically [MDX](https://mdxjs.com/) support including plugins\n- [Stripe](https://stripe.com/) Payments and Subscriptions\n- Mailer with [Resend](https://resend.com/)\n- [Husky](https://github.com/typicode/husky) hooks\n- Commit nomenclature rules with [commitizen](https://github.com/commitizen/cz-cli)\n- Release management policy with [standard-version](https://github.com/conventional-changelog/standard-version)\n- [ESLint](https://eslint.org/) and [Prettier](https://prettier.io/) linter and formatter\n- Including outstanding [Three.JS](https://threejs.org/) scenes\n- CI/CD with [Github Actions](https://github.com/features/actions)\n- Fullstack deployments thanks to [Fly.io](https://fly.io) with [Fastify Adapter](https://qwik.builder.io/docs/deployments/node/#node-middleware)\n\n### Features\n\n- Authentication flow: SignUp + LogIn + Profile + LogOut + ResetPassword\n- Payments: One time payment + Recurring Subscription payment + Billing Info Page\n- Admin dashboard: including \"C.R.U.D Users\" table\n- Terms and conditions (MDX example)\n\n### Set up\n\n```\nnpm ci                          # Install dependencies\nnpm run husky:install           # Install Husky hooks\ncp .env.example .env            # And fill .env with DEV environment variables if needed\nnpm run db:reset                # Creates a SQLite db file if not exists, and executes the migrations required to make your database reflect the state of your schemas, and it will seed your database with an admin user\nnpm run dev                     # Launch project locally\nnpm run dev:stripe              # (Optional) Enables Stripe local webhooks\n```\n\n### Database cheatsheet\n\n```\nnpm run db:reset    # DANGER! Removes all data from database, executes migrator and seeder too!\nnpm run db:generate # Generate migrations\nnpm run db:migrate  # Run migrations\nnpm run db:seed     # Seed database\n```\n\n### How to deploy to fly.io\n\n- Install fly.io CLI: https://fly.io/docs/hands-on/install-flyctl/\n- Create an app by running `fly launch` in your root project folder (Rename your app)\n- Create a volume for SQLite (1 GB): `fly volumes create qwikly_stack_volume --size 1` (Now you can use \"/qwikly_stack_volume/main.db\" as DATABASE_URL)\n- Create a \".env.prod\" file, update it with your PROD variables, and import your secrets running: `cat .env.prod | fly secrets import`, or, you can add them manually one by one with: `fly secrets set SECRET_KEY=secret_value`\n- Optional: Add public build time Env Variables to Dockerfile files before build command (E.g: PUBLIC_STRIPE_PUB=\"your_public_key\")\n- Deploy your app: `fly deploy`\n- Visit your newly deployed app by running: `fly open`\n- Optional: If you want to use Github actions, just create a SecretToken for your app from your Fly.io dashboard, and save it to your Github Repository secrets\n\n### Linter \u0026 Formatter\n\n```\nnpm run lint      # Run Eslint\nnpm run fmt       # Run Prettier\n```\n\n### Git Commit with Commitizen\n\n```\ngit add .          # Add files\nnpm run cz         # Commit with commitizen\n```\n\n### Release a new version\n\n```\nnpm run release                     # Create a new bump version\ngit push --follow-tags origin main  # Push the new version tag and trigger Github deployment action\n```\n\n### Vulnerabilities and dependencies cheatsheet\n\n```\nnpm run audit                   # Run better-npm-audit\nnpm outdated                    # See outdated dependencies\nnpm update --save               # Update outdated dependencies\nnpx npx npm-check-updates -u    # Force update all dependencies to latests versions\n```\n\n---\n\n# Project Structure\n\nThis project is using Qwik with [QwikCity](https://qwik.builder.io/qwikcity/overview/). QwikCity is just an extra set of tools on top of Qwik to make it easier to build a full site, including directory-based routing, layouts, and more.\n\nInside your project, you'll see the following directory structure:\n\n```\n├── public/\n│   └── ...\n└── src/\n    ├── components/\n    │   └── ...\n    └── routes/\n        └── ...\n```\n\n- `src/routes`: Provides the directory-based routing, which can include a hierarchy of `layout.tsx` layout files, and an `index.tsx` file as the page. Additionally, `index.ts` files are endpoints. Please see the [routing docs](https://qwik.builder.io/qwikcity/routing/overview/) for more info.\n\n- `src/components`: Recommended directory for components.\n\n- `public`: Any static assets, like images, can be placed in the public directory. Please see the [Vite public directory](https://vitejs.dev/guide/assets.html#the-public-directory) for more info.\n\n## Add Integrations and deployment\n\nUse the `npm run qwik add` command to add additional integrations. Some examples of integrations includes: Cloudflare, Netlify or Express Server, and the [Static Site Generator (SSG)](https://qwik.builder.io/qwikcity/guides/static-site-generation/).\n\n```shell\nnpm run qwik add # or `yarn qwik add`\n```\n\n## Development\n\nDevelopment mode uses [Vite's development server](https://vitejs.dev/). The `dev` command will server-side render (SSR) the output during development.\n\n```shell\nnpm start # or `yarn start`\n```\n\n\u003e Note: during dev mode, Vite may request a significant number of `.js` files. This does not represent a Qwik production build.\n\n## Preview\n\nThe preview command will create a production build of the client modules, a production build of `src/entry.preview.tsx`, and run a local server. The preview server is only for convenience to preview a production build locally and should not be used as a production server.\n\n```shell\nnpm run preview # or `yarn preview`\n```\n\n## Production\n\nThe production build will generate client and server modules by running both client and server build commands. The build command will use Typescript to run a type check on the source code.\n\n```shell\nnpm run build # or `yarn build`\n```\n\n## Fastify Server\n\nThis app has a minimal [Fastify server](https://fastify.io/) implementation. After running a full build, you can preview the build using the command:\n\n```\nnpm run serve\n```\n\nThen visit [http://localhost:3000/](http://localhost:3000/)\n\n---\n\n### Did I mention it is blazing fast? ⚡️\n\n\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"Qwikly Stack Logo\" src=\"public/lighthouse.png\" width=\"512\"/\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjorgecoke%2Fqwikly-stack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjorgecoke%2Fqwikly-stack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjorgecoke%2Fqwikly-stack/lists"}