Skip to content

Commit b287317

Browse files
committed
chore: update README and fix website navbar links
1 parent 225cffc commit b287317

4 files changed

Lines changed: 142 additions & 65 deletions

File tree

README.md

Lines changed: 103 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -7,80 +7,138 @@
77
</p>
88

99
<p align="center">
10-
<strong>The Lightweight, Drop-in Replacement for LocalStack.</strong><br />
11-
Fast, Open Source, and Developer-First.
10+
<strong>The Free Drop-in Replacement for LocalStack. Run AWS services locally.</strong><br />
11+
Fast, lightweight, local-first, and built to run without Docker.
1212
</p>
1313

1414
<p align="center">
15-
<a href="https://mildstack.dev">Website</a>
16-
<a href="#key-features">Key Features</a>
17-
<a href="#supported-services">Supported Services</a>
18-
<a href="https://discord.gg/your-invite">Community</a>
15+
<a href="https://mildstack.dev">Website</a> |
16+
<a href="https://mildstack.dev/docs">Docs</a> |
17+
<a href="#supported-services">Supported Services</a> |
18+
<a href="#quick-start">Quick Start</a>
1919
</p>
2020

2121
---
2222

23-
## ⚡️ What is MildStack?
23+
## What is MildStack?
2424

25-
MildStack is a high-performance, local-first AWS emulator designed to streamline your cloud development workflow. Unlike heavy alternatives that require Docker and significant system resources, MildStack is built in **Go** for maximum efficiency and speed.
25+
MildStack is a local-first AWS emulator that helps developers build and test cloud workflows on their own machine, without the need for Docker or containers. It runs natively in Go, does not require Docker, starts in around 200ms (with ~15MB of RAM usage), and keeps the feedback loop short.
2626

27-
Stop waiting for containers to spin up. Start building instantly with a local cloud that feels "mild" on your CPU but "spicy" on productivity.
27+
It is designed for day-to-day AWS development: point your SDKs and CLI to a local endpoint, keep your state on disk, and use the desktop app to inspect resources visually.
2828

29-
## Why MildStack?
29+
## Why MildStack?
3030

31-
- **🚀 Instant-On**: No Docker required. MildStack runs as a native binary, starting in milliseconds.
32-
- **🖥️ Desktop App**: A beautiful, intuitive UI to browse S3 buckets, query DynamoDB tables, and monitor SQS queues without leaving your IDE.
33-
- **🍃 Ultra-Lightweight**: Minimal RAM and CPU footprint. Keep your machine cool while simulating complex cloud architectures.
34-
- **🔌 Drop-in Compatibility**: Works seamlessly with official AWS SDKs and CLI. Just change your endpoint URL.
35-
- **📡 Offline-First**: Build and test your cloud applications on a plane, a train, or anywhere without an internet connection.
36-
- **💰 100% Free**: No "Pro" tiers for basic features. Everything you need for local development, open-source and free.
31+
- No Docker or containers required.
32+
- Native runtime built for speed and low overhead.
33+
- Desktop app for browsing and managing local AWS resources.
34+
- Works with official AWS SDKs and the AWS CLI.
35+
- Offline-first development with persistent local state.
36+
- Free and open source under GPL-3.0.
3737

38-
## 🛠 Supported Services
38+
## Supported Services
3939

40-
MildStack is rapidly evolving. We currently provide robust support for core AWS services:
40+
MildStack currently supports the AWS services that cover the most common local development workflows.
4141

42-
| Service | Status | Features |
43-
| :--- | :--- | :--- |
44-
| **S3** | ✅ Active | Bucket management, Multipart uploads, Metadata support |
45-
| **DynamoDB** | ✅ Active | Tables, GSI/LSI support, Rich querying & filtering |
46-
| **SQS** | ✅ Active | Message queues, DLQ redrive, FIFO support |
47-
| **SNS** | 📅 Planned | Topic publishing, basic subscriptions |
48-
| **Lambda** | 📅 Planned | Local execution of serverless functions |
49-
| **EventBridge** | 📅 Planned | Event-driven architecture simulation |
42+
| Service | Status | Notes |
43+
| --- | --- | --- |
44+
| S3 | Active | Buckets, objects, multipart uploads, versioning, metadata, and more |
45+
| DynamoDB | Active | Tables, items, queries, scans, indexes, and batch operations |
46+
| SQS | Active | Standard and FIFO queues, DLQs, visibility timeout, and message operations |
47+
| SNS | Active | Topics, subscriptions, publish flows, and notifications |
48+
| Lambda | In progress | Local function execution is being built now |
49+
| EventBridge | Planned | Event routing and event-driven workflows |
50+
| CloudWatch | Planned | Logs and observability support |
5051

51-
## 📦 The Ecosystem
52+
For the full API surface, examples, and service-specific details, visit the docs at [mildstack.dev/docs](https://mildstack.dev/docs).
5253

53-
MildStack isn't just an emulator; it's a complete development environment:
54+
## Quick Start
5455

55-
### 1. The Core Engine
56-
Written in Go, our core provides a high-concurrency, low-latency API that mimics AWS service behavior with precision.
56+
Start a MildStack instance:
5757

58-
### 2. The MildStack CLI
59-
A modern, terminal-based control center (powered by Charm/BubbleTea) to manage your local instances, view logs, and monitor service health.
58+
```bash
59+
mildstack start
60+
# or: mildstack start 8080
61+
# or: mildstack start --detach
62+
```
6063

61-
### 3. The Desktop Browser
62-
An Electron-powered visual console that gives you a "Production-like" experience for inspecting your local resources. Browse objects, edit items, and peek at messages with ease.
64+
The runtime starts on your machine in around 200ms. Once it is running, point your app or SDK to `http://localhost:4566`:
6365

64-
---
66+
```bash
67+
aws s3 mb s3://my-bucket --endpoint-url http://localhost:4566
68+
aws s3 cp ./hello.txt s3://my-bucket/ --endpoint-url http://localhost:4566
69+
```
70+
71+
## AWS CLI
72+
73+
MildStack works with the standard AWS CLI. The simplest setup is to create a local profile and reuse it with `--endpoint-url`.
74+
75+
```bash
76+
aws configure set aws_access_key_id test --profile mildstack
77+
aws configure set aws_secret_access_key test --profile mildstack
78+
aws configure set region us-east-1 --profile mildstack
79+
```
80+
81+
Then use that profile with your commands:
82+
83+
```bash
84+
aws s3 ls --endpoint-url http://localhost:4566 --profile mildstack
85+
aws dynamodb list-tables --endpoint-url http://localhost:4566 --profile mildstack
86+
aws sqs list-queues --endpoint-url http://localhost:4566 --profile mildstack
87+
aws sns list-topics --endpoint-url http://localhost:4566 --profile mildstack
88+
```
89+
90+
If you prefer, create an alias to keep commands short:
91+
92+
```bash
93+
alias awslocal='aws --endpoint-url http://localhost:4566 --profile mildstack'
94+
```
95+
96+
Then the same commands become:
97+
98+
```bash
99+
awslocal s3 ls
100+
awslocal dynamodb list-tables
101+
awslocal sqs list-queues
102+
awslocal sns list-topics
103+
```
104+
105+
MildStack ignores credentials entirely, so any dummy values work as long as the CLI has something to send.
106+
107+
## Ecosystem
108+
109+
MildStack is split into three parts that work together:
110+
111+
### Core Runtime
112+
113+
The Go engine owns AWS emulation logic, persistence, and instance-scoped state.
114+
115+
### MildStack CLI
116+
117+
The terminal interface manages instances, logs, and runtime health.
118+
119+
### Desktop App
120+
121+
The Electron app gives you a visual console to browse buckets, tables, queues, and topics.
65122

66-
## 🗺 Roadmap
123+
## Documentation
67124

68-
Our goal is to cover the 80% of AWS services used in 95% of applications. Check our [Roadmap](https://mildstack.dev/roadmap) to see what's coming next, including Lambda support, IAM simulation, and more.
125+
The full documentation lives at [mildstack.dev/docs](https://mildstack.dev/docs).
69126

70-
## 🤝 Contributing
127+
- Getting started - overview, installation, and quick start
128+
- Services - API coverage for each supported AWS service
129+
- MildStack CLI - instance management and AWS Local usage
130+
- Desktop App - browsing and managing local resources
71131

72-
We love contributors! Whether you're fixing a bug, adding a new service, or improving the documentation, your help is welcome.
132+
## Contributing
73133

74-
1. Check out our [Contribution Guidelines](CONTRIBUTING.md).
75-
2. Join our [Discord community](https://discord.gg/your-invite) to discuss ideas.
76-
3. Spread the word! 🌟
134+
We welcome bug reports and pull requests. If you find a missing feature or unexpected behavior, please open an issue on GitHub and include the steps to reproduce it.
77135

78-
## 📄 License
136+
## License
79137

80-
MildStack is released under the **MIT License**. Build freely.
138+
MildStack is released under the GPL-3.0 license. It is free and open source, and you can use, study, modify, and redistribute it under the same license terms. If you distribute modified versions, the GPL requires that they remain under compatible open-source terms.
81139

82140
---
83141

84142
<p align="center">
85-
Built with ❤️ for developers.
143+
MildStack: Run AWS services locally.
86144
</p>

apps/web/www/app/components/shared/footer.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export function Footer() {
1818
},
1919
{
2020
title: 'Docs',
21-
href: '#',
21+
href: 'https://mildstack.dev/docs',
2222
}
2323
];
2424

@@ -82,10 +82,10 @@ export function Footer() {
8282
<div className="bg-border absolute inset-x-0 h-px w-full" />
8383
<div className="flex max-w-4xl flex-col justify-between gap-2 pt-2 pb-5">
8484
<p className="text-muted-foreground text-center text-sm font-light">
85-
© <a href="https://mildstack.dev">MildStack {year}</a>. MIT Licensed. <a href="https://github.com/michasdev/mildstack" target="_blank" rel="noopener noreferrer">View Repository.</a>
85+
© <a href="https://mildstack.dev">MildStack {year}</a>. GPL-3.0 licensed. <a href="https://github.com/michasdev/mildstack" target="_blank" rel="noopener noreferrer">View Repository.</a>
8686
</p>
8787
</div>
8888
</div>
8989
</footer>
9090
);
91-
}
91+
}

apps/web/www/app/components/shared/navbar.tsx

Lines changed: 36 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,18 @@ import { Button } from '@/components/ui/button';
55
import { cn } from '@/lib/utils';
66
import logoFullWhite from '../../assets/logos/mildstack-logo-full-white.png'
77

8-
const NAV_LINKS = [
9-
{ label: 'Home', variant: 'outline' },
8+
type NavLink = {
9+
label: string;
10+
variant: 'outline' | 'ghost';
11+
href?: string;
12+
};
13+
14+
const NAV_LINKS: NavLink[] = [
15+
{ label: 'Home', variant: 'outline', href: '/' },
1016
{ label: 'Features', variant: 'ghost' },
1117
{ label: 'Services', variant: 'ghost' },
12-
{ label: 'Docs', variant: 'ghost' },
13-
{ label: 'Community', variant: 'ghost' },
14-
] as const;
18+
{ label: 'Docs', variant: 'ghost', href: '/docs' },
19+
];
1520

1621
export const Navbar: React.FC = () => {
1722
const [mobileMenuOpen, setMobileMenuOpen] = useState(false);
@@ -29,17 +34,32 @@ export const Navbar: React.FC = () => {
2934
const NavLinks = ({ isMobile = false, closeMenu }: { isMobile?: boolean; closeMenu?: () => void }) => (
3035
<>
3136
{NAV_LINKS.map((link) => (
32-
<Button
33-
key={link.label}
34-
variant={isMobile && link.label === 'Home' ? 'secondary' : link.variant}
35-
className={cn(
36-
'rounded-full transition-all',
37-
isMobile ? 'px-8 h-12 text-lg w-full max-w-[280px]' : 'h-9 px-4 text-sm hover:text-gray-300'
38-
)}
39-
onClick={closeMenu}
40-
>
41-
{link.label}
42-
</Button>
37+
link.href ? (
38+
<Button
39+
asChild
40+
key={link.label}
41+
variant={isMobile && link.label === 'Home' ? 'secondary' : link.variant}
42+
className={cn(
43+
'rounded-full transition-all',
44+
isMobile ? 'px-8 h-12 text-lg w-full max-w-[280px]' : 'h-9 px-4 text-sm hover:text-gray-300'
45+
)}
46+
onClick={closeMenu}
47+
>
48+
<a href={link.href}>{link.label}</a>
49+
</Button>
50+
) : (
51+
<Button
52+
key={link.label}
53+
variant={isMobile && link.label === 'Home' ? 'secondary' : link.variant}
54+
className={cn(
55+
'rounded-full transition-all',
56+
isMobile ? 'px-8 h-12 text-lg w-full max-w-[280px]' : 'h-9 px-4 text-sm hover:text-gray-300'
57+
)}
58+
onClick={closeMenu}
59+
>
60+
{link.label}
61+
</Button>
62+
)
4363
))}
4464
</>
4565
);

apps/web/www/public/404.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
<title>MildStack</title>
66
<script type="text/javascript">
77
// Single Page Apps for GitHub Pages
8-
// MIT License
98
// https://github.com/rafgraph/spa-github-pages
109
// This script takes the current url and converts the path and query
1110
// string into just a query string, and then redirects the browser

0 commit comments

Comments
 (0)