Skip to content

Commit 2e69f95

Browse files
committed
Add a roadmap
1 parent 6d44035 commit 2e69f95

File tree

7 files changed

+183
-52
lines changed

7 files changed

+183
-52
lines changed

src/assets/state/missions.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import FastAndFeaturePackedPicture from "@/assets/images/content/missions/fast-a
66
import CrossPlatformPicture from "@/assets/images/content/missions/cross-platform.webp";
77
import Link from "@/components/navigation/Link";
88

9-
interface IMission {
9+
export interface IMission {
1010
title: string;
1111
image: StaticImageData;
1212
imageAlt: string;

src/assets/state/roadmap.tsx

+80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
import Link from "@/components/navigation/Link";
2+
import { ReactNode } from "react";
3+
4+
export interface IRoadmapItem {
5+
title: string;
6+
text: ReactNode;
7+
}
8+
9+
// NOTE: This list is assumed to be in order
10+
export default [
11+
{
12+
title: "April",
13+
text: <>
14+
<h4 id="roadmap-designs" className="font-semibold">Designs</h4>
15+
<p aria-labelledby="roadmap-designs">
16+
In April, we will begin creating initial designs for the Git client.
17+
Subscribers will receive surveys with each iteration to provide feedback.
18+
Be sure to <Link color="primary" href="/#sign-up" underline>sign up</Link> to have your voice heard!
19+
The designs will also be shared in our blog.
20+
</p>
21+
<h4 id="roadmap-prototyping" className="font-semibold">Prototyping</h4>
22+
<p aria-labelledby="roadmap-prototyping">
23+
We will begin developing early prototype versions of the Git client in addition to creating designs.
24+
This will involve testing various libraries and designs to ensure that we create the best possible product.
25+
We will also decide on licensing and monetization strategies during this month.
26+
</p>
27+
</>
28+
},
29+
{
30+
title: "May",
31+
text: <>
32+
<h4 id="roadmap-discord-server" className="font-semibold">Opening Discord Server</h4>
33+
<p aria-labelledby="roadmap-discord-server">
34+
To encourage an active community, we plan to launch a public Discord server where users can freely exchange ideas and communicate directly with the development team.
35+
</p>
36+
<h4 id="roadmap-insight-videos-on-development" className="font-semibold">Insight Videos on Development</h4>
37+
<p aria-labelledby="roadmap-insight-videos-on-development">
38+
Beginning May, we aim to provide regular updates on the development progress through video updates and blog posts to maintain transparency and gather feedback from our community.
39+
</p>
40+
</>
41+
},
42+
{
43+
title: "June, July & August",
44+
text: <>
45+
<h4 id="roadmap-active-development" className="font-semibold">Active Development</h4>
46+
<p aria-labelledby="roadmap-active-development">
47+
During the months of June, July, and August, we will be fully focused on active development of Commit Rocket,
48+
with the goal of releasing an early version of the Git client.
49+
Our team will be working tirelessly during this period to ensure that the client meets our high standards.
50+
We will also continue to provide regular development updates during these months to keep our community informed and engaged.
51+
</p>
52+
<h4 id="roadmap-early-access-release" className="font-semibold">Ealy Access Releases</h4>
53+
<p aria-labelledby="roadmap-early-access-release">
54+
Early access versions of Commit Rocket will be made available exclusively to our mailing list subscribers and Discord members.
55+
To ensure a smooth user experience, we encourage users to share their feedback and feature requests with us via our Discord server and <Link color="primary" href="mailto:feedback@commitrocket.com" underline>our email</Link>.
56+
As the product is still subject to changes, we appreciate our users' contributions in helping us shape the final product.
57+
</p>
58+
</>
59+
},
60+
{
61+
title: "September",
62+
text: <>
63+
<h4 id="roadmap-alpha-version" className="font-semibold">Alpha Version</h4>
64+
<p aria-labelledby="roadmap-alpha-version">
65+
If everything goes according to plan, our goal is to release a public alpha version of Commit Rocket by September.
66+
While it will be a challenging task, we are not afraid to take it on!
67+
Upon release of the first alpha version, we will also be open-sourcing the Git client!
68+
</p>
69+
</>
70+
},
71+
{
72+
title: "October, November, December",
73+
text: <>
74+
<p>
75+
After the alpha release, we will continue to enhance Commit Rocket by taking feedback from our users and working on the client.
76+
Though we have not set specific goals, we aim to develop a stable and production-ready application by the end of the year.
77+
</p>
78+
</>
79+
}
80+
]satisfies IRoadmapItem[];

src/components/navigation/Footer.tsx

+12-4
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,14 @@ const Footer = () => {
4545
>
4646
Contribute
4747
</Link>
48+
<Link
49+
color="white"
50+
href="/#roadmap"
51+
title="Commit Rocket Roadmap"
52+
underline
53+
>
54+
Roadmap
55+
</Link>
4856
<Link
4957
color="white"
5058
href="/blog/2/planned-features"
@@ -53,23 +61,23 @@ const Footer = () => {
5361
>
5462
Planned Features
5563
</Link>
56-
<Link
64+
{/* <Link
5765
color="white"
5866
href="/blog/3/designs"
5967
title="Commit Rocket Designs"
6068
underline
6169
>
6270
Designs
63-
</Link>
64-
<Link
71+
</Link> */}
72+
{/* <Link
6573
color="white"
6674
href="https://github.com/commit-rocket/commit-rocket"
6775
title="Commit Rocket Source-Code"
6876
underline
6977
external
7078
>
7179
Github
72-
</Link>
80+
</Link> */}
7381
</div>
7482
<div className="flex flex-col">
7583
<p className="mb-2 text-lg font-semibold">Website</p>
+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import { IMission } from "@/assets/state/missions";
2+
3+
export interface MissionProps extends IMission {
4+
5+
}
6+
7+
const Mission = ({ title, image, imageAlt, text }: MissionProps) => {
8+
return (
9+
<li className="flex flex-col items-center flex-1 gap-4 p-8 border-2 rounded-lg border-secondary">
10+
<h3 className="text-2xl text-primary md:text-3xl lg:h-[5ex] motion-safe:transition-all">
11+
{title}
12+
</h3>
13+
<img
14+
className="w-full sm:w-2/3 lg:w-full text-[0px]"
15+
loading="lazy"
16+
alt={imageAlt}
17+
src={image.src}
18+
width={image.width}
19+
height={image.height}
20+
/>
21+
<div aria-label="Mission description" className="text-lg">
22+
{text}
23+
</div>
24+
</li>
25+
);
26+
};
27+
28+
export default Mission;
+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import { IRoadmapItem } from "@/assets/state/roadmap";
2+
3+
export interface RoadmapItemProps extends IRoadmapItem {
4+
5+
}
6+
7+
const Divider = ({ hideOnSmall }: { hideOnSmall?: boolean; }) => (
8+
<div className={`relative w-[2px] bg-primary mx-3 group-first-of-type/item:rounded-t-full group-last-of-type/item:rounded-b-full ${hideOnSmall ? "hidden md:block" : "block md:hidden"}`} aria-hidden>
9+
<div className="absolute w-6 h-6 -translate-x-1/2 -translate-y-1/2 border-2 rounded-full top-1/2 left-1/2 border-primary bg-fill" />
10+
</div>
11+
);
12+
13+
const RoadmapItem = ({ title, text }: RoadmapItemProps) => {
14+
const id = title.replace(" ", "-");
15+
return (
16+
<li aria-labelledby={id} className="relative flex flex-1 group/item">
17+
<Divider />
18+
<div className="relative flex flex-col flex-1 gap-4 py-4 pl-4 md:flex-row md:pl-0 md:py-0 md:gap-0">
19+
<h3 id={id} className="flex items-center text-2xl font-bold md:px-8 md:w-1/4 md:py-4 md:justify-end md:text-end">
20+
{title}
21+
</h3>
22+
<Divider hideOnSmall />
23+
<div className="md:p-8 md:w-3/4">
24+
<div aria-label="Deliverables" className="flex flex-col gap-2 text-lg">
25+
{text}
26+
</div>
27+
</div>
28+
</div>
29+
</li>
30+
);
31+
};
32+
33+
export default RoadmapItem;

src/components/pages/front/SectionCard.tsx

-23
This file was deleted.

src/pages/index.tsx

+29-24
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
import Head from "next/head";
22
import { motion } from "framer-motion";
33

4+
import missions from "@/assets/state/missions";
45
import LogoPicture from "@/assets/images/brand/commit-rocket-logo.webp";
56
import LogoSmall from "@/assets/images/brand/logo-200x200.webp";
67

78
import LinkButton from "@/components/controls/LinkButton";
89

9-
import missions from "@/assets/state/missions";
1010
import SignupSection from "@/components/pages/front/SignupSection";
11-
import SectionCard from "@/components/pages/front/SectionCard";
11+
import Mission from "@/components/pages/front/Mission";
1212

1313
import { Page } from "@/types/page";
14+
import roadmap from "@/assets/state/roadmap";
15+
import RoadmapItem from "@/components/pages/front/RoadmapItem";
1416

1517
const logoAnim = {
1618
initial: {
@@ -82,8 +84,10 @@ const FrontPage: Page = ({ }) => {
8284
Our main focus is on creating a modern design and speed without sacrificing any of the features you love.
8385
</p>
8486
<p>
85-
"Why another Git client?" - Our aim is to improve the stale nature of current git clients that often look old, are inefficient and haven't changed in years!
86-
With Commit Rocket, we want to bring innovation to the table, with an open-source and cross-platform client.
87+
"Why another Git client?" - Our goal with Commit Rocket is to provide a fresh and innovative approach to Git clients,
88+
addressing the outdated and inefficient nature of many current options.
89+
As an open-source and cross-platform client,
90+
we aim to provide a real alternative to popular choices like GitKraken, Github Desktop, and SourceTree.
8791
</p>
8892
<p>
8993
This means that everyone will have access to our code and anyone can contribute to make it the best it can be.
@@ -95,37 +99,38 @@ const FrontPage: Page = ({ }) => {
9599
</div>
96100
</section>
97101
<section
98-
aria-labelledby="mission"
102+
aria-labelledby="missions"
99103
className="flex flex-col gap-12 mx-auto text-center"
100104
>
101105
<h2
102-
id="mission"
106+
id="missions"
103107
className="text-4xl font-bold md:text-5xl text-secondary"
104108
>
105109
Mission
106110
</h2>
107-
<p>
111+
<p className="text-lg font-semibold">
108112
Our main goal with Commit Rocket is to drive innovation and provide a modern and fast alternative to existing Git clients.
109113
We want to improve the user experience for developers by creating an open-source and cross-platform tool that is both feature-rich and beginner-friendly.
110114
</p>
111115
<ul className="flex flex-col flex-wrap justify-between w-full gap-12 lg:flex-row">
112-
{missions.map(({ title, image, imageAlt, text }, i) => (
113-
<li key={i} className="flex flex-col items-center flex-1 gap-4 p-8 border-2 rounded-lg border-secondary">
114-
<h3 className="text-2xl text-primary md:text-3xl lg:h-[5ex] motion-safe:transition-all">
115-
{title}
116-
</h3>
117-
<img
118-
className="w-full sm:w-2/3 lg:w-full text-[0px]"
119-
loading="lazy"
120-
alt={imageAlt}
121-
src={image.src}
122-
width={image.width}
123-
height={image.height}
124-
/>
125-
<div aria-label="Mission description" className="text-lg">
126-
{text}
127-
</div>
128-
</li>
116+
{missions.map((mission, i) => (
117+
<Mission key={i} {...mission} />
118+
))}
119+
</ul>
120+
</section>
121+
<section
122+
aria-labelledby="roadmap"
123+
className="flex flex-col gap-4"
124+
>
125+
<h2
126+
id="roadmap"
127+
className="text-4xl font-bold text-center md:text-5xl text-secondary"
128+
>
129+
Roadmap
130+
</h2>
131+
<ul>
132+
{roadmap.map((roadmapItem, i) => (
133+
<RoadmapItem key={i} {...roadmapItem} />
129134
))}
130135
</ul>
131136
</section>

0 commit comments

Comments
 (0)