{"id":13719303,"url":"https://github.com/amimaro/tecno-brega-stack","last_synced_at":"2025-05-07T11:31:28.209Z","repository":{"id":37586413,"uuid":"486992716","full_name":"amimaro/tecno-brega-stack","owner":"amimaro","description":"The Remix Stack for deploying to Fly with Supabase, authentication, testing, linting, formatting, etc.","archived":false,"fork":false,"pushed_at":"2022-05-17T20:03:50.000Z","size":557,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-11-14T08:35:52.353Z","etag":null,"topics":["remix-stack"],"latest_commit_sha":null,"homepage":"","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/amimaro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-04-29T14:00:09.000Z","updated_at":"2024-02-06T18:44:40.000Z","dependencies_parsed_at":"2022-08-25T14:52:09.035Z","dependency_job_id":null,"html_url":"https://github.com/amimaro/tecno-brega-stack","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amimaro%2Ftecno-brega-stack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amimaro%2Ftecno-brega-stack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amimaro%2Ftecno-brega-stack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amimaro%2Ftecno-brega-stack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amimaro","download_url":"https://codeload.github.com/amimaro/tecno-brega-stack/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252868843,"owners_count":21816924,"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":["remix-stack"],"created_at":"2024-08-03T01:00:46.033Z","updated_at":"2025-05-07T11:31:27.937Z","avatar_url":"https://github.com/amimaro.png","language":"TypeScript","readme":"# Remix Tecnobrega Stack\n\n![The Remix Tecnobrega Stack](https://raw.githubusercontent.com/amimaro/files/main/remix-tecno-brega-stack.jpg)\n\nLearn more about [Remix Stacks](https://remix.run/stacks).\n\n```\nnpx create-remix --template amimaro/tecno-brega-stack\n```\n\nIf you are curious. \n- [What is tecno brega?](https://en.wikipedia.org/wiki/Tecno_brega)\n- [What it sounds?](https://www.youtube.com/watch?v=gmQ3Yp2rizM)\n\n## What's in the stack\n\n- Authentication with [Supabase](https://supabase.com) and managed by [cookie-based sessions](https://remix.run/docs/en/v1/api/remix#createcookiesessionstorage). Authentication methods available:\n  - Email and Password\n- End-to-end testing with [Cypress](https://cypress.io)\n- Code formatting with [Prettier](https://prettier.io)\n- Linting with [ESLint](https://eslint.org)\n- Static Types with [TypeScript](https://typescriptlang.org)\n\nNot a fan of bits of the stack? Fork it, change it, and use `npx create-remix --template your/repo`! Make it your own.\n\n## Development\n\n- Initial Setup:\n\nCopy `.env.example` file to `.env`.\n\nCreate a new [Supabase](https://supabase.com/) project and go to the project API settings to fill the variables below.\n\n```\nSERVER_URL=http://localhost:3000 # must have http:// or https://\nSESSION_KEY=\"{SESSION_KEY}\"\nSESSION_SECRET=\"{SESSION_SECRET}\"\nSUPABASE_ANON_KEY=\"{ANON_KEY}\"\nSUPABASE_URL=\"https://{YOUR_INSTANCE_NAME}.supabase.co\"\nSUPABASE_SERVICE_ROLE_KEY=\"{SERVICE_ROLE_SECRET}\"\n```\n\n- Setup Stack Schema\n\nThis schema has Supabase common profile settings notes table and policies for this stack example.\n\n1. Go to the \"SQL\" section.\n2. Click \"New Query\".\n3. Copy the [example schema](https://gist.github.com/amimaro/c39df54adea5b2e9cba1693c13877cd9).\n4. Paste it and click \"Run\".\n\nThen go to the \"Authentication\" panel and click at \"Policies\" and enable RLS for the notes table.\n\nThe starter project should be working now.\n\nYour can run `npm run cy:run` or `yarn cy:run` to check if all tests have passed.\n\n- Start dev server:\n\n  ```sh\n  npm run dev\n  ```\n\nThis starts your app in development mode, rebuilding assets on file changes.\n\n### Relevant code:\n\nThis is a simple starter template with Supabase authentication and a notes CRUD example.\n\nFor now it just have email and password authentication but it is in future plans to integrate with other methods of authentication provided by Supabase.\n\n- creates cookie-based session [./app/session.server.ts](./app/session.server.ts)\n- provides supabase clients [./app/supabase.server.ts](./app/supabase.server.ts)\n- authentication helpers and validators [./app/auth.server.ts](./app/auth.server.ts)\n\nOther funcionalities can be found at the [routes folder](./app/routes) like:\n\n- create account\n- password forgot/reset\n- logout\n\n## Deployment\n\nThis Remix Stack comes with a script that handles deploying your app to production.\n\nPrior to your first deployment, you'll need to do a few things:\n\n- [Install Fly](https://fly.io/docs/getting-started/installing-flyctl/)\n\n- Sign up and log in to Fly\n\n  ```sh\n  flyctl auth signup\n  ```\n\n- Add the environment variables to your fly app secrets, to do this you can run the following command using `.env` variables:\n\n  ```sh\n  flyctl secrets set [Copy .env variables and paste here]\n  ```\n\n- Run the script below to deploy\n \n   ```sh\n  npm run deploy\n  ```\n\n## Testing\n\n### Cypress\n\nWe use Cypress for our End-to-End tests in this project. You'll find those in the `cypress` directory. As you make changes, add to an existing file or create a new file in the `cypress/integration` directory to test your changes.\n\nTo run these tests in development, run `npm run cy:open`\n\n### Type Checking\n\nThis project uses TypeScript. It's recommended to get TypeScript set up for your editor to get a really great in-editor experience with type checking and auto-complete. To run type checking across the whole project, run `npm run typecheck`.\n\n### Linting\n\nThis project uses ESLint for linting. That is configured in `.eslintrc.js`.\n\n### Formatting\n\nWe use [Prettier](https://prettier.io/) for auto-formatting in this project. It's recommended to install an editor plugin (like the [VSCode Prettier plugin](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)) to get auto-formatting on save. There's also a `npm run format` script you can run to format all files in the project.\n","funding_links":[],"categories":["Starter"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famimaro%2Ftecno-brega-stack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famimaro%2Ftecno-brega-stack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famimaro%2Ftecno-brega-stack/lists"}