feat: turbostarter boilerplate

Production-ready Next.js boilerplate with:
- Runtime env validation (fail-fast on missing vars)
- Feature-gated config (S3, Stripe, email, OAuth)
- Docker + Coolify deployment pipeline
- PostgreSQL + pgvector, MinIO S3, Better Auth
- TypeScript strict mode (no ignoreBuildErrors)
- i18n (en/es), AI modules, billing, monitoring

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Alejandro Gutiérrez
2026-02-02 17:29:12 +00:00
commit 3527e732d4
1618 changed files with 338230 additions and 0 deletions

View File

@@ -0,0 +1,60 @@
import { useMutation } from "@tanstack/react-query";
import { router } from "expo-router";
import { Alert } from "react-native";
import { useTranslation } from "@turbostarter/i18n";
import { Icons } from "@turbostarter/ui-mobile/icons";
import { Text } from "@turbostarter/ui-mobile/text";
import { pathsConfig } from "~/config/paths";
import { SettingsTile } from "~/modules/common/settings-tile";
import { Spinner } from "~/modules/common/spinner";
import { user } from "~/modules/user/lib/api";
export const DeleteAccount = () => {
const { t } = useTranslation(["common", "auth"]);
const deleteUser = useMutation({
...user.mutations.delete,
onSuccess: () => {
Alert.alert(t("account.delete.confirmation.success"), undefined, [
{
onPress: () => {
router.back();
},
},
]);
},
});
return (
<>
<SettingsTile
destructive
icon={Icons.Trash2}
onPress={() => {
Alert.alert(
t("account.delete.title"),
t("account.delete.disclaimer"),
[
{
text: t("cancel"),
style: "cancel",
},
{
text: t("account.delete.confirmation.cta"),
style: "destructive",
onPress: () =>
deleteUser.mutate({
callbackURL: pathsConfig.index,
}),
},
],
);
}}
>
<Text>{t("account.delete.title")}</Text>
</SettingsTile>
{deleteUser.isPending && <Spinner />}
</>
);
};