Skip to content

Commit ec2375d

Browse files
committed
Finish features article article
1 parent f843f41 commit ec2375d

File tree

9 files changed

+186
-73
lines changed

9 files changed

+186
-73
lines changed

Diff for: src/assets/images/content/blog/3/my-theme.webp

88 KB
Binary file not shown.
9.63 KB
Binary file not shown.

Diff for: src/assets/images/content/blog/3/spaces-in-arc.gif

3.62 MB
Loading

Diff for: src/assets/images/content/blog/3/thumbnail.pdn

192 KB
Binary file not shown.

Diff for: src/assets/images/content/blog/3/thumbnail.webp

23.2 KB
Binary file not shown.

Diff for: src/assets/state/articles/3.jsx

+179
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,179 @@
1+
import { people } from "../team";
2+
import tags from "./tags";
3+
4+
import thumbnail from "@blogImages/3/thumbnail.webp";
5+
import myTheme from "@blogImages/3/my-theme.webp";
6+
import sourcetreeMultiAccount from "@blogImages/3/sourcetree-multi-account.webp";
7+
import spacesInArc from "@blogImages/3/spaces-in-arc.gif";
8+
9+
import A from "@/components/pages/blog/post/ArticleComponents";
10+
11+
/** @type {import("./article").default} */
12+
export default {
13+
title: "Features You Can Expect in Commit Rocket",
14+
15+
thumbnail,
16+
thumbnailAlt: "Thumbnail alt",
17+
18+
vertical: "software",
19+
20+
slug: "commit-rocket-features",
21+
22+
tags: [
23+
tags.commitRocket,
24+
tags.news,
25+
tags.plans,
26+
{
27+
name: "Commit Rocket Features",
28+
hidden: true
29+
},
30+
{
31+
name: "Planning",
32+
hidden: true
33+
}
34+
],
35+
36+
author: people.rik,
37+
38+
created: new Date("2023/05/05"),
39+
40+
teaser: "Commit Rocket is still very young and we are thinking of features to put into it. We have lots of ideas, what are your thoughts?",
41+
42+
content: <>
43+
<A.Container className="text-xl">
44+
<p>
45+
Features are one of the most important things about an app, and I have been thinking a lot about which I will be implementing in Commit Rocket. With the help of others, I'm coming up with new and unique features for Commit Rocket. Besides the obvious features like pulling and pushing, I would really love Commit Rocket to have a unique set of features to help improve people's workflows.
46+
</p>
47+
<p>
48+
I've personally spent quite a bit of time coming up with features and working out kinks. I would be proud to present them all to you in this post. Make sure to answer some of the questions in the <A.Link href="#survey">survey</A.Link> at the end of the article to help me improve Commit Rocket. All of the questions are optional, so make sure to only fill in the ones that you are comfortable with.
49+
</p>
50+
<p>
51+
Lets get started!
52+
</p>
53+
</A.Container>
54+
55+
<A.TOC maxLevel={2} />
56+
57+
<A.H2>Atomic stashing</A.H2>
58+
<p>
59+
Stashing is a very usefull tool in Git, they allow you to store your progress without having to commit them. This keeps you from accidentally breaking things and can help you stay organized. In applications such as Sourcetree or Github Desktop you can only commit all of your current changes.
60+
</p>
61+
<p>
62+
There are actually ways to only stash selected files and even lines. I would like to break this limitation and allow users to organize their stashed by atomically stashing changes whenever it suits them.
63+
</p>
64+
65+
<A.H2>Multi-account support</A.H2>
66+
<p>
67+
Just like atomic stashing, multi-account support is another feature that "just makes sense". If you are like me, you might have multiple different Git account across multiple different platforms like Github, Gitlab and even Bitbucket. You might even have had to make a separate account for your education or your work.
68+
</p>
69+
<A.Container className="gap-2">
70+
<p role="note" aria-label="Note" className="mx-auto font-semibold">
71+
Sourcetree's account management
72+
</p>
73+
<A.Img
74+
className="mx-auto max-h-[27rem] w-fit border border-neutral"
75+
alt="Electron vs Tauri memory and build size"
76+
src={sourcetreeMultiAccount.src}
77+
width={sourcetreeMultiAccount.width}
78+
height={sourcetreeMultiAccount.height}
79+
/>
80+
</A.Container>
81+
<p>
82+
My vision for multiple accounts within Commit Rocket is to be able to add it simply throught the settings, and select which account you want in your repository, and it will remember which account you want to commit from forever! This feels like the most convenient way to make use of such a feature, but let me know what you think about it. On a side-note I plan to support at least Github, Gitlab and Bitbucket, others may be added upon request.
83+
</p>
84+
85+
<A.H2>Theming</A.H2>
86+
<p>
87+
A feature that I have only seen GitKraken do, is theming. Currently I'm rocking a purple theme across my browser, IDE and even my OS, but my darn Git client doesn't allow for personal themes! This is the reason why I wanted to make Commit Rocket, to make it purple (totally joking by the way).
88+
</p>
89+
90+
<A.Container className="gap-2">
91+
<p role="note" aria-label="Note" className="mx-auto font-semibold">
92+
My theme
93+
</p>
94+
<A.Img
95+
className="mx-auto max-h-[27rem] w-fit border border-neutral-500"
96+
alt="Electron vs Tauri memory and build size"
97+
src={myTheme.src}
98+
width={myTheme.width}
99+
height={myTheme.height}
100+
/>
101+
</A.Container>
102+
103+
<p>
104+
Theming is not necessarily an essential feature, but it does allow people to personalize their experience, which I'm all for! This is why I would like to include a built-in visual editor for your themes, so that you can easily customize it to your liking. In addition I will be adding an export and import feature so that you can share and use other people's themes.
105+
</p>
106+
107+
<A.H2>Commit Peeking</A.H2>
108+
<p>
109+
This feature I have seen no other Git client do, and I'm dubbing it "Commit peeking". Wouldn't it be awesome to know which files have been changed in a commit, without having to actively click on the commit itself? Commit peeking has got you covered.
110+
</p>
111+
<p>
112+
By hovering over a commit a small window will pop up showing the changed files. This will help you look for the commits you may want to find quicker and easier. Combining this with being able to see a specific, file's history, and you'd be able to find changes you need in no time.
113+
</p>
114+
115+
<A.H2>Working Contexts</A.H2>
116+
<p>
117+
The following feature has been inspired by the Arc browser. In Arc you have something called "spaces". They are basically places where you can store browser tabs, bookmarks and that sort of stuff. You can simply switch between them by using a hotkey. This seems really useful to me, especially in a Git client.
118+
</p>
119+
<A.Container className="gap-2">
120+
<p role="note" aria-label="Note" className="mx-auto font-semibold">
121+
Spaces in Arc
122+
</p>
123+
<A.Img
124+
className="mx-auto border border-neutral-500"
125+
alt="Switching 'spaces' in the Arc browser"
126+
src={spacesInArc.src}
127+
width={spacesInArc.width}
128+
height={spacesInArc.height}
129+
/>
130+
<p role="note" aria-label="Source" className="mx-auto text-sm">
131+
Source: <A.Link href="https://www.youtube.com/watch?v=kVZZv1ygNP8" external nofollow>Arc | Setting up Spaces & Profiles</A.Link> by <A.Link href="https://www.youtube.com/@TheBrowserCompany" external nofollow>The Browser Company</A.Link>
132+
</p>
133+
</A.Container>
134+
<p>
135+
Here is my pitch. You have multiple working contexts, like work, school, side-project, etc. You can store your repositories, active theme, accounts, etc. in this context. Then when you switch contexts the repositories, theme, etc. would be retrieved and applied. If you are working on multiple projects then this should keep you more organized. Preferably these contexts would be a 1-click switch, or a hotkey. Unlike VSCode's profiles, you will be able to sync over your settings without having to resort to switching back and forth.
136+
</p>
137+
<p>
138+
Personally I really like this feature. I have a lot of open repositories at one time, so having a better way to organize them is very welcome. Combining this with themes, could give an extra distinction between your working contexts. I think I would be making use of this a lot. Let me know if you would enjoy this feature!
139+
</p>
140+
141+
<A.H2>Plugins</A.H2>
142+
<p>
143+
The last feature I want to talk about in this post is plugins. Having plugins paired with a Git client, just makes sense. If Commit Rocket doesn't have what you need, you can simply install a plugin that does what you want!
144+
</p>
145+
<p>
146+
Which plugins would you be able to install? All sorts of plugins! I personally thought of Scrumboard integrations with Jira, Trello or Devops; Maybe a Vim keybindings plugin; or automatic commit naming using AI. There are a lot of posibilities with this system.
147+
</p>
148+
<p>
149+
In addition I would like to add a plugin marketplace. Maybe something like how the note taking app Obsidian does it, having core plugins and community plugins.
150+
</p>
151+
<p>
152+
Plugins would work together with the working contexts, by switching which plugin is active between the different contexts. Maybe you don't need a scrumboard active in your side-project context, so you turn it off to save resource and headspace.
153+
</p>
154+
<p>
155+
I see a lot of potential with plugins, and I hope you do too!
156+
</p>
157+
158+
<A.H2>Survey</A.H2>
159+
<iframe
160+
className="w-full"
161+
src="https://docs.google.com/forms/d/e/1FAIpQLSfabnpc8SWY09GK2mkFeH5XUb3qG6enN-EFaUl_mNcyPbRW-Q/viewform?embedded=true"
162+
width="1920"
163+
height="1650"
164+
frameborder="0"
165+
marginheight="0"
166+
marginwidth="0"
167+
>
168+
Loading survey...
169+
</iframe>
170+
171+
<A.H2>Wrapping up</A.H2>
172+
<p>
173+
All of these features are really exciting to me, and are making me hyped for the future of Commit Rocket. These features working together to create an organized, personalized and comfortable experience for all uses sounds like music in my ears. Make sure to participate in the survey, your opinions and ideas will help me a lot as I continue to create Commit Rocket.
174+
</p>
175+
<p>
176+
That will be all for now, however stay tuned for some upcoming articles about the plugin system, and one about the Commit Rocket techstack.
177+
</p>
178+
</>
179+
};

Diff for: src/assets/state/articles/4.jsx

-69
This file was deleted.

Diff for: src/assets/state/articles/article.d.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,25 @@ type IArticle = {
1010
thumbnailAlt: string;
1111

1212
tags: ITag[];
13+
// relatedArticles: IArticle[];
1314

1415
/**
1516
* A high level overview of the article E.g. Technology
1617
*/
1718
vertical: string;
18-
19+
1920
slug: string;
2021

2122
author: IMember;
2223

2324
teaser: string;
2425
content: ReactNode;
2526

26-
hidden?: boolean
27+
hidden?: boolean;
28+
2729

2830
updated?: Date;
2931
created: Date;
3032
};
33+
3134
export default IArticle;

Diff for: src/assets/state/articles/index.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import IArticle from "./article";
22

33
import article1 from "./1";
44
import article2 from "./2";
5-
import article3 from "./4";
5+
import article3 from "./3";
66

77
export default [
88
{
@@ -14,7 +14,7 @@ export default [
1414
article: article2
1515
},
1616
{
17-
filename: "4",
17+
filename: "3",
1818
article: article3
1919
}
2020
] as { filename: string; article: IArticle }[];

0 commit comments

Comments
 (0)