Skip to content

Commit f1dd4e7

Browse files
authored
Merge pull request #379 from shnai0/data-room
data-room for website updates
2 parents 086e71e + 66c37a8 commit f1dd4e7

File tree

8 files changed

+523
-6
lines changed

8 files changed

+523
-6
lines changed

Diff for: components/web/alternatives/pricingtable.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ export default function ComparisonTable() {
5252
<br />
5353
</h2>
5454
<p className="mx-auto mt-6 max-w-xl text-lg leading-8 text-gray-600">
55-
Alternatives which help users to share documents and track the
55+
Docsend Alternatives which help users share documents and track the
5656
progress on each page. So allow to capture email and set other
5757
setting for sharable links.
5858
</p>

Diff for: components/web/dataroom-component.tsx

+190
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,190 @@
1+
import { CheckCircle2Icon, MinusIcon } from "lucide-react";
2+
interface ToolFeature {
3+
name: string;
4+
features: { [feature: string]: string };
5+
}
6+
7+
const tools: ToolFeature[] = [
8+
{
9+
name: "Papermark Business Plan",
10+
features: {
11+
docs: "Yes",
12+
folders: "Yes",
13+
linksettings: "Yes",
14+
advancedanalytics: "Yes",
15+
timerecorded: "Yes",
16+
blocklist: "Yes",
17+
verifications: "Yes",
18+
branding: "Yes",
19+
support: "Yes",
20+
notifications: "No",
21+
rooms: "No",
22+
users: "No",
23+
sso: "No",
24+
upload: "No",
25+
migration: "No",
26+
support2: "No",
27+
self: "No",
28+
white: "No",
29+
},
30+
},
31+
32+
// data room,whitelabelling
33+
{
34+
name: "Papermark Custom Plan",
35+
features: {
36+
docs: "Yes",
37+
folders: "Yes",
38+
linksettings: "Yes",
39+
advancedanalytics: "Yes",
40+
timerecorded: "Yes",
41+
blocklist: "Yes",
42+
verifications: "Yes",
43+
branding: "Yes",
44+
support: "Yes",
45+
notifications: "Yes",
46+
rooms: "Yes",
47+
users: "Yes",
48+
migration: "Yes",
49+
support2: "Yes",
50+
sso: "Yes",
51+
upload: "Yes",
52+
self: "No",
53+
white: "No",
54+
},
55+
},
56+
{
57+
name: "Papermark Self-Hosted Plan",
58+
59+
features: {
60+
docs: "Yes",
61+
folders: "Yes",
62+
linksettings: "Yes",
63+
advancedanalytics: "Yes",
64+
timerecorded: "Yes",
65+
blocklist: "Yes",
66+
verifications: "Yes",
67+
branding: "Yes",
68+
support: "Yes",
69+
notifications: "Yes",
70+
rooms: "Yes",
71+
users: "Yes",
72+
migration: "Yes",
73+
support2: "Yes",
74+
sso: "Yes",
75+
upload: "Yes",
76+
self: "Yes",
77+
white: "Yes",
78+
},
79+
},
80+
81+
// Add other tools in a similar format
82+
];
83+
84+
const featureDisplayNames: { [key: string]: string } = {
85+
docs: "Unlimited documents",
86+
folders: "Unlimited folders",
87+
linksettings: "Custom Link Settings",
88+
advancedanalytics: "Advanced Analytics",
89+
timerecorded: "Time recorded on each page",
90+
blocklist: "Allow & Block List",
91+
verifications: "Email verifications",
92+
notifications: "Notifications",
93+
branding: "Custom data room branding",
94+
rooms: "Unlimited data rooms",
95+
users: "User Groups",
96+
white: "Full white-labelling",
97+
sso: "SSO",
98+
upload: "Bulk upload",
99+
self: "Self-hosted on your servers",
100+
migration: "Migration from other platform",
101+
support: "48h email support ",
102+
support2: "24h support ",
103+
};
104+
105+
export default function ComparisonTable() {
106+
const renderFeatureName = (feature: string | boolean) => {
107+
// If the feature is a string, return it as is
108+
if (typeof feature === "string") {
109+
return feature;
110+
}
111+
112+
// If the feature is a boolean, return a checkmark or a minus icon
113+
if (feature) {
114+
return (
115+
<CheckCircle2Icon
116+
className="h-6 w-6 flex-none text-[#fb7a00]"
117+
aria-hidden="true"
118+
/>
119+
);
120+
} else {
121+
return (
122+
<MinusIcon
123+
className="h-6 w-6 flex-none text-black"
124+
aria-hidden="true"
125+
/>
126+
);
127+
}
128+
};
129+
const featuresList = Object.keys(tools[0].features);
130+
131+
return (
132+
<div className="">
133+
{/* <div className="mt-20 px-6 py-12 sm:px-6 sm:py-6 lg:px-8">
134+
<div className="mx-auto max-w-2xl text-center">
135+
<h2 className="text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl">
136+
Compare best Docsend alternatives based on core features
137+
<br />
138+
</h2>
139+
<p className="mx-auto mt-6 max-w-xl text-lg leading-8 text-gray-600">
140+
Check all the features you need to securely share documents
141+
</p>
142+
</div>
143+
</div> */}
144+
<div className="mt-6 flow-root">
145+
<div className="rounded-lg border border-gray-300 bg-gray-100 overflow-x-auto ">
146+
<div className="inline-block min-w-full align-middle">
147+
<table className="min-w-full divide-y divide-gray-300 border border-gray-300 ">
148+
<thead>
149+
<tr>
150+
<th className="px-3 py-3.5 text-left text-sm font-semibold text-gray-900 text-balance">
151+
Data Room Feature
152+
</th>
153+
{tools.map((tool) => (
154+
<th
155+
key={tool.name}
156+
className="px-3 py-3.5 text-left text-sm font-semibold text-gray-900 text-balance"
157+
>
158+
{tool.name}
159+
</th>
160+
))}
161+
</tr>
162+
</thead>
163+
<tbody className="divide-y divide-gray-200 bg-white border border-gray-300 ">
164+
{featuresList.map((feature) => (
165+
<tr key={feature}>
166+
<td className="px-3 py-4 text-sm text-gray-900 text-balance border border-gray-300 font-semibold ">
167+
{featureDisplayNames[feature]}
168+
</td>
169+
{tools.map((tool) => (
170+
<td
171+
key={tool.name}
172+
className={`px-3 py-4 text-sm ${
173+
tool.name === "Papermark"
174+
? "bg-green-50 text-green-700 font-semibold text-balance"
175+
: ""
176+
}`} // Consistent text color, conditional background color
177+
>
178+
{tool.features[feature]}
179+
</td>
180+
))}
181+
</tr>
182+
))}
183+
</tbody>
184+
</table>
185+
</div>
186+
</div>
187+
</div>
188+
</div>
189+
);
190+
}

Diff for: components/web/dataroom-features.tsx

Whitespace-only changes.

Diff for: components/web/footer.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { StatusWidget } from "./status-widget";
55

66
const navigation = {
77
product: [
8+
{ name: "Data Room", href: "/data-room" },
89
{ name: "AI Document Assistant", href: "/ai" },
910
{ name: "Notion", href: "/share-notion-page" },
1011
{ name: "Pricing", href: "/pricing" },
@@ -26,7 +27,7 @@ const navigation = {
2627
href: "https://chat.openai.com/g/g-G5orSgI31-findvc",
2728
},
2829
{
29-
name: "DocSend Alternatives Finder",
30+
name: "DocSend Alternatives",
3031
href: "/docsend-alternatives",
3132
},
3233
],

Diff for: components/web/navbar.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ export default function Navbar() {
2222
<div className="hidden items-center gap-2 md:flex">
2323
<Link
2424
className="group inline-flex h-10 w-max items-center justify-center rounded-md px-2.5 py-1 font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-accent/50 data-[state=open]:bg-accent/50"
25-
href="#"
25+
href="/data-room"
2626
>
2727
<span className="relative z-[2] flex items-center gap-1">
28-
<span>Features</span>
28+
<span>Data Room</span>
2929
</span>
3030
</Link>
3131
<Link

Diff for: middleware.ts

+1
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ export default async function middleware(req: NextRequest, ev: NextFetchEvent) {
5656
path !== "/oss-friends" &&
5757
path !== "/pricing" &&
5858
path !== "/docsend-alternatives" &&
59+
path !== "/data-room" &&
5960
path !== "/launch-week" &&
6061
path !== "/open-source-investors" &&
6162
path !== "/investors" &&

0 commit comments

Comments
 (0)