diff --git a/README.md b/README.md
index ef53a6a..bcd301d 100644
--- a/README.md
+++ b/README.md
@@ -39,7 +39,7 @@ The name "Nuto" comes from the Spanish word "diminuto" (tiny), reflecting its pu
## ✨ Key Features
- **In-App Browser Escape**: Detects when a link is opened inside an in-app browser (like Instagram) and redirects to the native system browser.
-- **Deep Linking**: Intelligently routes URLs to native applications like YouTube and Spotify for a seamless user experience.
+- **Deep Linking**: Opens YouTube, Spotify, and other supported links in their native apps instead of the in-app browser.
- **Password Protection**: Secure your links with a password.
- **Link Expiration**: Set an expiration date for temporary links.
- **Custom Short Codes**: Users can customize the short code for their links.
diff --git a/app/app.css b/app/app.css
index 6affd44..e6b8c0e 100644
--- a/app/app.css
+++ b/app/app.css
@@ -89,7 +89,7 @@
--font-sans: Inter;
--font-serif: serif;
--font-mono: monospace;
- --radius: 1rem;
+ --radius: 0.6rem;
--shadow-2xs: 0px 2px 4px 0px hsl(0 0% 0% / 0.05);
--shadow-xs: 0px 2px 4px 0px hsl(0 0% 0% / 0.05);
--shadow-sm: 0px 2px 4px 0px hsl(0 0% 0% / 0.10), 0px 1px 2px -1px hsl(0 0% 0% / 0.10);
diff --git a/app/routes/home.tsx b/app/routes/home.tsx
index 9b3ca35..3c82eb3 100644
--- a/app/routes/home.tsx
+++ b/app/routes/home.tsx
@@ -15,7 +15,7 @@ export function meta({}: Route.MetaArgs) {
{
name: "description",
content:
- "Give your audience the seamless experience they deserve. Nuto's smart links bypass frustrating in-app browsers and open directly in native apps like YouTube and Spotify.",
+ "Nuto short links open directly in native apps like YouTube and Spotify instead of an in-app browser.",
},
{
property: "og:title",
@@ -24,7 +24,7 @@ export function meta({}: Route.MetaArgs) {
{
property: "og:description",
content:
- "We fix the broken mobile link experience. Nuto seamlessly routes your visitors to their favorite native apps instead of trapping them in an in-app browser.",
+ "Nuto routes your links to the native app — YouTube, Spotify, Apple Music — instead of the in-app browser.",
},
{ name: "twitter:card", content: "summary" },
];
diff --git a/components/features.tsx b/components/features.tsx
index da4209c..231e7a0 100644
--- a/components/features.tsx
+++ b/components/features.tsx
@@ -34,8 +34,8 @@ export function Features() {
Launch native apps
- Seamlessly deep-link your visitors straight into the apps they already
- have installed, like YouTube, Spotify, or Apple Music.
+ Your links open YouTube, Spotify, or Apple Music in their native
+ apps, not in a web view.
@@ -54,8 +54,8 @@ export function Features() {
Auto-expiring links
- Create temporary links that self-destruct after a set time, and seamlessly track
- how many clicks you're getting.
+ Set an expiry date and the link stops redirecting after it passes.
+ Click counts update as visitors arrive.
diff --git a/components/hero.tsx b/components/hero.tsx
index b0acb1b..9b98503 100644
--- a/components/hero.tsx
+++ b/components/hero.tsx
@@ -12,9 +12,6 @@ export default function Hero() {
return (
-
- Give your users a better experience
-
Stop losing visitors to clunky in-app browsers
@@ -74,7 +71,7 @@ export default function Hero() {
);
diff --git a/components/ui/button.tsx b/components/ui/button.tsx
index 5765a5a..2062832 100644
--- a/components/ui/button.tsx
+++ b/components/ui/button.tsx
@@ -5,7 +5,7 @@ import { cva, type VariantProps } from "class-variance-authority";
import { cn } from "lib/utils";
const buttonVariants = cva(
- "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
{
variants: {
variant: {
@@ -14,7 +14,7 @@ const buttonVariants = cva(
destructive:
"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 hover:cursor-pointer",
outline:
- "backdrop-blur-md backdrop-saturate-150 border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 hover:cursor-pointer",
+ "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 hover:cursor-pointer",
secondary:
"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80 hover:cursor-pointer",
ghost:
diff --git a/components/ui/input.tsx b/components/ui/input.tsx
index c450d38..d868ddb 100644
--- a/components/ui/input.tsx
+++ b/components/ui/input.tsx
@@ -8,8 +8,7 @@ function Input({ className, type, ...props }: React.ComponentProps<"input">) {
type={type}
data-slot="input"
className={cn(
- "backdrop-blur-xl backdrop-saturate-150",
- "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground border-input flex h-9 w-full min-w-0 rounded-md border bg-background/30 px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
+ "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground border-input flex h-9 w-full min-w-0 rounded-md border bg-background px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
className