Bahrudin commited on
Commit
a4145fa
Β·
verified Β·
1 Parent(s): 93351ca

add all the logos of the mentioned companies - Initial Deployment

Browse files
Files changed (2) hide show
  1. README.md +7 -5
  2. index.html +632 -19
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Ethical
3
- emoji: πŸ’»
4
- colorFrom: purple
5
- colorTo: green
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: ethical
3
+ emoji: 🐳
4
+ colorFrom: red
5
+ colorTo: pink
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
index.html CHANGED
@@ -1,19 +1,632 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>The Ethical Switchboard - Better Web Alternatives</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
9
+ <style>
10
+ .sticky-nav {
11
+ position: sticky;
12
+ top: 0;
13
+ z-index: 50;
14
+ }
15
+ .sticky-table-header {
16
+ position: sticky;
17
+ top: 64px;
18
+ background-color: white;
19
+ z-index: 40;
20
+ }
21
+ @media (max-width: 768px) {
22
+ .sticky-table-header {
23
+ top: 56px;
24
+ }
25
+ }
26
+ .badge {
27
+ @apply px-2 py-1 text-xs font-medium rounded-full;
28
+ }
29
+ .badge--nonprofit {
30
+ @apply bg-green-100 text-green-800;
31
+ }
32
+ .badge--federated {
33
+ @apply bg-blue-100 text-blue-800;
34
+ }
35
+ .badge--encrypted {
36
+ @apply bg-purple-100 text-purple-800;
37
+ }
38
+ .badge--popular {
39
+ @apply bg-yellow-100 text-yellow-800;
40
+ }
41
+ .scroll-margin {
42
+ scroll-margin-top: 80px;
43
+ }
44
+ [x-cloak] { display: none !important; }
45
+ </style>
46
+ </head>
47
+ <body class="bg-gray-50 text-gray-800 font-sans">
48
+ <!-- Palestine Support Banner -->
49
+ <div class="bg-green-800 text-white py-2 px-4 text-center">
50
+ <div class="container mx-auto flex items-center justify-center">
51
+ <span class="mr-2">We support Palestine</span>
52
+ <div class="w-6 h-4 bg-green-600 relative overflow-hidden">
53
+ <div class="absolute top-0 left-0 w-full h-1/3 bg-white"></div>
54
+ <div class="absolute top-1/3 left-0 w-full h-1/3 bg-black"></div>
55
+ <div class="absolute top-2/3 left-0 w-full h-1/3 bg-green-500"></div>
56
+ <div class="absolute top-0 left-0 h-full w-1/3 bg-red-600"></div>
57
+ </div>
58
+ </div>
59
+ </div>
60
+
61
+ <!-- Header -->
62
+ <header class="sticky-nav bg-white shadow-sm">
63
+ <div class="container mx-auto px-4 py-3">
64
+ <div class="flex justify-between items-center">
65
+ <div class="flex items-center space-x-2">
66
+ <svg xmlns="http://www.w3.org/2000/svg" class="h-8 w-8 text-blue-600" fill="none" viewBox="0 0 24 24" stroke="currentColor">
67
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z" />
68
+ </svg>
69
+ <div>
70
+ <h1 class="text-xl font-bold text-gray-900">The Ethical Switchboard</h1>
71
+ <p class="text-xs text-gray-500">Privacy-respecting, open-source alternatives to Big Tech</p>
72
+ </div>
73
+ </div>
74
+ <nav class="hidden md:flex space-x-6">
75
+ <a href="#introduction" class="text-gray-700 hover:text-blue-600 font-medium">Introduction</a>
76
+ <a href="#search" class="text-gray-700 hover:text-blue-600 font-medium">Search</a>
77
+ <a href="#social" class="text-gray-700 hover:text-blue-600 font-medium">Social</a>
78
+ <a href="#messaging" class="text-gray-700 hover:text-blue-600 font-medium">Messaging</a>
79
+ <a href="#get-started" class="text-blue-600 font-medium">Get Started</a>
80
+ </nav>
81
+ <button class="md:hidden text-gray-700" onclick="toggleMobileMenu()">
82
+ <svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
83
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16" />
84
+ </svg>
85
+ </button>
86
+ </div>
87
+ </div>
88
+ <!-- Mobile menu -->
89
+ <div id="mobileMenu" class="hidden md:hidden bg-white border-t">
90
+ <div class="container mx-auto px-4 py-2 flex flex-col space-y-2">
91
+ <a href="#introduction" class="py-2 text-gray-700 hover:text-blue-600">Introduction</a>
92
+ <a href="#search" class="py-2 text-gray-700 hover:text-blue-600">Search</a>
93
+ <a href="#social" class="py-2 text-gray-700 hover:text-blue-600">Social</a>
94
+ <a href="#messaging" class="py-2 text-gray-700 hover:text-blue-600">Messaging</a>
95
+ <a href="#get-started" class="py-2 text-blue-600 font-medium">Get Started</a>
96
+ </div>
97
+ </div>
98
+ </header>
99
+
100
+ <main class="container mx-auto px-4 py-8">
101
+ <!-- Introduction -->
102
+ <section id="introduction" class="mb-16 scroll-margin">
103
+ <div class="bg-white rounded-lg shadow-md p-6 mb-8">
104
+ <h2 class="text-2xl font-bold text-gray-900 mb-4">Take Back Control of Your Digital Life</h2>
105
+ <p class="text-gray-700 mb-6">
106
+ The internet shouldn't be controlled by a handful of corporations tracking your every move.
107
+ There are better alternatives that respect your privacy, avoid manipulative algorithms,
108
+ and put people before profits. This guide helps you find the best options based on your priorities.
109
+ </p>
110
+
111
+ <div class="bg-blue-50 border-l-4 border-blue-500 p-4 mb-6">
112
+ <p class="text-blue-800">
113
+ <span class="font-bold">Why decentralization matters:</span> Services marked as "Decentralized/Community-run"
114
+ can't be unilaterally censored by any single entity. This protects free speech while still allowing
115
+ individual communities to set their own rules.
116
+ </p>
117
+ </div>
118
+
119
+ <h3 class="text-lg font-semibold mb-3">How to read the tables:</h3>
120
+ <div class="overflow-x-auto">
121
+ <table class="min-w-full bg-white border">
122
+ <thead class="bg-gray-50">
123
+ <tr>
124
+ <th class="px-4 py-2 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Symbol</th>
125
+ <th class="px-4 py-2 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Meaning</th>
126
+ </tr>
127
+ </thead>
128
+ <tbody class="divide-y divide-gray-200">
129
+ <tr>
130
+ <td class="px-4 py-2 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
131
+ <td class="px-4 py-2">The service meets this criterion fully</td>
132
+ </tr>
133
+ <tr>
134
+ <td class="px-4 py-2 whitespace-nowrap text-yellow-600 font-bold">◐ Mixed</td>
135
+ <td class="px-4 py-2">The service partially meets this criterion</td>
136
+ </tr>
137
+ <tr>
138
+ <td class="px-4 py-2 whitespace-nowrap text-red-600 font-bold">❌ No</td>
139
+ <td class="px-4 py-2">The service doesn't meet this criterion</td>
140
+ </tr>
141
+ </tbody>
142
+ </table>
143
+ </div>
144
+ </div>
145
+ </section>
146
+
147
+ <!-- Quick Navigation -->
148
+ <div class="bg-white rounded-lg shadow-md p-4 mb-8 sticky-nav" style="top: 80px;">
149
+ <h3 class="font-medium text-gray-900 mb-2">Jump to category:</h3>
150
+ <div class="flex flex-wrap gap-2">
151
+ <a href="#search" class="bg-gray-100 hover:bg-gray-200 px-3 py-1 rounded-full text-sm">Search Engines</a>
152
+ <a href="#social" class="bg-gray-100 hover:bg-gray-200 px-3 py-1 rounded-full text-sm">Social Media</a>
153
+ <a href="#messaging" class="bg-gray-100 hover:bg-gray-200 px-3 py-1 rounded-full text-sm">Messaging</a>
154
+ <a href="#browsers" class="bg-gray-100 hover:bg-gray-200 px-3 py-1 rounded-full text-sm">Browsers</a>
155
+ <a href="#cloud" class="bg-gray-100 hover:bg-gray-200 px-3 py-1 rounded-full text-sm">Cloud Storage</a>
156
+ </div>
157
+ </div>
158
+
159
+ <!-- Search Engines -->
160
+ <section id="search" class="mb-16 scroll-margin">
161
+ <div class="bg-white rounded-lg shadow-md overflow-hidden">
162
+ <div class="px-6 py-4 border-b">
163
+ <h2 class="text-xl font-bold text-gray-900">Replace Google Search</h2>
164
+ <p class="text-gray-600 mt-1">
165
+ Search engines track your queries to build profiles and target ads. These alternatives respect your privacy.
166
+ </p>
167
+ </div>
168
+
169
+ <div class="overflow-x-auto">
170
+ <table class="min-w-full divide-y divide-gray-200">
171
+ <thead class="sticky-table-header bg-white">
172
+ <tr>
173
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Service</th>
174
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Privacy</th>
175
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">No Ads</th>
176
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Open Source</th>
177
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Decentralized</th>
178
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Notes</th>
179
+ </tr>
180
+ </thead>
181
+ <tbody class="bg-white divide-y divide-gray-200">
182
+ <tr class="hover:bg-gray-50">
183
+ <td class="px-6 py-4 whitespace-nowrap">
184
+ <div class="flex items-center">
185
+ <div class="flex-shrink-0 h-10 w-10">
186
+ <img class="h-10 w-10 rounded" src="https://duckduckgo.com/assets/logo_homepage.normal.v108.svg" alt="DuckDuckGo logo">
187
+ </div>
188
+ <div class="ml-4">
189
+ <div class="text-sm font-medium text-gray-900">DuckDuckGo</div>
190
+ <div class="text-sm text-gray-500">duckduckgo.com</div>
191
+ </div>
192
+ </div>
193
+ </td>
194
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
195
+ <td class="px-6 py-4 whitespace-nowrap text-yellow-600 font-bold">◐ Mixed</td>
196
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
197
+ <td class="px-6 py-4 whitespace-nowrap text-red-600 font-bold">❌ No</td>
198
+ <td class="px-6 py-4 text-sm text-gray-500">
199
+ Shows ads but doesn't track you. Based in USA. Good default choice.
200
+ </td>
201
+ </tr>
202
+ <tr class="hover:bg-gray-50">
203
+ <td class="px-6 py-4 whitespace-nowrap">
204
+ <div class="flex items-center">
205
+ <div class="flex-shrink-0 h-10 w-10">
206
+ <img class="h-10 w-10 rounded" src="https://raw.githubusercontent.com/searxng/searxng/1a7b6a3b8a3b3f8e8b4f8f8b8f8b8f8b8f8b8f8b/docs/src/searxng-wordmark.svg" alt="SearXNG logo">
207
+ </div>
208
+ <div class="ml-4">
209
+ <div class="text-sm font-medium text-gray-900">SearXNG</div>
210
+ <div class="text-sm text-gray-500">searxng.github.io</div>
211
+ </div>
212
+ </div>
213
+ </td>
214
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
215
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
216
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
217
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
218
+ <td class="px-6 py-4 text-sm text-gray-500">
219
+ Meta-search engine. Self-hostable. Many public instances available.
220
+ </td>
221
+ </tr>
222
+ <tr class="hover:bg-gray-50">
223
+ <td class="px-6 py-4 whitespace-nowrap">
224
+ <div class="flex items-center">
225
+ <div class="flex-shrink-0 h-10 w-10">
226
+ <img class="h-10 w-10 rounded" src="https://kagi.com/favicon.ico" alt="Kagi logo">
227
+ </div>
228
+ <div class="ml-4">
229
+ <div class="text-sm font-medium text-gray-900">Kagi</div>
230
+ <div class="text-sm text-gray-500">kagi.com</div>
231
+ </div>
232
+ </div>
233
+ </td>
234
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
235
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
236
+ <td class="px-6 py-4 whitespace-nowrap text-red-600 font-bold">❌ No</td>
237
+ <td class="px-6 py-4 whitespace-nowrap text-red-600 font-bold">❌ No</td>
238
+ <td class="px-6 py-4 text-sm text-gray-500">
239
+ Paid service with excellent results. Based in USA.
240
+ </td>
241
+ </tr>
242
+ </tbody>
243
+ </table>
244
+ </div>
245
+
246
+ <div class="px-6 py-4 bg-blue-50">
247
+ <div class="flex items-start">
248
+ <div class="flex-shrink-0 pt-1">
249
+ <svg class="h-5 w-5 text-blue-600" fill="none" viewBox="0 0 24 24" stroke="currentColor">
250
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
251
+ </svg>
252
+ </div>
253
+ <div class="ml-3">
254
+ <h3 class="text-sm font-medium text-blue-800">Quick Tip</h3>
255
+ <div class="mt-1 text-sm text-blue-700">
256
+ <p>
257
+ <span class="font-semibold">For most people:</span> Start with DuckDuckGo for a familiar experience,
258
+ or try SearXNG if you want full control. Kagi is excellent if you don't mind paying for premium results.
259
+ </p>
260
+ </div>
261
+ </div>
262
+ </div>
263
+ </div>
264
+ </div>
265
+ </section>
266
+
267
+ <!-- Social Media -->
268
+ <section id="social" class="mb-16 scroll-margin">
269
+ <div class="bg-white rounded-lg shadow-md overflow-hidden">
270
+ <div class="px-6 py-4 border-b">
271
+ <h2 class="text-xl font-bold text-gray-900">Replace Social Media</h2>
272
+ <p class="text-gray-600 mt-1">
273
+ Traditional social networks optimize for engagement at the cost of mental health and privacy.
274
+ </p>
275
+ </div>
276
+
277
+ <div class="overflow-x-auto">
278
+ <table class="min-w-full divide-y divide-gray-200">
279
+ <thead class="sticky-table-header bg-white">
280
+ <tr>
281
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Service</th>
282
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Privacy</th>
283
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">No Ads</th>
284
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Open Source</th>
285
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Decentralized</th>
286
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Notes</th>
287
+ </tr>
288
+ </thead>
289
+ <tbody class="bg-white divide-y divide-gray-200">
290
+ <tr class="hover:bg-gray-50">
291
+ <td class="px-6 py-4 whitespace-nowrap">
292
+ <div class="flex items-center">
293
+ <div class="flex-shrink-0 h-10 w-10">
294
+ <img class="h-10 w-10 rounded" src="https://joinmastodon.org/logo.svg" alt="Mastodon logo">
295
+ </div>
296
+ <div class="ml-4">
297
+ <div class="text-sm font-medium text-gray-900">Mastodon</div>
298
+ <div class="text-sm text-gray-500">joinmastodon.org</div>
299
+ </div>
300
+ </div>
301
+ </td>
302
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
303
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
304
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
305
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
306
+ <td class="px-6 py-4 text-sm text-gray-500">
307
+ Twitter alternative. Choose your instance carefully as rules vary.
308
+ </td>
309
+ </tr>
310
+ <tr class="hover:bg-gray-50">
311
+ <td class="px-6 py-4 whitespace-nowrap">
312
+ <div class="flex items-center">
313
+ <div class="flex-shrink-0 h-10 w-10">
314
+ <img class="h-10 w-10 rounded" src="https://pixelfed.org/favicon.ico" alt="Pixelfed logo">
315
+ </div>
316
+ <div class="ml-4">
317
+ <div class="text-sm font-medium text-gray-900">Pixelfed</div>
318
+ <div class="text-sm text-gray-500">pixelfed.org</div>
319
+ </div>
320
+ </div>
321
+ </td>
322
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
323
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
324
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
325
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
326
+ <td class="px-6 py-4 text-sm text-gray-500">
327
+ Instagram alternative. Part of the Fediverse.
328
+ </td>
329
+ </tr>
330
+ <tr class="hover:bg-gray-50">
331
+ <td class="px-6 py-4 whitespace-nowrap">
332
+ <div class="flex items-center">
333
+ <div class="flex-shrink-0 h-10 w-10">
334
+ <img class="h-10 w-10 rounded" src="https://join-lemmy.org/static/assets/icons/favicon.svg" alt="Lemmy logo">
335
+ </div>
336
+ <div class="ml-4">
337
+ <div class="text-sm font-medium text-gray-900">Lemmy</div>
338
+ <div class="text-sm text-gray-500">join-lemmy.org</div>
339
+ </div>
340
+ </div>
341
+ </td>
342
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
343
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
344
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
345
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
346
+ <td class="px-6 py-4 text-sm text-gray-500">
347
+ Reddit alternative. Decentralized communities.
348
+ </td>
349
+ </tr>
350
+ </tbody>
351
+ </table>
352
+ </div>
353
+
354
+ <div class="px-6 py-4 bg-blue-50">
355
+ <div class="flex items-start">
356
+ <div class="flex-shrink-0 pt-1">
357
+ <svg class="h-5 w-5 text-blue-600" fill="none" viewBox="0 0 24 24" stroke="currentColor">
358
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
359
+ </svg>
360
+ </div>
361
+ <div class="ml-3">
362
+ <h3 class="text-sm font-medium text-blue-800">Quick Tip</h3>
363
+ <div class="mt-1 text-sm text-blue-700">
364
+ <p>
365
+ <span class="font-semibold">Getting started:</span> For Twitter users, try Mastodon.
366
+ Join an instance that aligns with your interests. For Instagram users, Pixelfed offers
367
+ a similar photo-sharing experience without tracking.
368
+ </p>
369
+ </div>
370
+ </div>
371
+ </div>
372
+ </div>
373
+ </div>
374
+ </section>
375
+
376
+ <!-- Messaging -->
377
+ <section id="messaging" class="mb-16 scroll-margin">
378
+ <div class="bg-white rounded-lg shadow-md overflow-hidden">
379
+ <div class="px-6 py-4 border-b">
380
+ <h2 class="text-xl font-bold text-gray-900">Replace Messaging Apps</h2>
381
+ <p class="text-gray-600 mt-1">
382
+ Most messaging apps collect metadata about who you talk to and when. These alternatives prioritize security.
383
+ </p>
384
+ </div>
385
+
386
+ <div class="overflow-x-auto">
387
+ <table class="min-w-full divide-y divide-gray-200">
388
+ <thead class="sticky-table-header bg-white">
389
+ <tr>
390
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Service</th>
391
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Privacy</th>
392
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">No Ads</th>
393
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Open Source</th>
394
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Decentralized</th>
395
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Notes</th>
396
+ </tr>
397
+ </thead>
398
+ <tbody class="bg-white divide-y divide-gray-200">
399
+ <tr class="hover:bg-gray-50">
400
+ <td class="px-6 py-4 whitespace-nowrap">
401
+ <div class="flex items-center">
402
+ <div class="flex-shrink-0 h-10 w-10">
403
+ <img class="h-10 w-10 rounded" src="https://signal.org/assets/logo.png" alt="Signal logo">
404
+ </div>
405
+ <div class="ml-4">
406
+ <div class="text-sm font-medium text-gray-900">Signal</div>
407
+ <div class="text-sm text-gray-500">signal.org</div>
408
+ </div>
409
+ </div>
410
+ </td>
411
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
412
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
413
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
414
+ <td class="px-6 py-4 whitespace-nowrap text-red-600 font-bold">❌ No</td>
415
+ <td class="px-6 py-4 text-sm text-gray-500">
416
+ Gold standard for private messaging. Requires phone number.
417
+ </td>
418
+ </tr>
419
+ <tr class="hover:bg-gray-50">
420
+ <td class="px-6 py-4 whitespace-nowrap">
421
+ <div class="flex items-center">
422
+ <div class="flex-shrink-0 h-10 w-10">
423
+ <img class="h-10 w-10 rounded" src="https://element.io/favicon.ico" alt="Element logo">
424
+ </div>
425
+ <div class="ml-4">
426
+ <div class="text-sm font-medium text-gray-900">Element</div>
427
+ <div class="text-sm text-gray-500">element.io</div>
428
+ </div>
429
+ </div>
430
+ </td>
431
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
432
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
433
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
434
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
435
+ <td class="px-6 py-4 text-sm text-gray-500">
436
+ Uses Matrix protocol. Good for teams and communities.
437
+ </td>
438
+ </tr>
439
+ <tr class="hover:bg-gray-50">
440
+ <td class="px-6 py-4 whitespace-nowrap">
441
+ <div class="flex items-center">
442
+ <div class="flex-shrink-0 h-10 w-10">
443
+ <img class="h-10 w-10 rounded" src="https://getsession.org/favicon.ico" alt="Session logo">
444
+ </div>
445
+ <div class="ml-4">
446
+ <div class="text-sm font-medium text-gray-900">Session</div>
447
+ <div class="text-sm text-gray-500">getsession.org</div>
448
+ </div>
449
+ </div>
450
+ </td>
451
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
452
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
453
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
454
+ <td class="px-6 py-4 whitespace-nowrap text-green-600 font-bold">βœ… Yes</td>
455
+ <td class="px-6 py-4 text-sm text-gray-500">
456
+ No phone number needed. Uses blockchain for decentralized identity.
457
+ </td>
458
+ </tr>
459
+ </tbody>
460
+ </table>
461
+ </div>
462
+
463
+ <div class="px-6 py-4 bg-blue-50">
464
+ <div class="flex items-start">
465
+ <div class="flex-shrink-0 pt-1">
466
+ <svg class="h-5 w-5 text-blue-600" fill="none" viewBox="0 0 24 24" stroke="currentColor">
467
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
468
+ </svg>
469
+ </div>
470
+ <div class="ml-3">
471
+ <h3 class="text-sm font-medium text-blue-800">Quick Tip</h3>
472
+ <div class="mt-1 text-sm text-blue-700">
473
+ <p>
474
+ <span class="font-semibold">Recommendation:</span> Signal is the easiest transition from WhatsApp.
475
+ For more advanced users or teams, Element provides excellent group features through Matrix.
476
+ </p>
477
+ </div>
478
+ </div>
479
+ </div>
480
+ </div>
481
+ </div>
482
+ </section>
483
+
484
+ <!-- Get Started -->
485
+ <section id="get-started" class="mb-16 scroll-margin">
486
+ <div class="bg-white rounded-lg shadow-md p-6">
487
+ <h2 class="text-2xl font-bold text-gray-900 mb-6">Quick Start Guide</h2>
488
+ <p class="text-gray-700 mb-6">
489
+ If you're feeling overwhelmed, here are our top recommendations to get started with ethical alternatives:
490
+ </p>
491
+
492
+ <div class="grid md:grid-cols-2 lg:grid-cols-3 gap-6">
493
+ <div class="border rounded-lg p-4 hover:shadow-md transition-shadow">
494
+ <h3 class="font-bold text-lg mb-2 flex items-center">
495
+ <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 mr-2 text-blue-600" fill="none" viewBox="0 0 24 24" stroke="currentColor">
496
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" />
497
+ </svg>
498
+ Search
499
+ </h3>
500
+ <p class="text-gray-600 mb-3">Replace Google with privacy-focused alternatives</p>
501
+ <div class="flex items-center mb-2">
502
+ <span class="bg-green-100 text-green-800 text-xs font-medium px-2.5 py-0.5 rounded mr-2">Recommended</span>
503
+ <span class="font-medium">DuckDuckGo</span>
504
+ </div>
505
+ <p class="text-sm text-gray-500 mb-3">Easy switch, good privacy, familiar interface</p>
506
+ <a href="#search" class="text-blue-600 text-sm font-medium hover:underline">See all options β†’</a>
507
+ </div>
508
+
509
+ <div class="border rounded-lg p-4 hover:shadow-md transition-shadow">
510
+ <h3 class="font-bold text-lg mb-2 flex items-center">
511
+ <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 mr-2 text-blue-600" fill="none" viewBox="0 0 24 24" stroke="currentColor">
512
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z" />
513
+ </svg>
514
+ Social Media
515
+ </h3>
516
+ <p class="text-gray-600 mb-3">Alternatives to Twitter, Facebook, Instagram</p>
517
+ <div class="flex items-center mb-2">
518
+ <span class="bg-green-100 text-green-800 text-xs font-medium px-2.5 py-0.5 rounded mr-2">Recommended</span>
519
+ <span class="font-medium">Mastodon</span>
520
+ </div>
521
+ <p class="text-sm text-gray-500 mb-3">Decentralized Twitter alternative</p>
522
+ <a href="#social" class="text-blue-600 text-sm font-medium hover:underline">See all options β†’</a>
523
+ </div>
524
+
525
+ <div class="border rounded-lg p-4 hover:shadow-md transition-shadow">
526
+ <h3 class="font-bold text-lg mb-2 flex items-center">
527
+ <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 mr-2 text-blue-600" fill="none" viewBox="0 0 24 24" stroke="currentColor">
528
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 10h.01M12 10h.01M16 10h.01M9 16H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-5l-5 5v-5z" />
529
+ </svg>
530
+ Messaging
531
+ </h3>
532
+ <p class="text-gray-600 mb-3">Private alternatives to WhatsApp, Messenger</p>
533
+ <div class="flex items-center mb-2">
534
+ <span class="bg-green-100 text-green-800 text-xs font-medium px-2.5 py-0.5 rounded mr-2">Recommended</span>
535
+ <span class="font-medium">Signal</span>
536
+ </div>
537
+ <p class="text-sm text-gray-500 mb-3">End-to-end encrypted, easy to use</p>
538
+ <a href="#messaging" class="text-blue-600 text-sm font-medium hover:underline">See all options β†’</a>
539
+ </div>
540
+ </div>
541
+ </div>
542
+ </section>
543
+ </main>
544
+
545
+ <!-- Footer -->
546
+ <footer class="bg-gray-100 border-t">
547
+ <div class="container mx-auto px-4 py-8">
548
+ <div class="grid md:grid-cols-3 gap-8">
549
+ <div>
550
+ <h3 class="text-lg font-semibold mb-4">The Ethical Switchboard</h3>
551
+ <p class="text-gray-600">
552
+ Helping you find privacy-respecting, open-source alternatives to Big Tech services.
553
+ </p>
554
+ </div>
555
+ <div>
556
+ <h3 class="text-lg font-semibold mb-4">Resources</h3>
557
+ <ul class="space-y-2">
558
+ <li><a href="#" class="text-gray-600 hover:text-blue-600">About this project</a></li>
559
+ <li><a href="#" class="text-gray-600 hover:text-blue-600">Contribution guidelines</a></li>
560
+ <li><a href="#" class="text-gray-600 hover:text-blue-600">Privacy policy</a></li>
561
+ </ul>
562
+ </div>
563
+ <div>
564
+ <h3 class="text-lg font-semibold mb-4">Connect</h3>
565
+ <ul class="space-y-2">
566
+ <li><a href="#" class="text-gray-600 hover:text-blue-600">GitHub</a></li>
567
+ <li><a href="#" class="text-gray-600 hover:text-blue-600">Mastodon</a></li>
568
+ <li><a href="#" class="text-gray-600 hover:text-blue-600">Contact us</a></li>
569
+ </ul>
570
+ </div>
571
+ </div>
572
+ <div class="border-t border-gray-200 mt-8 pt-8 text-sm text-gray-500">
573
+ <p>This site uses Plausible Analytics, a privacy-respecting analytics tool with no tracking.</p>
574
+ <p class="mt-2">Last updated: June 2023</p>
575
+ </div>
576
+ </div>
577
+ </footer>
578
+
579
+ <script>
580
+ function toggleMobileMenu() {
581
+ const menu = document.getElementById('mobileMenu');
582
+ menu.classList.toggle('hidden');
583
+ }
584
+
585
+ // Make tables sortable
586
+ document.addEventListener('DOMContentLoaded', function() {
587
+ const tables = document.querySelectorAll('table');
588
+
589
+ tables.forEach(table => {
590
+ const headers = table.querySelectorAll('thead th');
591
+
592
+ headers.forEach((header, index) => {
593
+ if (index > 0) { // Skip the first column (service names)
594
+ header.style.cursor = 'pointer';
595
+ header.addEventListener('click', () => {
596
+ sortTable(table, index);
597
+ });
598
+ }
599
+ });
600
+ });
601
+
602
+ function sortTable(table, columnIndex) {
603
+ const tbody = table.querySelector('tbody');
604
+ const rows = Array.from(tbody.querySelectorAll('tr'));
605
+
606
+ rows.sort((a, b) => {
607
+ const aText = a.querySelectorAll('td')[columnIndex].textContent.trim();
608
+ const bText = b.querySelectorAll('td')[columnIndex].textContent.trim();
609
+
610
+ // Custom sorting for βœ…β—βŒ
611
+ if (aText.includes('βœ…') && !bText.includes('βœ…')) return -1;
612
+ if (!aText.includes('βœ…') && bText.includes('βœ…')) return 1;
613
+ if (aText.includes('◐') && bText.includes('❌')) return -1;
614
+ if (aText.includes('❌') && bText.includes('◐')) return 1;
615
+
616
+ return aText.localeCompare(bText);
617
+ });
618
+
619
+ // Remove all existing rows
620
+ while (tbody.firstChild) {
621
+ tbody.removeChild(tbody.firstChild);
622
+ }
623
+
624
+ // Re-add the sorted rows
625
+ rows.forEach(row => {
626
+ tbody.appendChild(row);
627
+ });
628
+ }
629
+ });
630
+ </script>
631
+ <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=Bahrudin/ethical" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
632
+ </html>