{"id":21089965,"url":"https://github.com/januff/textify-typeset-translation","last_synced_at":"2025-07-19T11:33:24.471Z","repository":{"id":80788429,"uuid":"367970018","full_name":"januff/textify-typeset-translation","owner":"januff","description":"Comics translator built with Next.js, TailwindCSS, AWS Amplify \u0026 Apache Cassandra","archived":false,"fork":false,"pushed_at":"2021-07-17T17:55:12.000Z","size":3509,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-14T06:14:30.256Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://textify-typeset-translation.vercel.app","language":"JavaScript","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/januff.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-05-16T19:38:24.000Z","updated_at":"2021-12-21T17:44:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"9d6eee40-0ef4-4989-be79-4b453860c0e1","html_url":"https://github.com/januff/textify-typeset-translation","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/januff/textify-typeset-translation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/januff%2Ftextify-typeset-translation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/januff%2Ftextify-typeset-translation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/januff%2Ftextify-typeset-translation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/januff%2Ftextify-typeset-translation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/januff","download_url":"https://codeload.github.com/januff/textify-typeset-translation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/januff%2Ftextify-typeset-translation/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265926920,"owners_count":23850886,"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":[],"created_at":"2024-11-19T21:33:04.955Z","updated_at":"2025-07-19T11:33:24.445Z","avatar_url":"https://github.com/januff.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"  \u003cp align=\"center\"\u003e\n    \u003cimg width=\"460\" src=\"./public/images/gl-screengrab.jpg\"/\u003e\n  \u003c/p\u003e\n\n**Textify** is a simple scanlation editor–a CRUD with cloud ML hooks–inspired by my growing enchantment with international comics corpora, particularly Indonesia's unofficial (and still largely uncharted) branching of the Marvel and DC Universes in the late 1960s and '70s.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"360\" src=\"./public/images/spidermen-b.jpg\"/\u003e\n\u003c/p\u003e\n\n### The Cloud ML functions\n\n- **Storage.put** (in [components/Buttons](components/Buttons/index.js))\n- **Predictions.interpret** (IDs language)\n- **Predictions.identify** (IDs text)\n- **Predictions.convert** (translates, in [components/Text](components/Text/index.js))\n\n### The CRUD functions\n- **Next.js api routes** (see [pages/api](pages/api/))\n- **astraClient.collection** ([receives route params](/pages/api/create/[collectionName]/index.js))\n- **react-query hooks** ([hooks folder](hooks/) \u0026 [components/Buttons](components/Buttons/index.js); useDelete \u0026 useUpdate not used yet.)\n\n### New Libraries I Tried\n\n- **TailwindCSS** (in [global.css](styles/globals.css) \u0026 most components) \n- **react-easy-edit** (see [components/Text](components/Text/index.js))\n\n### Medium Explainers I Wrote ###\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"460\" src=\"./public/images/indo-stacks.png\"/\u003e\n\u003c/p\u003e\n\n\n- [The Multiverse Next Door (Feb 2021)](https://joeyanuff-33180.medium.com/the-multiverse-next-door-444477bdaf63): **Digging the global comics underground with cloud APIs \u0026 JavaScript**\n\n\n  \u003e This project thus has dual goals: to introduce some crazy new archaeology to comics fandom, and to scaffold a simple tool for deciphering it, narrowly designed for personal, non-commercial use.\n\n- [AWS Lambdas: Easy, Easier, Easiest (Apr 2021)](https://joeyanuff-33180.medium.com/aws-lambdas-easy-easier-easiest-823e71c02bd9): **Step-by-step serverless function setup using Amplify, Netlify, or Vercel.**\n\n  \u003e Having reached the point in my app’s development where I do need a Lambda–to chat with the Apache Cassandra database where I’ll be storing my translations–it seemed worthwhile to feature-compare my walkthroughs of the three APIs.\n\n- [6 Tricks for Simpler Cloud CV (Dec 2020)](https://joeyanuff-33180.medium.com/6-tricks-for-simpler-cloud-cv-1036b99ac791): **How AWS Amplify simplified my workflow.**\n\n  \u003e My prototype app used two custom Lambda endpoints, configured using Amazon’s Gateway API: a Node.js function to save images to S3 and a Python function to call Amazon’s Textract OCR service. With Amplify, both of these are one-liners.\n\n- [6 Tricks for Next-Level CRUDs (Dec 2020)](https://joeyanuff-33180.medium.com/6-tricks-for-next-level-cruds-9a916d9e4c87): **How to use react-query to maximize your cached data.**\n\n  \u003e Changes on the detail page are reflected instantly–and reverted if they fail–using the Optimistic Update strategy. With React Query’s devtools drawer open, we have perfect visibility into the state of our cache.\n\n### YouTube Tutorials I Followed\n\n- [I built a Tik Tok App in React (with REAL database) (Dec 2020)](https://youtu.be/IATOicvih5A) I adapted the app architecture from Ania Kubow's demo here \u0026 consulted the [project's repo](https://github.com/kubowania/stargate-tik-tok) often.\n\n- [How to use a Serverless Database with Serverless Functions (simple!) (Mar 2021)](https://youtu.be/4JK1XmqLqnw) Kubow's Netlify-Cassandra walkthrough here motivated my serverless survey. \n\n### Available Scripts\n\nIn the project directory, run:\n\n\u003ccode\u003enpm run dev\u003c/code\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjanuff%2Ftextify-typeset-translation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjanuff%2Ftextify-typeset-translation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjanuff%2Ftextify-typeset-translation/lists"}