{"id":18932141,"url":"https://github.com/justjake/memegentino","last_synced_at":"2025-04-15T16:33:38.451Z","repository":{"id":137635636,"uuid":"416512521","full_name":"justjake/memegentino","owner":"justjake","description":"Meme generator for Notion","archived":false,"fork":false,"pushed_at":"2021-10-18T23:17:47.000Z","size":843,"stargazers_count":21,"open_issues_count":4,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-28T23:43:26.621Z","etag":null,"topics":["memes","notion","notion-api"],"latest_commit_sha":null,"homepage":"https://jitl.notion.site/Memegentino-a88d462ab4d7482c870b1120d4dc49d5","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/justjake.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-12T22:08:40.000Z","updated_at":"2024-08-23T03:45:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"3ff0eb1d-5902-45ee-a32b-8137e0342204","html_url":"https://github.com/justjake/memegentino","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/justjake%2Fmemegentino","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justjake%2Fmemegentino/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justjake%2Fmemegentino/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justjake%2Fmemegentino/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/justjake","download_url":"https://codeload.github.com/justjake/memegentino/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249108490,"owners_count":21214003,"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":["memes","notion","notion-api"],"created_at":"2024-11-08T11:48:19.168Z","updated_at":"2025-04-15T16:33:38.438Z","avatar_url":"https://github.com/justjake.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# **memegentino**\n\nA simple meme generator that can produce memes from a Notion database of meme\ntemplates. Uses the Notion OAuth API to connect to your Notion workspaces. Embed\nit in an iframe for easy memeing from Notion.\n\n[Get Memegentino for your Notion workspace](https://jitl.notion.site/Memegentino-a88d462ab4d7482c870b1120d4dc49d5)!\n\n![screenshot of how Notion uses Memegentino](./screenshot.png)\n\n## Getting Started\n\nYou will need:\n\n- A postgres database, perhaps from [Supabase](https://supabase.io/)\n- A [Notion integration](https://developers.notion.com/docs/getting-started) configured as a [public OAuth integration](https://developers.notion.com/docs/authorization#authorizing-public-integrations)\n\nEnsure the `.env.local` file has required environment variables:\n\n```\nNOTION_BASE_URL=https://api.notion.com\nNOTION_CLIENT_ID=\u003cuuid of your notion integration\u003e\nNOTION_CLIENT_SECRET=\u003csecret of your notion integration\u003e\nDATABASE_URL=postgresql://\u003cYOUR_DB_USERNAME\u003e@localhost:5432/memegentino\n```\n\n## Development\n\nRun your app in the development mode.\n\n```\nblitz dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) with your browser to see the result.\n\n## Production\n\nFor preview and production environments, you additionally should configure\n`NEXT_PUBLIC_BASE_URL` to be the HTTP URL prefix for your app, this defaults to\n`http://localhost:3000`. This is used for Notion OAuth redirects.\n\nNote that if you're using Supabase, you should use the PGBouncer URL in _preview_ and\n_production_ environments with `?pgbouncer=true`.\n\n```\n...\nNEXT_PUBLIC_BASE_URL=https://\u003cmy-app-name\u003e.com\nDATABASE_URL=postgres://\u003cUSER:PASS\u003e@db.\u003cSUPABASE\u003e.supabase.co:6543/postgres?pgbouncer=true\n```\n\n## Commands\n\nBlitz comes with a powerful CLI that is designed to make development easy and fast. You can install it with `npm i -g blitz`\n\n```\n\nblitz [COMMAND]\n\ndev Start a development server\nbuild Create a production build\nstart Start a production server\nexport Export your Blitz app as a static application\nprisma Run prisma commands\ngenerate Generate new files for your Blitz project\nconsole Run the Blitz console REPL\ninstall Install a recipe\nhelp Display help for blitz\ntest Run project tests\n\n```\n\nYou can read more about it on the [CLI Overview](https://blitzjs.com/docs/cli-overview) documentation.\n\n## What's included?\n\nHere is the starting structure of your app.\n\n```\n\nmemegentino\n├── app/\n│   ├── api/\n│   ├── auth/\n│   │   ├── mutations/\n│   │   │   └── logout.ts\n│   ├── core/\n│   │   ├── components/\n│   │   │   ├── Form.tsx\n│   │   │   └── LabeledTextField.tsx\n│   │   ├── hooks/\n│   │   │   └── useCurrentUser.ts\n│   │   └── layouts/\n│   │   └── Layout.tsx\n│   ├── pages/\n│   │   ├── 404.tsx\n│   │   ├── \\_app.tsx\n│   │   ├── \\_document.tsx\n│   │   ├── index.test.tsx\n│   │   └── index.tsx\n│   └── users/\n│   └── queries/\n│   └── getCurrentUser.ts\n├── db/\n│   ├── index.ts\n│   ├── schema.prisma\n│   └── seeds.ts\n├── integrations/\n├── mailers/\n│   └── forgotPasswordMailer.ts\n├── public/\n│   ├── favicon.ico\\*\n│   └── logo.png\n├── test/\n│   ├── setup.ts\n│   └── utils.tsx\n├── README.md\n├── babel.config.js\n├── blitz.config.js\n├── jest.config.js\n├── package.json\n├── tsconfig.json\n├── types.d.ts\n├── types.ts\n└── yarn.lock\n\n```\n\nThese files are:\n\n- The `app/` folder is a container for most of your project. This is where you’ll put any pages or API routes.\n\n- `db/` is where your database configuration goes. If you’re writing models or checking migrations, this is where to go.\n\n- `public/` is a folder where you will put any static assets. If you have images, files, or videos which you want to use in your app, this is where to put them.\n\n- `integrations/` is a folder to put all third-party integrations like with Stripe, Sentry, etc.\n\n- `test/` is a folder where you can put test utilities and integration tests.\n\n- `package.json` contains information about your dependencies and devDependencies. If you’re using a tool like `npm` or `yarn`, you won’t have to worry about this much.\n\n- `tsconfig.json` is our recommended setup for TypeScript.\n\n- `.babelrc.js`, `.env`, etc. (\"dotfiles\") are configuration files for various bits of JavaScript tooling.\n\n- `blitz.config.js` is for advanced custom configuration of Blitz. It extends [`next.config.js`](https://nextjs.org/docs/api-reference/next.config.js/introduction).\n\n- `jest.config.js` contains config for Jest tests. You can [customize it if needed](https://jestjs.io/docs/en/configuration).\n\nYou can read more about it in the [File Structure](https://blitzjs.com/docs/file-structure) section of the documentation.\n\n### Tools included\n\nBlitz comes with a set of tools that corrects and formats your code, facilitating its future maintenance. You can modify their options and even uninstall them.\n\n- **ESLint**: It lints your code: searches for bad practices and tell you about it. You can customize it via the `.eslintrc.js`, and you can install (or even write) plugins to have it the way you like it. It already comes with the [`blitz`](https://github.com/blitz-js/blitz/tree/canary/packages/eslint-config) config, but you can remove it safely. [Learn More](https://eslint.org).\n- **Husky**: It adds [githooks](https://git-scm.com/docs/githooks), little pieces of code that get executed when certain Git events are triggerd. For example, `pre-commit` is triggered just before a commit is created. You can see the current hooks inside `.husky/`. If are having problems commiting and pushing, check out ther [troubleshooting](https://typicode.github.io/husky/#/?id=troubleshoot) guide. [Learn More](https://typicode.github.io/husky).\n- **Prettier**: It formats your code to look the same everywhere. You can configure it via the `.prettierrc` file. The `.prettierignore` contains the files that should be ignored by Prettier; useful when you have large files or when you want to keep a custom formatting. [Learn More](https://prettier.io).\n\n## Learn more\n\nRead the [Blitz.js Documentation](https://blitzjs.com/docs/getting-started) to learn more.\n\nThe Blitz community is warm, safe, diverse, inclusive, and fun! Feel free to reach out to us in any of our communication channels.\n\n- [Website](https://blitzjs.com/)\n- [Discord](https://discord.blitzjs.com/)\n- [Report an issue](https://github.com/blitz-js/blitz/issues/new/choose)\n- [Forum discussions](https://github.com/blitz-js/blitz/discussions)\n- [How to Contribute](https://blitzjs.com/docs/contributing)\n- [Sponsor or donate](https://github.com/blitz-js/blitz#sponsors-and-donations)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustjake%2Fmemegentino","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjustjake%2Fmemegentino","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustjake%2Fmemegentino/lists"}