bun i- Copy
.env.exampleto.envand update the variables.
# Copy .env.example to .env for each app
cp apps/api/.env.example apps/api/.env
cp apps/app/.env.example apps/app/.env
cp apps/web/.env.example apps/web/.env- Start the development server from either bun or turbo:
bun dev // starts everything in development mode (web, app, api, email)
bun dev:app // starts the app in development mode
bun dev:api // starts the api in development mode
//bun dev:web // starts the web app in development mode
// bun dev:email // starts the email app in development mode- navigate to packages/jobs
npx trigger.dev@latest dev
Deployment
npx trigger.dev@latest deploy
- (supabase google Oath set up)[https://supabase.com/docs/guides/auth/social-login/auth-google?queryGroups=environment&environment=client]
- get real images for the in the public space for voice actors
- character column on the scren play detail page goes to low on the page
- terms and conditions
- privacy policy
- offline maybe
- better login page
- account limits
- skip forward and back on the player
- Merge packages/script-to-audio/src/parsers/fountainParser2 and apps/app/src/components/scriptEditor/script-tokens.tsx
- When creating text, make sure characters are assigned
- This is not the case at the moment as we look if the last text was from a character. However type “action” should be assigned to narrator
- When a new version is created, the UI needs to be updated with the correct ids for lines
- Ids created from new lines in the UI are prepended with “internal” this is being stripped out, but we don’t want it all together. Its also being used to determine newly created lines
- Going back and forth with ctrl+z and shift+ctrl+z between major server versions and how it interacts with the indexedDb version
- How do we go to a previous version, then redo forwards
- What if we go back to a previous version and start editing how do we then undo?
- Versioning for character versions.
- Tie it to the version_number? Can the sql functions work properly to get a version?
- [ ]
- Removing characters from the script
- There is an issue using backspace delete on the script editor
- When deleting lines that were assigned to a character the lines need to be reassigned to narrator
- Sup abase transactions when updating lines
- Add check for assignment to audio character version before trying to get audio on the client
- Tracking of audio provider in DB
- Check concurrency rate
- Elegant failure when credits are out
- Very large documents take a while to load when from a pdf. Chunk it out
- Create new audio version when switching characters versions when audio is completed
- Character lines are being set to IsDialog true. This should not happen
- Add ability to add title of script
- Initial item on blank doc needs an id
- Change color for loading progress indicator on the get audio button
- Reload audio if lines have changed and new audio gotten
- On get audio save
- Save every few seconds, if offline put in a queue
- Add the ability on save to delete characters
- Get save data from scriptMeta instead of looping through all items
- In the editor if you tab it will go down to the player
- Add aria labels
UPDATES
- add config
- highlight lines on play
- save rate
- Indexed db gets too big
- Modifies for the same element can be batched
navigate to app/api
npm run migrate:new <name_of_migration>
reset db and re-run migtion
npm run reset
npm run login
You must be logged in.
npm run push
An open-source starter kit based on Midday.
Website ·
Issues ·
What's included ·
Prerequisites ·
Getting Started ·
How to use
Everything you need to build a production ready SaaS, it's a opinionated stack based on learnings from building Midday using the latest Next.js framework, it's a monorepo with a focus on code reuse and best practices that will grow with your business.
Next.js - Framework
Turborepo - Build system
Biome - Linter, formatter
TailwindCSS - Styling
Shadcn - UI components
TypeScript - Type safety
Supabase - Authentication, database, storage
Upstash - Cache and rate limiting
React Email - Email templates
Resend - Email delivery
i18n - Internationalization
Sentry - Error handling/monitoring
Dub - Sharable links
Trigger.dev - Background jobs
OpenPanel - Analytics
Polar - Billing (coming soon)
react-safe-action - Validated Server Actions
nuqs - Type-safe search params state manager
next-themes - Theme manager
.
├── apps # App workspace
│ ├── api # Supabase (API, Auth, Storage, Realtime, Edge Functions)
│ ├── app # App - your product
│ ├── web # Marketing site
│ └── ...
├── packages # Shared packages between apps
│ ├── analytics # OpenPanel analytics
│ ├── email # React email library
│ ├── jobs # Trigger.dev background jobs
│ ├── kv # Upstash rate-limited key-value storage
│ ├── logger # Logger library
│ ├── supabase # Supabase - Queries, Mutations, Clients
│ └── ui # Shared UI components (Shadcn)
├── tooling # are the shared configuration that are used by the apps and packages
│ └── typescript # Shared TypeScript configuration
├── .cursorrules # Cursor rules specific to this project
├── biome.json # Biome configuration
├── turbo.json # Turbo configuration
├── LICENSE
└── README.md
Bun
Docker
Upstash
Dub
Trigger.dev
Resend
Supabase
Sentry
OpenPanel
Clone this repo locally with the following command:
bunx degit midday-ai/v1 v1- Install dependencies using bun:
bun i- Copy
.env.exampleto.envand update the variables.
# Copy .env.example to .env for each app
cp apps/api/.env.example apps/api/.env
cp apps/app/.env.example apps/app/.env
cp apps/web/.env.example apps/web/.env- Start the development server from either bun or turbo:
bun dev // starts everything in development mode (web, app, api, email)
bun dev:web // starts the web app in development mode
bun dev:app // starts the app in development mode
bun dev:api // starts the api in development mode
bun dev:email // starts the email app in development mode
// Database
bun migrate // run migrations
bun seed // run seedThis boilerplate is inspired by our work on Midday, and it's designed to serve as a reference for real-world apps. Feel free to dive into the code and see how we've tackled various features. Whether you're looking to understand authentication flows, database interactions, or UI components, you'll find practical, battle-tested implementations throughout the codebase. It's not just a starting point; it's a learning resource that can help you build your own applications.
With this, you have a great starting point for your own project.
Vercel deployment will guide you through creating a Supabase account and project.
- supabase, not paying for yet
- namesor.app, free tire - get name genders
- trigger.dev dashboard (https://cloud.trigger.dev/projects/v3/proj_zehvrgpxuqenrdxgbkfq)[https://cloud.trigger.dev/projects/v3/proj_zehvrgpxuqenrdxgbkfq]
- trigger.dev - Jobs (https://cloud.trigger.dev/orgs/aloud-8cc8/projects/v3/aloud-0V-A)[https://cloud.trigger.dev/orgs/aloud-8cc8/projects/v3/aloud-0V-A]
- supabase - Database (https://supabase.com/dashboard/project/guefjgyrsxtgxuboyzen)[https://supabase.com/dashboard/project/guefjgyrsxtgxuboyzen]
- Vercel - Deployment (https://vercel.com/zakstals-projects/aloud-app/BJX8mse2bjvFw9hqhtd1fpsWP3Kr)[https://vercel.com/zakstals-projects/aloud-app/BJX8mse2bjvFw9hqhtd1fpsWP3Kr]
- ElevenLabs - voices (https://elevenlabs.io/app/speech-synthesis/text-to-speech)[https://elevenlabs.io/app/speech-synthesis/text-to-speech]
- Murf.ai - voices (https://murf.ai/studio?workspaceId=WORKSPACEID017256620230338QV&folderId=WFRoot)[https://murf.ai/studio?workspaceId=WORKSPACEID017256620230338QV&folderId=WFRoot]
- Google cloud - Oauth (https://console.cloud.google.com/apis/credentials?project=aloud-435319&inv=1&invt=AbeZrA)[https://console.cloud.google.com/apis/credentials?project=aloud-435319&inv=1&invt=AbeZrA]
- Digital ocean - pdf-to-text internal api (https://cloud.digitalocean.com/apps/c3521227-e88d-4d93-aac9-b7dad804ec7b?source_ref=projects&i=5e4c8d)[https://cloud.digitalocean.com/apps/c3521227-e88d-4d93-aac9-b7dad804ec7b?source_ref=projects&i=5e4c8d]
- aloud-api - repo for the pdf-to-text api ( https://github.com/zakstal/aloud-api)[https://github.com/zakstal/aloud-api]