Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions apps/lucidia/app/globals.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
@tailwind base;
@tailwind components;
@tailwind utilities;

:root {
--hot-pink: #FF1D6C;
--amber: #F5A623;
--electric-blue: #2979FF;
--violet: #9C27B0;
}

.prose {
color: #e5e5e5;
}
.prose h1, .prose h2, .prose h3 {
color: #fff;
}
.prose a {
color: var(--electric-blue);
}
.prose code {
background: #1a1a1a;
padding: 0.2em 0.4em;
border-radius: 4px;
}
15 changes: 15 additions & 0 deletions apps/lucidia/app/layout.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import type { Metadata } from 'next'
import './globals.css'

export const metadata: Metadata = {
title: 'Lucidia | BlackRoad Knowledge',
description: 'Travel guides, tips, and collective wisdom',
}

export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="en">
<body className="bg-black text-white min-h-screen">{children}</body>
</html>
)
}
81 changes: 81 additions & 0 deletions apps/lucidia/app/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
import Link from 'next/link'

const guides = [
{ slug: 'getting-started', title: 'Getting Started with BlackRoad', category: 'Basics', icon: '🚀' },
{ slug: 'roadview-guide', title: 'Using Roadview for Live Maps', category: 'Portals', icon: '🗺️' },
{ slug: 'roadbook-journaling', title: 'Journey Journaling with Roadbook', category: 'Portals', icon: '📔' },
{ slug: 'radius-meetups', title: 'Finding Local Meetups', category: 'Community', icon: '📍' },
{ slug: 'roadcoin-basics', title: 'Understanding Roadcoin', category: 'Tokens', icon: '🪙' },
{ slug: 'api-integration', title: 'API Integration Guide', category: 'Developers', icon: '⚡' },
]

const categories = [...new Set(guides.map(g => g.category))]

export default function Lucidia() {
return (
<div className="min-h-screen">
{/* Header */}
<header className="border-b border-gray-800 p-6">
<div className="max-w-6xl mx-auto flex items-center justify-between">
<div>
<h1 className="text-3xl font-bold">
<span className="text-[#9C27B0]">Lucidia</span>
</h1>
<p className="text-gray-400">Knowledge flows here</p>
</div>
<div className="flex gap-4">
<input
type="search"
placeholder="Search guides..."
className="bg-gray-900 border border-gray-700 rounded-lg px-4 py-2 w-64 focus:border-violet-500 outline-none"
/>
</div>
</div>
</header>

{/* Main content */}
<main className="max-w-6xl mx-auto p-6">
{/* Categories */}
<div className="flex gap-2 mb-8 flex-wrap">
<button className="px-4 py-2 bg-violet-600 rounded-full text-sm">All</button>
{categories.map(cat => (
<button key={cat} className="px-4 py-2 bg-gray-800 hover:bg-gray-700 rounded-full text-sm">
{cat}
</button>
))}
</div>

{/* Guide grid */}
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-4">
{guides.map(guide => (
<Link
key={guide.slug}
href={`/guides/${guide.slug}`}
className="block p-6 bg-gray-900 rounded-xl border border-gray-800 hover:border-violet-500 transition-colors"
>
<div className="text-3xl mb-3">{guide.icon}</div>
<h2 className="text-lg font-semibold mb-2">{guide.title}</h2>
<span className="text-sm text-violet-400">{guide.category}</span>
</Link>
))}
</div>

{/* Stats */}
<div className="mt-12 grid grid-cols-3 gap-4 text-center">
<div className="p-6 bg-gray-900 rounded-xl">
<div className="text-3xl font-bold text-violet-400">24</div>
<div className="text-gray-400">Guides</div>
</div>
<div className="p-6 bg-gray-900 rounded-xl">
<div className="text-3xl font-bold text-amber-400">156</div>
<div className="text-gray-400">Tips</div>
</div>
<div className="p-6 bg-gray-900 rounded-xl">
<div className="text-3xl font-bold text-pink-400">1.2k</div>
<div className="text-gray-400">Contributors</div>
</div>
</div>
</main>
</div>
)
}
5 changes: 5 additions & 0 deletions apps/lucidia/next-env.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
/// <reference types="next" />
/// <reference types="next/image-types/global" />

// NOTE: This file should not be edited
// see https://nextjs.org/docs/app/building-your-application/configuring/typescript for more information.
2 changes: 2 additions & 0 deletions apps/lucidia/next.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
const nextConfig = { output: 'export', images: { unoptimized: true } }
module.exports = nextConfig
1 change: 1 addition & 0 deletions apps/lucidia/out/404.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/fdf7c70bc918fbd1.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-8fa15bc44c4a2b28.js"/><script src="/_next/static/chunks/5b8f0dd8-0b7e1dd47e2a464c.js" async=""></script><script src="/_next/static/chunks/749-0e02b274d4be2afa.js" async=""></script><script src="/_next/static/chunks/main-app-aefebe84911b8ac7.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>Lucidia | BlackRoad Knowledge</title><meta name="description" content="Travel guides, tips, and collective wisdom"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="bg-black text-white min-h-screen"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-8fa15bc44c4a2b28.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/fdf7c70bc918fbd1.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[6608,[],\"\"]\n4:I[2728,[],\"\"]\n5:I[9836,[],\"\"]\nb:I[8907,[],\"\"]\n6:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n7:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n8:{\"display\":\"inline-block\"}\n9:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nc:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"gWhpP5Y3de8SQ0oTikjCJ\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null],null],null]},[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/fdf7c70bc918fbd1.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"bg-black text-white min-h-screen\",\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$6\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$7\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$8\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$9\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$La\"],\"globalErrorComponent\":\"$b\",\"missingSlots\":\"$Wc\"}]\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Lucidia | BlackRoad Knowledge\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Travel guides, tips, and collective wisdom\"}]]\n3:null\n"])</script></body></html>

Large diffs are not rendered by default.

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions apps/lucidia/out/_next/static/chunks/749-0e02b274d4be2afa.js

Large diffs are not rendered by default.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Large diffs are not rendered by default.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Large diffs are not rendered by default.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Large diffs are not rendered by default.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading