Skip to content

Commit

Permalink
feat: Add roadmap (#26)
Browse files Browse the repository at this point in the history
Co-authored-by: Nick Seagull <[email protected]>
  • Loading branch information
NickSeagull and Nick Seagull authored Nov 25, 2024
1 parent fc5da40 commit f3bd5a9
Show file tree
Hide file tree
Showing 6 changed files with 313 additions and 320 deletions.
69 changes: 69 additions & 0 deletions docs/extra-topics/news-announcements.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
---
sidebar_position: 2
---

# News and Roadmap

Here you can find news about the core NeoHaskell project. For real time updates, you should probably join the [Discord server](https://discord.com/invite/wDj3UYzec8), or follow the [NeoHaskell Twitter account](https://x.com/neohaskell).

## Announcements

- [NeoHaskell v0.5.0 - HTTP, TOML, Nested Actions Now Executed and Major Refactoring](https://dev.to/neohaskell/neohaskell-v050-http-toml-nested-actions-now-executed-and-major-refactoring-4cb6)
- [NeoHaskell v0.4.0: Update with Concurrency Fixes and Architectural Improvements](https://dev.to/neohaskell/neohaskell-v040-update-with-concurrency-fixes-and-architectural-improvements-267b)
- [Understanding Triggers in NeoHaskell: A Gateway to Event-Driven Programming](https://dev.to/neohaskell/understanding-triggers-in-neohaskell-a-gateway-to-event-driven-programming-49nb)
- [Introducing NeoHaskell v0.3.0: Triggers, Actions, and Services](https://dev.to/neohaskell/introducing-neohaskell-v030-triggers-actions-and-services-2ae)
- [Announcing NeoHaskell v0.2.0: Bringing Elm-Inspired Architecture to CLI Apps](https://dev.to/neohaskell/announcing-neohaskell-v020-bringing-elm-inspired-architecture-to-cli-apps-54db)
- [DevLog 00002 - A main loop working](https://dev.to/neohaskell/devlog-00002-a-main-loop-working-31kj)
- [DevLog 00001 - Command Line Updates](https://dev.to/neohaskell/devlog-00001-command-line-updates-24f3)
- [Introducing NeoHaskell: A beacon of joy in a greyed tech world
](https://dev.to/neohaskell/introducing-neohaskell-a-beacon-of-joy-in-a-greyed-tech-world-4f9b)

## Roadmap

The roadmap represents a rough view of the progress of the different
parts of the project. If one box is checked doesn't mean it is 100%
done, as software usually is an infinite work, it means that it is
usable, but always with room for improvement.

- [x] Array
- [x] Basics
- [x] Bytes
- [x] Char
- [x] Function utils
- [x] IO
- [x] Int
- [x] LinkedList
- [x] Map
- [x] Maybe
- [x] Record
- [x] Result
- [x] Text
- [x] Tuple
- [x] Unit
- [x] Unknown
- [x] Var
- [x] Version
- [x] Async IO operations - Should be reworked into Async Tasks
- [x] Channel
- [x] ConcurrentVar
- [x] Action Handling
- [x] Trigger Handling
- [ ] Task core module
- [ ] File tasks core module
- [ ] Path tasks core module
- [ ] Subprocess tasks core module
- [ ] Build CLI command
- [ ] Autoinstaller
- [ ] Test command
- [ ] Run command
- [ ] Time core module
- [ ] File Actions
- [ ] Path Actions
- [ ] Subprocess Actions
- [ ] Time Actions
- [ ] Http (Tasks)
- [ ] Http (Actions)
- [ ] Event Handling (needs to be reworked)
- [ ] View/HTML Handling
- [ ] Traits (TBD)
- [ ] REPL CLI command
41 changes: 22 additions & 19 deletions src/components/HomepageFeatures/coming-soon-features.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,6 @@ import React from "react";
import { FeatureItem } from "./feature-item";

export const ComingSoonFeatures: FeatureItem[] = [
{
title: "A beautiful standard library",
description: (
<>
NeoHaskell offers a clean and intuitive language design, complemented by
a core library that provides all the tools you need to start creating
amazing software right away.
</>
),
buttonText: "Start Coding",
showcase: {
language: "haskell",
code: `"NeoHaskell is cool"
|> Text.toWordList
|> List.map Text.length
|> List.map (\\x -> x * x)
|> List.takeIf Int.isEven`,
},
},
{
title: "An integrated build system",
description: (
Expand Down Expand Up @@ -115,4 +96,26 @@ Done!
|]`,
},
},
{
title: "Event Sourcing and CQRS Ready",
description: (
<>
NeoHaskell aligns well with modern architectural patterns like Event
Sourcing and CQRS, making it easier for you to build scalable and
maintainable systems.
</>
),
buttonText: "Build Modern Systems",
showcase: {
language: "haskell",
code: `reduction = do
myEvents <- getEvents "myAggregate"
return (
Stream.reduce
myReducer
initialState
myEvents
)`,
},
},
];
5 changes: 0 additions & 5 deletions src/components/HomepageFeatures/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,6 @@ function Feature({ n, title, showcase, description, buttonText }: FeatureItem) {
<div className="flex flex-col gap-4 sm:p-0 p-8">
<h3 className="text-3xl">{title}</h3>
<p className="text-lg">{description}</p>
<div className="xl:self-start self-center">
<Button rounded="full" color={button as any}>
<h3>{buttonText}</h3>
</Button>
</div>
</div>
</div>
);
Expand Down
23 changes: 10 additions & 13 deletions src/components/HomepageFeatures/ready-features.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -72,25 +72,22 @@ main = race foo bar`,
},
},
{
title: "Event Sourcing and CQRS Ready",
title: "A beautiful standard library",
description: (
<>
NeoHaskell aligns well with modern architectural patterns like Event
Sourcing and CQRS, making it easier for you to build scalable and
maintainable systems.
NeoHaskell offers a clean and intuitive language design, complemented by
a core library that provides all the tools you need to start creating
amazing software right away.
</>
),
buttonText: "Build Modern Systems",
buttonText: "Start Coding",
showcase: {
language: "haskell",
code: `reduction = do
myEvents <- getEvents "myAggregate"
return (
Stream.reduce
myReducer
initialState
myEvents
)`,
code: `"NeoHaskell is cool"
|> Text.toWordList
|> List.map Text.length
|> List.map (\\x -> x * x)
|> List.takeIf Int.isEven`,
},
},
];
22 changes: 15 additions & 7 deletions src/pages/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,7 @@ import Dialog from "../components/Dialog";
import Modal from "../components/Modal";
import Disclaimer from "../components/Disclaimer";

const dynC = (className: string, color: string) =>
`${className}-light${color}`;
const dynC = (className: string, color: string) => `${className}-light${color}`;

function HomepageHeader() {
const { siteConfig } = useDocusaurusContext();
Expand Down Expand Up @@ -51,11 +50,20 @@ function HomepageHeader() {
</div>
<VideoPlayer />
<div className="relative text-center mx-auto mt-20 mb-10">
<Link to="/docs/getting-started/dogma">
<Button color="yellow" rounded="full" size="lg">
<h2 className="mx-4 my-2 sm:text-2xl text-xl">Read the Dogma</h2>
</Button>
</Link>
<div className="flex justify-center gap-10">
<Link to="/docs/getting-started/dogma">
<Button color="yellow" rounded="full" size="lg">
<h2 className="mx-4 my-2 sm:text-2xl text-xl">Read the Dogma</h2>
</Button>
</Link>
<Link to="/docs/extra-topics/news-announcements">
<Button color="violet" rounded="full" size="lg">
<h2 className="mx-4 my-2 sm:text-2xl text-xl">
News and Roadmap
</h2>
</Button>
</Link>
</div>
</div>
</header>
);
Expand Down
Loading

0 comments on commit f3bd5a9

Please sign in to comment.