diff --git a/README.md b/README.md
index e69de29..d500b37 100644
--- a/README.md
+++ b/README.md
@@ -0,0 +1,66 @@
+
+
๐๐.๐๐
+
Discord ยท English | ็ฎไฝไธญๆ
+
Temporary email service build with email worker.
+
+
+
+## Features
+
+- ๐ฏ Privacy-friendly, no registration required, out-of-the-box
+- โ๏ธ Support email sending and receiving
+- โจ Support saving passwords and retrieving email addresses
+- ๐ Support multiple domain name suffixes
+- ๐ 100% open source, quick deployment, no server required
+
+Principles๏ผ
+
+- Receiving emails (email worker)
+- Display email (remix)
+- Mail Storage (sqlite)
+- [Nodejs](https://nodejs.org) >= 18
+
+> Worker receives email -> saves to database -> client queries email
+
+## Self-hosted Tutorial
+
+### Requirements
+
+- [Cloudflare](https://dash.cloudflare.com/) account and a domain name hosted on Cloudflare
+- [turso](https://turso.tech) sqlite (a free plan available for personal use)
+- [Vercel](https://vercel.com) or [fly.io](https://fly.io) to deploy Remix app
+
+### Receiving Emails steps
+
+See [receive-tutorial-en.md](/docs//receive-tutorial-en.md)
+
+### Sending Emails steps
+
+See [send-tutorial-en.md](/docs/send-tutorial-en.md)
+
+## Local development
+
+copy `apps/remix/.env.example` to `apps/remix/.env` and fill in the necessary environment variables.
+
+```bash
+git clone https://github.com/oiov/vmail
+cd vmail
+pnpm install
+
+# run on localhost:3000
+pnpm run remix:dev
+```
+
+## Community Group
+
+- Discord: https://discord.gg/d68kWCBDEs
+
+## License
+
+GNU General Public License v3.0
+
+## Star History
+
+[](https://star-history.com/#oiov/vmail&Date)
+
+Inspired by smail.pw & email.ml
\ No newline at end of file
diff --git a/app/(protected)/dashboard/records/page.tsx b/app/(protected)/dashboard/records/page.tsx
index 03cf961..2dae5fd 100644
--- a/app/(protected)/dashboard/records/page.tsx
+++ b/app/(protected)/dashboard/records/page.tsx
@@ -19,7 +19,7 @@ export default async function DashboardPage() {
return (
<>
-
-
+
+
+
-
-
+
+
@@ -59,6 +60,7 @@ function TableColumnSekleton({ className }: { className?: string }) {
}
export default function UserUrlsList({ user }: UrlListProps) {
+ const { isMobile } = useMediaQuery();
const [isShowForm, setShowForm] = useState(false);
const [formType, setFormType] = useState("add");
const [currentEditUrl, setCurrentEditUrl] = useState(
@@ -127,11 +129,11 @@ export default function UserUrlsList({ user }: UrlListProps) {
)}
-
-
+
+
Target
-
+
Url
@@ -154,17 +156,20 @@ export default function UserUrlsList({ user }: UrlListProps) {
>
) : data && data.length > 0 ? (
data.map((short) => (
-
-
+
+
- {short.target}
+ {short.target.startsWith("http")
+ ? short.target.split("//")[1]
+ : short.target}
+ {/* {isMobile ? short.target.split("//")[1] :short.target} */}
-
+
diff --git a/components/layout/site-footer.tsx b/components/layout/site-footer.tsx
index 9307a35..e19a1f4 100644
--- a/components/layout/site-footer.tsx
+++ b/components/layout/site-footer.tsx
@@ -56,6 +56,15 @@ export function SiteFooter({ className }: React.HTMLAttributes) {
className="font-medium text-primary underline underline-offset-2"
>
Nextjs
+ {" "}
+ &{" "}
+
+ Cloudflare
.
diff --git a/config/docs.ts b/config/docs.ts
index 57fff7d..2513b31 100644
--- a/config/docs.ts
+++ b/config/docs.ts
@@ -12,18 +12,37 @@ export const docsConfig: DocsConfig = {
icon: "page",
},
{
- title: "Installation",
- href: "/docs/installation",
+ title: "Quick Start",
+ href: "/docs/quick-start",
+ icon: "page",
+ },
+ {
+ title: "DNS Records",
+ href: "/docs/dns-records",
+ icon: "page",
+ },
+ {
+ title: "Short URLs",
+ href: "/docs/short-urls",
+ icon: "page",
+ },
+ {
+ title: "Newsletter",
+ href: "/docs/newsletter",
icon: "page",
},
],
},
{
- title: "Configuration",
+ title: "Developer",
items: [
+ {
+ title: "Installation",
+ href: "/docs/installation",
+ icon: "page",
+ },
{
title: "Authentification",
- // title: "Blog",
href: "/docs/configuration/authentification",
icon: "page",
},
diff --git a/config/site.ts b/config/site.ts
index 6b415f8..d248466 100644
--- a/config/site.ts
+++ b/config/site.ts
@@ -7,7 +7,7 @@ const free_url_quota = env.NEXT_PUBLIC_FREE_URL_QUOTA;
const open_signup = env.NEXT_PUBLIC_OPEN_SIGNUP;
export const siteConfig: SiteConfig = {
- name: "WR.DO",
+ name: "๐๐.๐๐",
description: "A DNS record distribution system",
url: site_url,
ogImage: `${site_url}/_static/og.jpg`,
@@ -46,6 +46,7 @@ export const footerLinks: SidebarNavItem[] = [
items: [
{ title: "Introduction", href: "/docs" },
{ title: "Guide", href: "/docs/quick-start" },
+ { title: "Developer", href: "/docs/developer" },
],
},
];