@@ -19,6 +19,7 @@ class UseCases
1919 public const ECOMMERCE = 'ecommerce ' ;
2020 public const DOCUMENTATION = 'documentation ' ;
2121 public const BLOG = 'blog ' ;
22+ public const AI = 'artificial intelligence ' ;
2223}
2324
2425const TEMPLATE_FRAMEWORKS = [
@@ -1365,4 +1366,32 @@ function getFramework(string $frameworkEnum, array $overrides)
13651366 'providerVersion ' => '0.3.* ' ,
13661367 'variables ' => []
13671368 ],
1369+ [
1370+ 'key ' => 'text-to-speech ' ,
1371+ 'name ' => 'Text-to-speech with ElevenLabs ' ,
1372+ 'tagline ' => 'Next.js app that transforms text into natural, human-like speech using ElevenLabs ' ,
1373+ 'score ' => 7 , // 0 to 10 based on looks of screenshot (avoid 1,2,3,8,9,10 if possible)
1374+ 'useCases ' => [UseCases::AI ],
1375+ 'screenshotDark ' => $ url . '/images/sites/templates/text-to-speech-dark.png ' ,
1376+ 'screenshotLight ' => $ url . '/images/sites/templates/text-to-speech-light.png ' ,
1377+ 'frameworks ' => [
1378+ getFramework ('NEXTJS ' , [
1379+ 'providerRootDirectory ' => './nextjs/text-to-speech ' ,
1380+ ]),
1381+ ],
1382+ 'vcsProvider ' => 'github ' ,
1383+ 'providerRepositoryId ' => 'templates-for-sites ' ,
1384+ 'providerOwner ' => 'appwrite ' ,
1385+ 'providerVersion ' => '0.5.* ' ,
1386+ 'variables ' => [
1387+ [
1388+ 'name ' => 'ELEVENLABS_API_KEY ' ,
1389+ 'description ' => 'Your ElevenLabs API key ' ,
1390+ 'value ' => '' ,
1391+ 'placeholder ' => 'sk_..... ' ,
1392+ 'required ' => true ,
1393+ 'type ' => 'password '
1394+ ],
1395+ ]
1396+ ],
13681397];
0 commit comments