diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..56b60dd --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.vscode +.idea + +deno.lock \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..be5af33 --- /dev/null +++ b/LICENSE @@ -0,0 +1,7 @@ +Copyright 2021 RaptorFX Team, ReMod Software + +Permission is hereby granted, cafree of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..a979b10 --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +# RaptorFX - Website + +This is the repository housing the main website for RaptorFX, hosted on Deno Deploy and powered by Aleph, a Modern SSR Framework. + +## Requirements + +- Deno +- Git + +## Contributing + +You can contribute by adding UI components for a platform which hasn't been added yet, adding documentation, fixing bugs, etc. + +## License + +RaptorFX Website is licensed under MIT License, see: LICENSE. diff --git a/assets/Pixel-UniCode.ttf b/assets/Pixel-UniCode.ttf new file mode 100644 index 0000000..5b4d3cb Binary files /dev/null and b/assets/Pixel-UniCode.ttf differ diff --git a/assets/banner.png b/assets/banner.png new file mode 100644 index 0000000..9f4275d Binary files /dev/null and b/assets/banner.png differ diff --git a/assets/icons/cross.png b/assets/icons/cross.png new file mode 100644 index 0000000..95520b2 Binary files /dev/null and b/assets/icons/cross.png differ diff --git a/assets/icons/deno.png b/assets/icons/deno.png new file mode 100644 index 0000000..5dcceca Binary files /dev/null and b/assets/icons/deno.png differ diff --git a/assets/icons/open.png b/assets/icons/open.png new file mode 100644 index 0000000..88703c0 Binary files /dev/null and b/assets/icons/open.png differ diff --git a/assets/icons/web.png b/assets/icons/web.png new file mode 100644 index 0000000..d6fc59d Binary files /dev/null and b/assets/icons/web.png differ diff --git a/assets/logo.png b/assets/logo.png new file mode 100644 index 0000000..13675b8 Binary files /dev/null and b/assets/logo.png differ diff --git a/assets/pfp/arc.png b/assets/pfp/arc.png new file mode 100644 index 0000000..d53cc03 Binary files /dev/null and b/assets/pfp/arc.png differ diff --git a/assets/pfp/lepichu.png b/assets/pfp/lepichu.png new file mode 100644 index 0000000..4eaa69d Binary files /dev/null and b/assets/pfp/lepichu.png differ diff --git a/assets/pfp/ryan.png b/assets/pfp/ryan.png new file mode 100644 index 0000000..a75d12e Binary files /dev/null and b/assets/pfp/ryan.png differ diff --git a/assets/pfp/wobbler.png b/assets/pfp/wobbler.png new file mode 100644 index 0000000..1b16b86 Binary files /dev/null and b/assets/pfp/wobbler.png differ diff --git a/assets/social/discord.png b/assets/social/discord.png new file mode 100644 index 0000000..684a177 Binary files /dev/null and b/assets/social/discord.png differ diff --git a/assets/social/github.png b/assets/social/github.png new file mode 100644 index 0000000..d307502 Binary files /dev/null and b/assets/social/github.png differ diff --git a/assets/social/twitter.png b/assets/social/twitter.png new file mode 100644 index 0000000..8fc116a Binary files /dev/null and b/assets/social/twitter.png differ diff --git a/components/BlogIndex.tsx b/components/BlogIndex.tsx new file mode 100644 index 0000000..ba88be2 --- /dev/null +++ b/components/BlogIndex.tsx @@ -0,0 +1,34 @@ +import { Link } from "aleph/react" + +interface IBlogPost { + title: string + slug: string + description?: string +} + +const blogPosts: IBlogPost[] = [ + { + title: "Hello Denosaurs!", + slug: "/blog/hello-denosaurs", + description: "Welcome to the RaptorFX blog!" + }, + { + title: "Roadmap", + slug: "/blog/roadmap", + description: "Roadmap for RaptorFX!" + } +] + +function BlogPost(post: IBlogPost) { + const description = post.description ?

{post.description}

: null + return
+ {post.title} + {description} +
+} + +export default function BlogIndex() { + return <> + {blogPosts.map((post) => BlogPost(post))} + +} \ No newline at end of file diff --git a/components/Features.tsx b/components/Features.tsx new file mode 100644 index 0000000..99c21fe --- /dev/null +++ b/components/Features.tsx @@ -0,0 +1,27 @@ +export interface IFeatures { + title: string + description: string + icon: string +} + +export default function Features(features: IFeatures) { + return ( +
+
+
+
+ {features.title} +
+
+
+
+

{features.title}

+

{features.description}

+
+
+ ) +} diff --git a/components/Footer.tsx b/components/Footer.tsx new file mode 100644 index 0000000..2cc8d01 --- /dev/null +++ b/components/Footer.tsx @@ -0,0 +1,33 @@ +const socials: Record = { + discord: "https://discord.gg/GckFjzV2Qj", + twitter: "https://twitter.com/ishatgupta", + github: "https://github.com/RaptorFX-JS/" +} + +export default function Footer() { + return ( +
+
+ {Object.keys(socials).map((social) => { + return ( + + {social} + + ) + })} +
+
+

© Copyright 2022 - RaptorFX, ReMod Software

+
+ ) +} diff --git a/components/Header.tsx b/components/Header.tsx new file mode 100644 index 0000000..5588249 --- /dev/null +++ b/components/Header.tsx @@ -0,0 +1,34 @@ +import { Link } from "aleph/react" + +const links = ["Docs", "Blog", "About"] + +export default function Header() { + return ( + <> +
+ +
+ + ) +} diff --git a/components/Heading.tsx b/components/Heading.tsx new file mode 100644 index 0000000..481080f --- /dev/null +++ b/components/Heading.tsx @@ -0,0 +1,32 @@ +import type { FC, PropsWithChildren } from "react" +import { createElement } from "react" + +// The props `id` is generated by `rehype-slug` plugin +export const Heading: FC> = ({ + id, + level, + children, + ...rest +}) => { + return createElement( + `h${level}`, + { ...rest, id }, + <> + + ↝ + + {children} + + ) +} + +export const components: Record< + string, + FC> +> = {} + +for (let i = 0; i < 6; i++) { + components[`h${i + 1}`] = (props) => { + return + } +} diff --git a/components/Hero.tsx b/components/Hero.tsx new file mode 100644 index 0000000..f9e7bbc --- /dev/null +++ b/components/Hero.tsx @@ -0,0 +1,32 @@ +import { Link } from "aleph/react" + +const heroButtons = { + "Get Started": "/docs", + "Learn More": "/about" +} + +export default function Hero() { + return ( + <> +
+ Banner which contains the RaptorFX logo with the text 'RaptorFX' +

A Modern-Denofied Solution to Building Apps!

+
+ {Object.entries(heroButtons).map(([x, y]) => ( + + {x} + + ))} +
+
+ + ) +} diff --git a/components/OpenGraphEmbed.tsx b/components/OpenGraphEmbed.tsx new file mode 100644 index 0000000..b4a1f9b --- /dev/null +++ b/components/OpenGraphEmbed.tsx @@ -0,0 +1,44 @@ +import { Head } from "aleph/react" + +export interface IEmbed { + title?: string + description?: string + image?: string +} + +export default function Embed(embed: IEmbed) { + return ( + + + {embed.title ?? + "RaptorFX | A Modern-Denofied Solution to Building Apps!"} + + + + + + + + + ) +} diff --git a/components/StandoutHeading.tsx b/components/StandoutHeading.tsx new file mode 100644 index 0000000..8960c12 --- /dev/null +++ b/components/StandoutHeading.tsx @@ -0,0 +1,10 @@ +export default function Standout({ title }: { title: string }) { + return ( + <> +
+

{title}

+
+
+ + ) +} diff --git a/components/TeamMember.tsx b/components/TeamMember.tsx new file mode 100644 index 0000000..5707263 --- /dev/null +++ b/components/TeamMember.tsx @@ -0,0 +1,33 @@ +export interface ITeamMember { + name: string + role: string[] + description: string + image: string +} + +export default function TeamMember(member: ITeamMember) { + return ( + <> +
+
+ {member.name} +
+
+
+

{member.name}

+

{member.description}

+
+
    + {member.role.map((role) => { + return
  • {role}
  • + })} +
+
+
+ + ) +} diff --git a/deno.jsonc b/deno.jsonc new file mode 100644 index 0000000..454a24d --- /dev/null +++ b/deno.jsonc @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "lib": [ + "dom", + "dom.iterable", + "dom.asynciterable", + "dom.extras", + "deno.ns" + ], + "types": ["https://deno.land/x/aleph@1.0.0-beta.21/types.d.ts"], + "jsx": "react-jsx", + "jsxImportSource": "https://esm.sh/react@18.2.0" + }, + "importMap": "import_map.json", + "tasks": { + "dev": "deno run -A dev.ts", + "start": "deno run -A server.ts", + "build": "deno run -A server.ts --build", + "fmt": "deno run --allow-read --allow-write --allow-sys --allow-env npm:prettier -w --use-tabs --tab-width 4 --no-semi --loglevel silent --trailing-comma none ." + } +} diff --git a/dev.ts b/dev.ts new file mode 100644 index 0000000..1f23122 --- /dev/null +++ b/dev.ts @@ -0,0 +1,8 @@ +import dev from "aleph/dev" + +dev({ + baseUrl: import.meta.url, + // To generate the `./routes/_export.ts` module for serverless env + // that doesn't support dynamic import. + generateExportTs: true +}) diff --git a/import_map.json b/import_map.json new file mode 100644 index 0000000..d5a5e3e --- /dev/null +++ b/import_map.json @@ -0,0 +1,20 @@ +{ + "imports": { + "~/": "./", + "OpenGraphEmbed": "./components/OpenGraphEmbed.tsx", + "BlogIndex": "./components/BlogIndex.tsx", + "std/": "https://deno.land/std@0.155.0/", + "aleph/": "https://deno.land/x/aleph@1.0.0-beta.21/", + "aleph/server": "https://deno.land/x/aleph@1.0.0-beta.21/server/mod.ts", + "aleph/dev": "https://deno.land/x/aleph@1.0.0-beta.21/server/dev.ts", + "aleph/react/mdx-loader": "https://deno.land/x/aleph@1.0.0-beta.21/runtime/react/mdx-loader.ts", + "@mdx-js/react": "https://esm.sh/@mdx-js/react@2.1.3", + "aleph/react": "https://deno.land/x/aleph@1.0.0-beta.21/runtime/react/mod.ts", + "aleph/react-client": "https://deno.land/x/aleph@1.0.0-beta.21/runtime/react/client.ts", + "aleph/react-server": "https://deno.land/x/aleph@1.0.0-beta.21/runtime/react/server.ts", + "react": "https://esm.sh/react@18.2.0", + "react-dom": "https://esm.sh/react-dom@18.2.0", + "react-dom/": "https://esm.sh/react-dom@18.2.0/" + }, + "scopes": {} +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..6bff00f --- /dev/null +++ b/index.html @@ -0,0 +1,14 @@ + + + + + + + + + + +
+ + + diff --git a/main.tsx b/main.tsx new file mode 100644 index 0000000..485613e --- /dev/null +++ b/main.tsx @@ -0,0 +1,3 @@ +// import { bootstrap } from "aleph/react-client" + +// bootstrap() diff --git a/routes/_404.tsx b/routes/_404.tsx new file mode 100644 index 0000000..92168fd --- /dev/null +++ b/routes/_404.tsx @@ -0,0 +1,21 @@ +import { Link } from "aleph/react" +import Embed from "../components/OpenGraphEmbed.tsx" + +export default function E404() { + return ( + <> + +
+
+

Ooooooops, nothing here!

+

+ Go back to the homepage +

+
+
+ + ) +} diff --git a/routes/_app.tsx b/routes/_app.tsx new file mode 100644 index 0000000..8838e1c --- /dev/null +++ b/routes/_app.tsx @@ -0,0 +1,12 @@ +import Header from "../components/Header.tsx" +import Footer from "../components/Footer.tsx" + +export default function App({ children }: { children: React.ReactNode }) { + return ( + <> +
+ {children} +