{"id":23037092,"url":"https://github.com/apbetioli/urutau","last_synced_at":"2026-04-03T23:34:34.760Z","repository":{"id":224495412,"uuid":"761887238","full_name":"apbetioli/urutau","owner":"apbetioli","description":"AI-generated bedtime stories","archived":false,"fork":false,"pushed_at":"2024-04-25T20:44:00.000Z","size":367,"stargazers_count":2,"open_issues_count":12,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-08T13:27:10.174Z","etag":null,"topics":["aws","langchain","nextjs","postgresql","prisma","react","tailwindcss"],"latest_commit_sha":null,"homepage":"https://urutau-kappa.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apbetioli.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2024-02-22T17:11:37.000Z","updated_at":"2024-04-25T20:44:04.000Z","dependencies_parsed_at":"2024-04-25T21:49:43.359Z","dependency_job_id":null,"html_url":"https://github.com/apbetioli/urutau","commit_stats":null,"previous_names":["apbetioli/urutau"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apbetioli%2Furutau","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apbetioli%2Furutau/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apbetioli%2Furutau/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apbetioli%2Furutau/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apbetioli","download_url":"https://codeload.github.com/apbetioli/urutau/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246905869,"owners_count":20852820,"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":["aws","langchain","nextjs","postgresql","prisma","react","tailwindcss"],"created_at":"2024-12-15T17:29:05.437Z","updated_at":"2025-12-30T19:05:36.386Z","avatar_url":"https://github.com/apbetioli.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Urutau\n\nMy son loves listening to bedtime stories. We have a player with some recorded stories, but he always asks for one story from my imagination. So, I built this to help me.\n\nThis is a bedtime stories generator that uses AI for:\n\n- generating the story with gpt-3.5-turbo\n- generating the audio with tts-1\n- generating the cover image with dall-e-3\n\nAll stories, audio, and images are kept in a database so that I can read and play them again and again (and again...).\n\nIt is designed to support stories generated in many languages.\n\nWhy Urutau? The first name that came to my mind is a bird from South America that sings at night.\n\n## Screenshots\n\n![image](https://github.com/apbetioli/urutau/assets/2829329/6d3028be-7de4-4096-af6f-c954c6968b67)\n\n![image](https://github.com/apbetioli/urutau/assets/2829329/fd425dc0-8bcb-4a9c-995c-05055ac698d7)\n\n![image](https://github.com/apbetioli/urutau/assets/2829329/471e5f0d-a184-4cea-8309-e19d962cf4bd)\n\n## Technologies\n\nThis project was built with:\n\n- Next.js - pure magic\n- Typescript - let's make it harder\n- TailwindCSS - a bit of color\n- Prisma - no SQL\n- Clerk - identify yourself\n- Langchain - talk to the AI\n- AWS Lambda - talk more to the AI\n- AWS S3 - save your creations\n\nCurrently, it supports only OpenAI. More to come...\n\n## Deploy\n\nFirst step is deploying the serverless functions to AWS Lambda. The generation of images and audio can take more than 10 seconds, which is Vercel's hobby plan timeout, so we use AWS to reduce costs.\n\nThe serverless project is on a subfolder called `serverless`. Follow its [README](serverless/README.md) for deploying.\n\nNext you can deploy this project to Vercel.\n\n## Getting Started\n\n### Configure environment variables\n\nCopy `.env.template` to `.env.local` and fill in the variables.\n\n### Run\n\n```bash\nnpm install\nnpm run dev\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapbetioli%2Furutau","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapbetioli%2Furutau","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapbetioli%2Furutau/lists"}